【问题标题】:Matplotlib tick labelsMatplotlib 刻度标签
【发布时间】:2014-11-21 12:31:14
【问题描述】:

有没有办法在轴内呈现刻度标签,即刻度本身上有 direction 属性?

现在我在刻度标签上将 x 属性设置为正值,以将它们绘制在轴内,即

ax2.set_yticklabels(['0', '2500', '5000', '7500'], minor=False, x=0.05)

但这并不适用于可调整大小的地块,因为 0.05 的数字是绝对的(在大地块上太大了)。

有什么想法吗?

【问题讨论】:

  • ax2.tick_params('y', direction='in')[http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params] 有帮助吗?
  • 不,我无法让它发挥作用。似乎在 tick_params 上将方向设置为 'in' 会在轴内绘制 ticks,而不是 tick_labels。

标签: matplotlib


【解决方案1】:

我假设ax2 构造为ax2 = ax.twinx(),也就是说它位于轴的右侧。

您可以执行以下操作:

ax2.set_yticklabels(['0', '2500', '5000', '7500'], minor=False, horizontalalignment='right')
for tick in ax2.yaxis.get_major_ticks():                                        
        tick.set_pad(-8)

如果您也希望左侧轴在内侧,那么您只需将水平对齐方式切换为 'left' 并将焊盘从 -8 更改为 -25

这两个数字可能不准确,可能取决于您可能拥有的其他 matplotlib 设置(例如主要刻度的长度),因此您可能希望稍微增加或减少这些值。

【讨论】:

    猜你喜欢
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2017-01-07
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多