我在mpl中设置自定义样式表.我在网上发现并修改了一些示例设置:
axes.titlesize : 18
axes.labelsize : large
axes.labelcolor : ffffff
Run Code Online (Sandbox Code Playgroud)
我还想更改标题的字体颜色.从这些设置,axes.titlecolor似乎是一个很好的猜测,但它不起作用.关于如何做到这一点的任何想法?
我并不完全熟悉 Mpl 样式表的实际实现方式,但我的猜测是它们只是预先编辑的 mpl rc 文件。
如果它们确实是 mpl rc 文件,那么根据我当前的 rc 文件的阅读,“轴”中没有标题颜色的属性。
我的解决方法是添加可能会或可能不会在 rc 文件中实现的风格功能,方法是执行以下操作:
using_custom_style = true
plt.use('my_style')
...
if using_custom_style:
ax.set_title('my title', color=my_color_of_choice)
else:
ax.set_title('my_title') # this doesn't specify a color so it will just use whatever default vaule mpl knows to use
Run Code Online (Sandbox Code Playgroud)
它不是最好的解决方法,因为它给代码增加了很多混乱,但当我无法弄清楚默认设置实际存储在 mpl 参数文件或样式表中的位置时,这是我发现的唯一可行的方法。
分析 mpl rc 文件,如果您运行类似“grep title matplotlibrc”的内容,它会输出在文件中找到单词标题的唯一实例:
# 特殊文本大小刻度标签、轴、标签、标题等,请参见 rc
#axes.titlesize : large # 坐标区标题的字体大小
所以标题似乎没有默认的颜色设置 - 或者更确切地说,如果有的话,它被称为其他不直接明显的东西
'grep color matplotlibrc' 输出 rc 文件中单词 color 的所有实例
同样,似乎没有任何与标题颜色甚至默认文本颜色直接相关的内容。
仔细看看 Mpl API,axes.set_title() 接受像 color= 这样的 kwargs,它们只是被标记为有效的 Text 属性。
http://matplotlib.org/1.4.3/api/text_api.html#matplotlib.text.Text列出了有效的文本属性。对于颜色,它只说“任何 matplotlib 颜色”
我想象在 mpl 源代码中的某个地方有一行处理当没有为给定 Text 对象指定颜色 kwarg 时要执行的操作。某个地方有一个默认颜色,我认为可能只是“k”。然而,目前我还不清楚如何更改该设置。
抱歉啰嗦了这么久,希望对大家有所帮助。
尝试使用
# Sets title color
text.color = 'your_color'
# Sets other chart attribute colors
xtick.color = 'your_color'
ytick.color = 'your_color'
axes.labelcolor = 'your_color'
Run Code Online (Sandbox Code Playgroud)
打印mpl.rcParams.keys()为您提供可以调整的属性列表。
例子:
import matplotlib as mpl
mpl.rcParams['text.color'] = 'w'
mpl.rcParams['xtick.color'] = 'w'
mpl.rcParams['ytick.color'] = 'w'
mpl.rcParams['axes.labelcolor'] = 'w'
Run Code Online (Sandbox Code Playgroud)
来源:https : //matplotlib.org/users/customizing.html