簡體   English   中英

使用樣式表時自定義字體

[英]Customize font when using style sheet

我正在使用'ggplot'樣式表。 現在,樣式很棒,除了我想專門更改字體樣式。 那可能嗎?

如果找到有關自定義樣式的文檔 但是,我只想在保留其余樣式的同時更改字體。

另外,有人知道在哪里可以看到每種style的設置細節(例如字體,figsize等)嗎?

plt.imshow(ori, vmin = 0, vmax = 300)
plt.style.use('ggplot')
plt.show() 

組合樣式

我認為最優雅的是結合風格

例如,您可以在mystyle.mplstyle定義自己的字體設置(請參見下面的保存位置以及外觀)。 要使用自己的字體設置獲取ggplot樣式,則只需指定:

plt.style.use(['ggplot', 'mystyle'])

該解決方案很優雅,因為它允許在所有樣圖中一致地應用,並允許您混合搭配。

在哪里保存您的自定義樣式?

取自我自己的一種樣式mystyle.mplstyle可以包含以下條目(顯然,您應該根據需要進行自定義):

font.family  : serif
font.serif   : CMU Serif
font.weight  : bold
font.size    : 18
text.usetex  : true

您應該將其保存在matplotlib的配置目錄中。 對我來說,這是~/.matplotlib/stylelib/ ,但是使用

import matplotlib
matplotlib.get_configdir()

找出在操作系統上使用什么。 請參閱文檔 您也可以編寫Python函數以將其安裝在正確的位置。

在哪里可以找到現有樣式?

然后是您問題的最后一部分。 首先,知道您可以使用以下方式獲得可用樣式的列表是很有用的:

import matplotlib.pyplot as plt
plt.style.available

有關圖形表示,請參見文檔

如何檢查例如ggplot.mplstyle 我認為matplotlib的源中的最佳參考。 您還可以在系統上找到*.mplstyle文件。 但是,該位置取決於您的操作系統和安裝。 為了我

find / -iname 'ggplot.mplstyle' 2>/dev/null

/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/stylelib/ggplot.mplstyle

或更籠統地說,您可以搜索所有樣式:

find / -iname '*.mplstyle' 2>/dev/null

對於Windows,我並不是真正的專家,但是也許上面列出的文件路徑為您提供了查找位置的線索。

Python腳本將樣式安裝在正確的位置

要將自定義樣式安裝在正確的位置,可以構建一個類似於以下內容的腳本:

def copy_style():

    import os
    import matplotlib

    # style definition(s)

    styles = {}

    styles['mystyle.mplstyle'] = '''
font.family          : serif
'''

    # write style definitions

    # directory name where the styles are stored
    dirname = os.path.abspath(os.path.join(matplotlib.get_configdir(), 'stylelib'))

    # make directory if it does not yet exist
    if not os.path.isdir(dirname): os.makedirs(dirname)

    # write all styles
    for fname, style in styles.items():
        open(os.path.join(dirname, fname),'w').write(style)

對的,這是可能的。 您可以通過將字體傳遞給各個標簽在本地進行操作

font = {'fontname':'your font'}
plt.xlabel('xlabel', **hfont)
plt.ylabel('xlabel', **hfont)

或全球

 import matplotlib.pyplot as plt
 plt.rcParams['font.family'] = 'your font'

試試rcParams

matplotlib.rcParams.update({'font.size': 12})

閱讀更多matplotlib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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