【问题标题】:python/matplotlib : imposed ticks with ticker partially missingpython/matplotlib:强加的刻度线部分缺失
【发布时间】:2016-10-17 13:48:26
【问题描述】:

当用plt.axis('auto') 绘制我的图形时,“自然”x-ticks 以 500 的频率写入,

希望频率200,我用过:

    import matplotlib.ticker as ticker

    ticks_loc = ticker.MultipleLocator(base=200)

    fig = plt.figure('Cutlines x-axis')
    ax = fig.add_subplot(111)
    ...
    plt.axis('equal')
    ax.xaxis.set_major_locator(ticks_loc)
    ax.yaxis.set_major_locator(ticks_loc)
    plt.grid()

给出,

好奇

  1. 未显示所有刻度(刻度 -1000、-800、-600 缺失)
  2. plt.show()savefig 不同(在 plt.show() 中,“仅”刻度 -1000 和 -800 缺失,而不是 -600)。

我已经尝试减小字体大小(非常小的字体)和/或通过垂直书写 -> 没有效果:总是缺少相同的刻度。

有没有办法让所有刻度都可见(在水平模式下)?

【问题讨论】:

  • 我不会在上面使用 matplotlib 版本 1.4.3 绘制 x=np.linspace(-1000,1000,1000) 然后 ax.plot(x,np.sin(np.pi*x/2000.)) 重现此代码。我想知道为 y 设置相同的 ticks_loc 是否是一个错误,其中数据范围在 400 之前停止......另外,尝试将 bbox_inches='tight' 添加到 savefig 到地址点 2。
  • 您好 Ed:我正在为 Matplotlib 使用 1.5.1 版。尝试不使用 y 轴 ticks_loc 我得到相同的结果(缺少刻度)。也许是一个错误。为了解决我的问题,我使用了上面给出的 julien 的建议。谢谢你的回答。
  • 嗨@user202729,这是很久以前的事了,但是您的相关链接中给出的解释(和修复)似乎是相关的。谢谢。

标签: python matplotlib ticker


【解决方案1】:

你为什么不简单地使用xticks 而不是ticker

fig = plt.figure('Cutlines x-axis')
ax = fig.add_subplot(111)
...
xlim = ax.get_xlim()
plt.xticks(np.arange(xlim[0], xlim[1]+200, 200))

【讨论】:

  • 你好朱利安:你是对的,这是好方法。我相信我们无法获得与自动重新缩放相对应的 xlim。但它完美地工作......而且很容易!
猜你喜欢
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
  • 2012-03-12
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
相关资源
最近更新 更多