【问题标题】:Set the colour of matplotlib ticks on a log scaled axes在对数刻度轴上设置 matplotlib 刻度的颜色
【发布时间】:2013-02-21 19:02:54
【问题描述】:

按照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

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

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

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    这在我的系统上正常工作(运行非常接近当前的 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 只更改主要刻度,您只需要告诉它两者都执行或明确分别执行每个(主要和次要)。

    【讨论】:

    • 是的!非常感谢,已经解决了。我会尽快接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2021-06-14
    相关资源
    最近更新 更多