在对数刻度轴上设置 matplotlib 刻度的颜色

Mar*_*nes 3 python matplotlib

按照更改 matplotlib 中绘图的轴、刻度和标签的颜色的建议,我设法使用以下方法设置了图形的脊椎、标签、数字和刻度的颜色:

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

但是,当我将图形的轴设置为对数刻度时,刻度再次恢复为黑色。

例如:

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
Run Code Online (Sandbox Code Playgroud)

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

有没有办法设置对数刻度刻度的颜色?

tac*_*ell 5

这在我的系统上正常工作(运行非常接近当前的 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')
Run Code Online (Sandbox Code Playgroud)

我将刻度线加粗,以便于查看颜色。

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