matplotlib:在样式表中设置标题颜色

时间:2015-05-07 18:56:10

标签: python matplotlib

我在mpl中设置自定义样式表。我在网上找到并修改了一些示例设置:

axes.titlesize  : 18
axes.labelsize  : large
axes.labelcolor : ffffff

我还想更改标题的字体颜色。从这些设置来看,axes.titlecolor似乎是一个很好的猜测,但它不起作用。关于如何做到这一点的任何想法?

4 个答案:

答案 0 :(得分:3)

我并不完全熟悉Mpl样式表的实际实现方式,但我猜他们只是预编辑的mpl rc文件。

如果它们确实是mpl rc文件,那么基于读取我当前的rc文件,'Axes'中没有标题颜色的属性。

我在处理可能会或可能不会在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

它不是最好的解决方法,因为它增加了代码的大量混乱,但是当我无法弄清楚默认设置实际存储在mpl参数文件或样式表中的位置时,我发现它是唯一可行的。

分析mpl rc文件,如果你运行类似'grep title matplotlibrc'的东西,它会在文件中找出它找到单词title的唯一实例:

#特殊文字大小勾选标签,轴,标签,标题等,请参阅rc

#axes.titlesize:轴标题的大#fontsize

所以似乎没有标题的默认颜色设置 - 或者更确切地说,如果在那里它被称为其他不直接明显的东西

'grep color matplotlibrc'输出rc文件中所有单词颜色的实例

同样,似乎没有任何与标题颜色甚至默认文本颜色直接相关的内容。

仔细观察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'。但是,目前我还不清楚如何改变这种设置。

对于冗长的话语感到抱歉,希望这会有所帮助。

答案 1 :(得分:2)

可能稍后回答,但无论如何)  如果要更改默认标题颜色,可以在matplotrc文件中设置text.color属性(默认为黑色)。当然它会改变你所有文本输出的颜色。

答案 2 :(得分:2)

尝试使用

# Sets title color
text.color = 'your_color'

# Sets other chart attribute colors
xtick.color = 'your_color'
ytick.color = 'your_color'
axes.labelcolor = 'your_color'

打印 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'

来源: https://matplotlib.org/users/customizing.html

答案 3 :(得分:-1)

这可能有效(Refrenced From Here)

title_obj = plt.title('my random fig') 
plt.getp(title_obj)                    
plt.getp(title_obj, 'text')            
plt.setp(title_obj, color='r')    #Sets it to the color red