【问题标题】:Python Matplotlib - ticks change format when changing axis rangePython Matplotlib - 更改轴范围时的刻度更改格式
【发布时间】:2018-08-19 14:09:18
【问题描述】:

目前我有以下简单的代码,它可以生成带有漂亮刻度的漂亮图形(上图)

ax.set_ylabel('Amplification Ratio', size=18)
ax.set_xlabel('Frequency [Hz]', size=18)
ax.set_xlim([0.05,0.75])
ax.set_ylim([0.5,10.])
ax.grid(b=True, which='minor')
ax.grid(b=True, which='major')

但是,当我将 xlimit 值更改为 ax.set_xlim([**0.1**,0.75]) 时,我得到了如下图所示的杂乱滴答声。

我已经搜索了互联网,但没有任何帮助。

我希望只显示“10^-1”,以这种精确的格式(不是 0.1 或 1X10-1)而不是其他刻度。只需日志格式一个刻度即可。

【问题讨论】:

  • 您可以手动放置自定义刻度,在您的情况下仅在10^-1
  • 您也可以手动指定所有刻度
  • 我都试过了..不好。

标签: python matplotlib


【解决方案1】:

看看下面的第一个答案:

Modify tick label text

即如果您的图形对象称为 fig,则添加类似

的代码
fig.canvas.draw()
labels = [item.get_text() if item.get_text() == "10^-1" else "" for item in ax.get_xticklabels()]
ax.set_xticklabels(labels)

在显示图表之前将删除不是“10^-1”的标签,即图表中刻度末尾的混乱

【讨论】:

  • 我只希望以这种精确的格式(不是 0.1 或 1X10-1)出现“10^-1”,并且没有其他刻度。只需一个刻度的日志格式,仅此而已。
  • 我已经更新了答案,指定了首先绘制画布所需的调用,以便可以操作标签,以及处理 ax.get_xticklabels() 可以将“10^-1”定位在其他地方比位置 0 - 由于您的代码中的其他调用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 2011-09-23
  • 1970-01-01
相关资源
最近更新 更多