簡體   English   中英

matplotlib:在樣式表中設置標題顏色

[英]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'

資料來源: https//matplotlib.org/users/customizing.html

這可能有用(參考此處)

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM