Matplotlib:更改轴的颜色
Posted
技术标签:
【中文标题】Matplotlib:更改轴的颜色【英文标题】:Matplotlib: Changing the color of an axis 【发布时间】:2010-12-31 06:22:15 【问题描述】:有没有办法改变 matplotlib 中轴的颜色(不是刻度)?我一直在查看 Axes、Axis 和 Artist 的文档,但没有运气; matplotlib 库也没有任何提示。 有什么想法吗?
【问题讨论】:
【参考方案1】:使用图形时,您可以通过以下方式轻松更改书脊颜色:
ax.spines['bottom'].set_color('#dddddd')
ax.spines['top'].set_color('#dddddd')
ax.spines['right'].set_color('red')
ax.spines['left'].set_color('red')
使用以下内容仅更改刻度:
which="both"
更改主要和次要刻度颜色
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')
【讨论】:
ax.tick_params(axis='x', colors='red')
似乎改变了刻度线和标签的颜色......
是否可以使用ax.yaxis.label.set_color('grey')
使只有从y1
到y2
的刻度改变颜色,而其他保持不变?
关于如何改变要分散的点颜色的任何想法?
@FaCoffee 您可以通过调用set_ticklabels()
并传递kwarg
color
来独立于刻度颜色设置刻度标签颜色。像这样:ax.xaxis.set_ticklabels([0.0,0.2,0.4,0.6,0.8,1.0], color = 'k')
@Jonathan 的评论对我有用。使用colors
参数至关重要,而不是color
参数(注意s
)。【参考方案2】:
为了记录,这就是我设法使它工作的方式:
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')
【讨论】:
【参考方案3】:您可以通过调整默认的 rc 设置来做到这一点。
import matplotlib
from matplotlib import pyplot as plt
matplotlib.rc('axes',edgecolor='r')
plt.plot([0, 1], [0, 1])
plt.savefig('test.png')
【讨论】:
Matplotlib 还有一个context manager 允许临时更改rc 参数***.com/a/41527038/2166823 谢谢@joelostblom。我在浏览器和 jupyter notebook 上使用深色背景。一条线完成了整个工作。来自上下文的文档:import matplotlib.pyplot as plt plt.style.use('dark_background')
【参考方案4】:
全局设置所有轴的边缘颜色:
matplotlib.rcParams['axes.edgecolor'] = '#ff0000'
【讨论】:
以上是关于Matplotlib:更改轴的颜色的主要内容,如果未能解决你的问题,请参考以下文章