在matplotlib rc中设置tick egde颜色

时间:2015-11-12 14:02:01

标签: python matplotlib plot colors

我想写一个可调用的函数,它为我所有不同的图统一设置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 个答案:

答案 0 :(得分:4)

好的,我找到了一个符合我需求的解决方法:

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个子图的图形,它不起作用。

Edit2:我无法使用rcParams,因此我在子绘图程序中更改了刻度

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

这使它成功。