日志y轴的标签:1000而不是1e + 03?

时间:2009-09-27 19:54:26

标签: r algorithm graphics statistics

我有关于在图形中构建log y轴的问题。

如何管理我的日志y轴的单位/数字未显示在

1e+03, 1e+04, 1e+05 etc....

但只有普通的阿拉伯数字(1000,10000,100000)?

4 个答案:

答案 0 :(得分:6)

您需要移除轴(通过设置yaxt = "n")然后重新格式化它:

plot((1:100)^3, log = "y", yaxt = "n")
axis(2, format(c(1,10,100)^3, scientific=FALSE))

这是asked before on R-help

答案 1 :(得分:3)

此外,如果您只是不喜欢1e + 03科学记数法的外观,sfsmisc包具有axTexpr()函数来格式化* 10 ^ k表示法中的轴标签。

library(sfsmisc)
example(axTexpr)

答案 2 :(得分:0)

据我所知,原版海报想要摆脱标签的科学记法。我遇到了同样的问题,并发现这个问题可以用于此目的(不使用凯文答案的包sfsmisc,我没试过):

plot((1:100)^3, log = "y", yaxt = "n")
axis(2, at=axTicks(2,log=TRUE), labels=format(axTicks(2, log=TRUE), scientific=FALSE))

答案 3 :(得分:-3)

这已经很晚了,但我正在寻找相同的解决方案。我所做的(通过搜索,试验和错误)是:

from matplotlib.ticker import MultipleLocator, FormatStrFormatter
majorFormatter = FormatStrFormatter('%d') # shows 1 instead of 10^0 etc

以后,在情节创建过程中:

ax = subplot(111) # ie one plot, but need to refer to it as 'ax'
semilogy(x,y)

就在show()之前,

ax.yaxis.set_major_formatter(majorFormatter)

这里可能有不必要的位,因为我是排名Python的新手。