如何自定义刻度? [复制]

Posted

技术标签:

【中文标题】如何自定义刻度? [复制]【英文标题】:How to have customized ticks? [duplicate] 【发布时间】:2018-08-10 22:48:53 【问题描述】:

我在下面制作了一个对数比例图。

如何在没有科学计数法的情况下显示常规刻度?

如何自定义不同格式组合的刻度?

plt.plot(np.arange(1000))
plt.xscale('log')
plt.yscale('log')
plt.ylim(1,10)
plt.show()

【问题讨论】:

【参考方案1】:

因为您说您尝试过these solutions,但它们不起作用,我怀疑这是因为您在将scale 设置为log 之前调用了ax.yaxis.set_major_formatter 。如果你这样做,当你说 plt.xscale('log')plt.yscale('log') 时,它会重置 x 和 y 轴。

如果你之后调用它,它会起作用:

import matplotlib as mpl
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1,1,1)

plt.plot(np.arange(1000))
plt.xscale('log')
plt.yscale('log')

ax.yaxis.set_major_formatter(mpl.ticker.ScalarFormatter())
ax.xaxis.set_major_formatter(mpl.ticker.ScalarFormatter())

plt.show()

【讨论】:

谢谢。我必须使用ax = fig.add_subplot(1,1,1) 吗?我可以直接使用plt 吗? 你可以使用plt.gca().yaxis.set_major_formatter(mpl.ticker.ScalarFormatter())plt.gca().xaxis.set_major_formatter(mpl.ticker.ScalarFormatter())如果你想 谢谢。使用 fig = plt.figure()ax = fig.add_subplot(1,1,1) 的目的是什么?为了使代码整洁,为什么不直接使用plt 这只是一种显式创建轴对象的方法,有时更容易引用实际的轴。 谢谢。我重新编辑了问题并添加了plt.ylim(1,10),现在它不再起作用了。顺便说一句,新的刻度有小数点,我怎样才能去掉它。

以上是关于如何自定义刻度? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何设置自定义刻度?

Plotly:如何使用 plotly express 自定义 xaxis 刻度标签?

C# wpf 如何实现自定义控件,布局时,大小发生变化,内部绘制的曲线跟随变化?

python可视化自定义设置坐标轴的范围自定义设置主坐标轴刻度和次坐标轴刻度自定义坐标轴刻度的显示样式自定义坐标轴刻度数值的颜色以及小数点位数添加坐标轴刻度网格线自定义移动坐标轴的位置

python使用matplotlib可视化自定义设置坐标轴的范围自定义设置主坐标轴刻度和次坐标轴刻度自定义坐标轴刻度的显示样式自定义坐标轴刻度数值的颜色以及小数点位数添加坐标轴刻度网格线

请教如何自定义python的matplotlib中的X轴刻度的问题