plot( xdata, ydata, log="x", # log scale on x axis xaxt="n", # turn off default axis pch = '.', xlab = "x data" ylab = "y data", ) # # use custom axis # axis( 1, at=10^(0:6), # positions 10^0, 10^1, ..., 10^6 # and then we need some expression() jujitsu: labels = sapply( 0:6, function(n) as.expression(substitute( list(10^p ), list(p=n ) ) ) )