首页 > 解决方案 > Matplotlib 自定义样式:不同的刻度颜色和刻度标签颜色

问题描述

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

在我的公司,我们有灰色刻度和黑色刻度标签,我怎样才能为我的所有地块实现这一点?

感谢您的帮助

标签: pythonmatplotlibcolors

解决方案


我和你有完全相同的问题。

我已经向 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. 它默认为“继承”,它将从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

我希望这可以帮助别人!


推荐阅读