开发者社区> 问答> 正文

在logscale轴上格式化自定义标签

我使用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

展开
收起
kun坤 2019-12-28 14:32:15 556 0
1 条回答
写回答
取消 提交回答
  • ScalarFormatter自动确定要显示的有效数字的数目。这是最常见的要求。但是,ScalarFormatter没有经过优化,不适合在日志尺度上使用。因此,在这种情况下它将失败。 因为在这里,我们不需要太多ScalarFormatter的功能,我们可以选择StrMethodFormatter。对于三位数,用e.g.。

    matplotlib.ticker.StrMethodFormatter("{x:1.3f}")
    
    2019-12-28 14:32:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载