我在mpl中设置自定义样式表。我在网上找到并修改了一些示例设置:
axes.titlesize : 18
axes.labelsize : large
axes.labelcolor : ffffff
我还想更改标题的字体颜色。从这些设置来看,axes.titlecolor
似乎是一个很好的猜测,但它不起作用。关于如何做到这一点的任何想法?
答案 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'
答案 3 :(得分:-1)
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