在日志缩放轴上设置matplotlib刻度的颜色

时间:2013-03-06 19:50:43

标签: python matplotlib

根据Changing the color of the axis, ticks and labels for a plot in matplotlib的建议,我设法使用以下方法设置图表的书脊,标签,数字和刻度的颜色:

ax.spines['left'].set_color('#FF9000')
ax.yaxis.label.set_color('#FF9000')
ax.tick_params(axis='y', colors='#FF9000')

但是,当我将图表的轴设置为对数刻度时,刻度线会再次变为黑色。

例如:

ax.set_yscale('log')
ax.spines['left'].set_color('#FF9000')
ax.yaxis.label.set_color('#FF9000')
ax.tick_params(axis='y', colors='#FF9000') <-- now only half works

这会将数字绘制为我想要的颜色(所以我知道命令仍会执行某些操作),但不会影响刻度。

有没有办法设置日志缩放刻度的颜色?

1 个答案:

答案 0 :(得分:3)

这在我的系统上正常工作(非常靠近当前的git master运行):

您只需添加kwarg which='both' (doc)

即可
figure()
ax = gca()

ax.set_yscale('log')
ax.spines['left'].set_color('#FF9000')
ax.yaxis.label.set_color('#FF9000')

ax.tick_params(axis='y', colors='#FF9000', width=5, which='both')

我让刻度更粗,以便更容易看到颜色。

在对数刻度中,小刻度是次要刻度,默认情况下tick_params仅更改主要刻度,您只需要告诉它同时执行这两个操作或分别明确地执行每个(主要和次要)。