我有关于在图形中构建log y轴的问题。
如何管理我的日志y轴的单位/数字未显示在
中1e+03, 1e+04, 1e+05 etc....
但只有普通的阿拉伯数字(1000,10000,100000)?
答案 0 :(得分:6)
您需要移除轴(通过设置yaxt = "n"
)然后重新格式化它:
plot((1:100)^3, log = "y", yaxt = "n")
axis(2, format(c(1,10,100)^3, scientific=FALSE))
答案 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的新手。