[英]matplotlib: set title color in stylesheet
我在mpl中設置自定義樣式表。 我在網上找到並修改了一些示例設置:
axes.titlesize : 18
axes.labelsize : large
axes.labelcolor : ffffff
我還想更改標題的字體顏色。 從這些設置中, axes.titlecolor
似乎是一個很好的猜測,但它不起作用。 關於如何做到這一點的任何想法?
我並不完全熟悉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列出了有效的Text屬性。 對於顏色,所有它說'任何matplotlib顏色'
我想象一下mpl源代碼中的某個地方有一條線來處理在沒有為給定的Text對象指定顏色kwarg時要做什么。 某處有默認顏色,我認為可能只是'k'。 但是,目前我還不清楚如何改變這種設置。
對不起長篇大論,希望這會有所幫助。
可能稍后回答但無論如何)如果你想更改默認標題顏色,你可以在matplotrc文件中設置text.color屬性(默認為黑色)。 當然它會改變你所有文本輸出的顏色。
嘗試使用
# 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'
這可能有用(參考此處)
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.