Matplotlib自定义样式:不同的刻度颜色和刻度标签颜色

时间:2018-04-26 08:48:22

标签: python matplotlib colors

这是对this问题的一个跟进,其中作者需要不同的刻度和刻度标签颜色。我希望将这些设置保存为Matplotlib样式。但是在Matplotlib样式中,我只能设置刻度颜色(参见下面的xtick设置),它会同时更改刻度和刻度标签颜色。

xtick.major.size     : 4      # major tick size in points
xtick.minor.size     : 4      # minor tick size in points
xtick.major.pad      : 6      # distance to major tick label in points
xtick.minor.pad      : 6      # distance to the minor tick label in points
xtick.color          : 555555      # color of the tick labels                   <---
xtick.labelsize      : medium # fontsize of the tick labels
xtick.direction : in # direction: in or out

在我的公司,我们有灰色标记和黑色标记,我怎样才能为我的所有情节实现这一目标?

感谢您的帮助 kuzco

1 个答案:

答案 0 :(得分:1)

我遇到了与您完全相同的问题。

我已向Matplotlib(https://github.com/matplotlib/matplotlib/issues/17659)提交了一个错误报告,并编写了PR来解决此问题(https://github.com/matplotlib/matplotlib/pull/17661)。因此,从Matplotlib v3.4.0(尚未发布,但现在可在master分支上开始)开始,此问题已解决。

以前,xtick.color用于定义刻度颜色和标签颜色。 现在可以使用以下命令独立设置标签颜色 xtick.labelcolor。它默认为“ inherit”,它将取值 来自xtick.colorytick.[label]color也是如此。 例如,将刻度线设置为浅灰色,并将刻度线标签设置为 变黑,可以在脚本中使用以下代码:

import matplotlib as mpl

mpl.rcParams['xtick.labelcolor'] = 'lightgrey'
mpl.rcParams['xtick.color'] = 'black'
mpl.rcParams['ytick.labelcolor'] = 'lightgrey'
mpl.rcParams['ytick.color'] = 'black'

或通过将以下行添加到matplotlib rc文件或 matplotlib样式文件:

xtick.labelcolor : lightgrey
xtick.color      : black
ytick.labelcolor : lightgrey
ytick.color      : black

我希望这对某人有帮助!