Matplotlib:更改轴的颜色


80

有没有一种方法可以更改matplotlib中轴的颜色(而不是刻度)?我一直在寻找Axes,Axis和Artist的文档,但是没有运气。matplotlib画廊也没有任何提示。任何想法?

Answers:


158

使用图形时,您可以通过以下方式轻松更改书脊颜色:

ax.spines['bottom'].set_color('#dddddd')
ax.spines['top'].set_color('#dddddd') 
ax.spines['right'].set_color('red')
ax.spines['left'].set_color('red')

使用以下命令仅更改刻度线:

ax.tick_params(axis='x', colors='red')
ax.tick_params(axis='y', colors='red')

并且以下仅更改标签:

ax.yaxis.label.set_color('red')
ax.xaxis.label.set_color('red')

最后是标题:

ax.title.set_color('red')

6
很好的答案,谢谢!只是对其他人的注释:ax.tick_params(axis='x', colors='red', which='both')-which =“ both”改变了主要和次要的刻度颜色。
Kinverarity 2015年

1
ax.tick_params(axis='x', colors='red')似乎改变了刻度线和标签的颜色...
Jonathan

是否有可能使用ax.yaxis.label.set_color('grey')这样的方式,只有从蜱y1,以y2改变其颜色,和其他人保持不变?
FaCoffee's

关于如何更改要散布的点的颜色的任何想法吗?
Harit Vishwakarma

@FaCoffee通过调用set_ticklabels()并传递,可以独立于刻度颜色设置刻度标签颜色kwarg color。像这样:ax.xaxis.set_ticklabels([0.0,0.2,0.4,0.6,0.8,1.0], color = 'k')
marisano

21

作为记录,这是我设法使其工作的方式:

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')

谢谢你,希望matplotlib将添加一个更简单的方法来实现这一目标。
jhanifen

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.