Taken from: _https://darrenjw.wordpress.com/2010/08/15/metropolis-hastings-mcmc-algorithms/_

The data generation AKA innovations function.

metrop1=function(n=1000,eps=0.5) 
{
        vec=vector("numeric", n)
        x=0
        vec[1]=x
        for (i in 2:n) {
                innov=runif(1,-eps,eps)
                #notice the acceptance ratio = minus eps over eps.
                can=x+innov
                aprob=min(1,dnorm(can)/dnorm(x))
                u=runif(1)
                if (u < aprob) 
                        x=can
                vec[i]=x
        }
        vec
}

Plotting:

plot.mcmc<-function(mcmc.out)
{
    op=par(mfrow=c(2,2))
    plot(ts(mcmc.out),col=2)
    hist(mcmc.out,30,col=3)
    qqnorm(mcmc.out,col=4)
    abline(0,1,col=2)
    acf(mcmc.out,col=2,lag.max=100)
    par(op)
}
 
metrop.out<-metrop1(10000,1)
plot.mcmc(metrop.out)

LS0tCnRpdGxlOiAiTWV0cm9wb2xpcyBBbGdvcml0aG0iCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KClRha2VuIGZyb206IApfaHR0cHM6Ly9kYXJyZW5qdy53b3JkcHJlc3MuY29tLzIwMTAvMDgvMTUvbWV0cm9wb2xpcy1oYXN0aW5ncy1tY21jLWFsZ29yaXRobXMvXwoKKipUaGUgZGF0YSBnZW5lcmF0aW9uIEFLQSBpbm5vdmF0aW9ucyBmdW5jdGlvbi4qKgpgYGB7cn0KbWV0cm9wMT1mdW5jdGlvbihuPTEwMDAsZXBzPTAuNSkgCnsKICAgICAgICB2ZWM9dmVjdG9yKCJudW1lcmljIiwgbikKICAgICAgICB4PTAKICAgICAgICB2ZWNbMV09eAogICAgICAgIGZvciAoaSBpbiAyOm4pIHsKICAgICAgICAgICAgICAgIGlubm92PXJ1bmlmKDEsLWVwcyxlcHMpCiAgICAgICAgICAgICAgICAjbm90aWNlIHRoZSBhY2NlcHRhbmNlIHJhdGlvID0gbWludXMgZXBzIG92ZXIgZXBzLgogICAgICAgICAgICAgICAgY2FuPXgraW5ub3YKICAgICAgICAgICAgICAgIGFwcm9iPW1pbigxLGRub3JtKGNhbikvZG5vcm0oeCkpCiAgICAgICAgICAgICAgICB1PXJ1bmlmKDEpCiAgICAgICAgICAgICAgICBpZiAodSA8IGFwcm9iKSAKICAgICAgICAgICAgICAgICAgICAgICAgeD1jYW4KICAgICAgICAgICAgICAgIHZlY1tpXT14CiAgICAgICAgfQogICAgICAgIHZlYwp9CmBgYAoKCioqUGxvdHRpbmc6KioKYGBge3J9CnBsb3QubWNtYzwtZnVuY3Rpb24obWNtYy5vdXQpCnsKICAgIG9wPXBhcihtZnJvdz1jKDIsMikpCiAgICBwbG90KHRzKG1jbWMub3V0KSxjb2w9MikKICAgIGhpc3QobWNtYy5vdXQsMzAsY29sPTMpCiAgICBxcW5vcm0obWNtYy5vdXQsY29sPTQpCiAgICBhYmxpbmUoMCwxLGNvbD0yKQogICAgYWNmKG1jbWMub3V0LGNvbD0yLGxhZy5tYXg9MTAwKQogICAgcGFyKG9wKQp9CiAKbWV0cm9wLm91dDwtbWV0cm9wMSgxMDAwMCwxKQpwbG90Lm1jbWMobWV0cm9wLm91dCkKYGBgCgo=