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

4

这是对此问题的一些跟进,作者想要不同的刻度和刻度标签颜色。我希望将这些设置保存为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

很遗憾,似乎无法使用已保存的样式来完成此操作。您可能需要手动更改刻度标签颜色。 - DavidG
xtick.color设置tickmarkersticklabels的颜色。 - ImportanceOfBeingErnest
@DavidG:哦,太糟糕了,也许我会提出一个功能请求。 @ImportanceOfBeingErnest:是的,那是正确的。不过我想分别设置它们。我正在寻找类似于xtick.labelcolorxtick.tickcolor的东西。 - kuzcoTheGreat
1个回答

2
我和你遇到了完全相同的问题。 我已向Matplotlib提交了错误报告(https://github.com/matplotlib/matplotlib/issues/17659),并编写了一个PR来解决这个问题(https://github.com/matplotlib/matplotlib/pull/17661)。因此,从Matplotlib v3.4.0开始(尚未发布,但现在可在主分支上使用),这个问题已经得到解决。 以前,xtick.color用于定义刻度线颜色和标签颜色。现在可以独立设置标签颜色,使用xtick.labelcolor。它默认为"inherit",将从xtick.color获取值。对于ytick.[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

我希望这能帮助到某些人!


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