Matplotlib:更改轴的颜色

kni*_*nap 58 colors matplotlib

有没有办法在matplotlib中更改轴的颜色(而不是刻度线)?我一直在浏览Axes,Axis和Artist的文档,但没有运气; matplotlib画廊也没有提示.任何的想法?

Sai*_*irl 106

使用数字时,您可以使用以下方法轻松更改脊椎颜色:

ax.spines['bottom'].set_color('#dddddd')
ax.spines['top'].set_color('#dddddd') 
ax.spines['right'].set_color('red')
ax.spines['left'].set_color('red')
Run Code Online (Sandbox Code Playgroud)

使用以下内容仅更改刻度:

ax.tick_params(axis='x', colors='red')
ax.tick_params(axis='y', colors='red')
Run Code Online (Sandbox Code Playgroud)

以下仅更改标签:

ax.yaxis.label.set_color('red')
ax.xaxis.label.set_color('red')
Run Code Online (Sandbox Code Playgroud)

最后标题:

ax.title.set_color('red')
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,谢谢!只是给别人的一个注释:``ax.tick_params(axis ='x',colors ='red',= ='both')`` - which ="both"同时改变主要和次要刻度颜色. (5认同)
  • `ax.tick_params(axis='x', colors='red')` 似乎改变了刻度线和标签的颜色...... (3认同)

kni*_*nap 19

为了记录,这就是我设法让它工作的方式:

fig = pylab.figure()
ax  = fig.add_subplot(1, 1, 1)
for child in ax.get_children():
    if isinstance(child, matplotlib.spines.Spine):
        child.set_color('#dddddd')
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 13

您可以通过调整默认的rc设置来完成.

import matplotlib
from matplotlib import pyplot as plt

matplotlib.rc('axes',edgecolor='r')
plt.plot([0, 1], [0, 1])
plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud)

  • Matplotlib 还有一个 [上下文管理器](http://matplotlib.org/users/style_sheets.html#temporary-styling),它允许临时更改 rc 参数 http://stackoverflow.com/a/41527038/2166823 (3认同)