User Tools

Site Tools


python:matplotlib:フォントの設定

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
python:matplotlib:フォントの設定 [2018/01/21 20:37]
koudai [フォントサイズを個別に設定]
python:matplotlib:フォントの設定 [2021/06/27 22:04] (current)
Line 3: Line 3:
 matplotlibで使われる文字の大きさやフォントの種類の設定方法を紹介します。 matplotlibで使われる文字の大きさやフォントの種類の設定方法を紹介します。
  
- +もっも簡単なのは、グラフに登場するすべてのフォントを同じ大きさ、同じフォントにする場合で、plt.rcParamを使うと便利です。 
- +以下ではフォントサイズを20ptにしてフォントをセリフ体のDejaVu Serifにしています。
-====== まめて設定 ====== +
- +
-グラフに登場するすべてのフォントを同じ大きさ、同じフォントにする場合は plt.rcParam を使うと便利です。 +
-以下ではフォントサイズを20ptにしてフォントをセリフ体にしています。+
  
 <file python plot.py> <file python plot.py>
Line 14: Line 10:
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
  
-plt.rcParams["font.family"] = "serif  # 使用するフォント +plt.rcParams["font.family"] = "DejaVu Serif  # 使用するフォント 
-plt.rcParams["font.size"] = 20          # 文字の大きさ+plt.rcParams["font.size"] = 20                 # 文字の大きさ
  
 x = np.arange(-5,5,0.1) x = np.arange(-5,5,0.1)
Line 26: Line 22:
 plt.plot(x, y, label="sin x") plt.plot(x, y, label="sin x")
  
-plt.legend(loc="lower left")+plt.legend()
  
-plt.tick_params() +plt.tight_layout()  # フォントサイズが大きくなると文字が描画領域からはみ出るので、プロット全体に合わせて描画領域を大きくする。
-plt.tight_layout()+
  
 plt.show() plt.show()
Line 37: Line 32:
  
  
-なお、グラフに含まれる文字はサンセリフ体が推奨されます(matplotlibのデフォルトはサンセリフ体になっています)。 +なお、グラフに含まれる文字はサンセリフ体が推奨されます(matplotlibのデフォルトはサンセリフ体のDejaVu Sansになっています)。
-font.familyで使用できるのは次のとおりです。 +
-  * sans-serif ... サンセリフ体。文字にヒゲがない。 +
-  * serif ... セリフ体。文字にヒゲがある。 +
-  * monospace ... 等幅フォント。ターミナルの文字なんかがこれ+
  
-====== フォントサイズを個別に設定 ======+matplotlibではotf形式またはttf形式のフォントが利用できます。 
 +使用可能なフォント一覧は次のように調べることができます。 
 +<code> 
 +$ python 
 +>>> import matplotlib.font_manager 
 +>>> flist = matplotlib.font_manager.get_fontconfig_fonts() 
 +>>> names = [matplotlib.font_manager.FontProperties(fname=fname).get_name() for fname in flist] 
 +>>> print(names) 
 +</code> 
 +エラーが出る場合 
 +<code> 
 +>>> import matplotlib.font_manager 
 +>>> matplotlib.font_manager.get_fontconfig_fonts()  # あるいは matplotlib.font_manager.findSystemFonts() 
 +</code> 
 + 
 +ttc形式のフォントは使用できないそうです。 
 +  * [[https://qiita.com/yniji/items/3fac25c2ffa316990d0c]] 
 + 
 +以下ではもう少し細かい設定を紹介します。 
 + 
 + 
 +====== フォントサイズ設定 ======
  
 フォントのサイズを個別に設定する場合は、各文字列の出力のときに fontsize を指定します。 フォントのサイズを個別に設定する場合は、各文字列の出力のときに fontsize を指定します。
Line 61: Line 73:
 plt.plot(x, y, label="sin x") plt.plot(x, y, label="sin x")
  
-plt.legend(loc="lower left", fontsize = 20)+plt.legend(fontsize = 20)
  
-plt.tick_params(labelsize = 20)+plt.tick_params(labelsize = 20)   # メモリの数字のフォントサイズを設定
 plt.tight_layout() plt.tight_layout()
  
-plt.savefig("font.png")+plt.show()
 </file> </file>
python/matplotlib/フォントの設定.1516534672.txt.gz · Last modified: 2021/06/27 21:59 (external edit)