我使用matplot库来绘制一些x轴设置为对数刻度的曲线。我找到了如何设置自定义刻度从设置刻度与对数尺度:
import matplotlib
from matplotlib import pyplot as plt
ax = plt.gca()
ax.set_xscale('log')
ax.set_xticks([0.001, 0.003, 0.010, 0.033, 0.10, 0.33, 1.0, 3.3, 10.0, 33.0, 100.0])
ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
ax.get_xaxis().set_tick_params(which='minor', size=0, width=0)
plt.savefig('logscale.png')
plt.close()
该代码生成如下图:
可以看到,最左边的两个刻度是0.00,而不是它们应该的0.001和0.003。如何格式化这些以显示小数点后更多的数字? 问题来源StackOverflow 地址:/questions/59380137/formatting-custom-labels-on-a-logscale-axis
ScalarFormatter自动确定要显示的有效数字的数目。这是最常见的要求。但是,ScalarFormatter没有经过优化,不适合在日志尺度上使用。因此,在这种情况下它将失败。 因为在这里,我们不需要太多ScalarFormatter的功能,我们可以选择StrMethodFormatter。对于三位数,用e.g.。
matplotlib.ticker.StrMethodFormatter("{x:1.3f}")
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。