在matplotlib rc中设置刻度边缘颜色

4

我想编写一个可调用的函数,以便为所有不同的绘图设置统一的matplotlib rc参数。到目前为止,它只是一个我复制到每个文件中的块,并且简化为以下内容:

import matplotlib as mpl

grey = '#808080'

mpl.rcParams['axes.linewidth'] = 0.3
mpl.rcParams['axes.edgecolor'] = grey

我这样做是为了使轴更加细小,通过将其他内容略微变灰来突出我的数据。但我无法在rc中找到设置刻度边缘颜色为灰色的方法。我正在寻找类似以下代码的东西:

'axes.tickedgecolor'

很遗憾似乎不存在。

在这里描述了一种无需rc的方法:Elegantly changing the color of a plot frame in matplotlib

希望有人能够帮忙,谢谢!

编辑:为了澄清:我找到了选项

mpl.rcParams['tick.color'] = '#808080'

但它也会改变刻度标签的颜色,而我希望它们保持黑色!

1个回答

7

好的,我找到了一个小技巧来满足我的需求:

import matplotlib as mpl

grey = '#808080'

mpl.rcParams['axes.linewidth'] = 0.3
mpl.rcParams['axes.edgecolor'] = grey
mpl.rcParams['xtick.color'] = grey
mpl.rcParams['ytick.color'] = grey
mpl.rcParams['axes.labelcolor'] = "black"

尽管xtick.color也可以更改标签颜色,但之后可以覆盖标签颜色。

编辑:不知何故,这仅适用于单个绘图。对于具有6个子图的图形,它不起作用。

编辑2:我无法使用rcParams使其工作,因此我在子图例程中更改了刻度。

ax.tick_params('both', length=2, width=0.3, which='major', color=grey)

这使得它能够工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接