1. 程式人生 > >pyplot文字顯示

pyplot文字顯示

pyplot文字顯示

pyplot中文字元顯示

pyplot預設不支援中文字元,因為預設字型是sans-serif,英文字型不能顯示中文

方法1,修改需要輸出中文字元的地方

在有中文輸出的地方,新增屬性:fontproperties

  • 優點,使用方便,影響範圍可控
  • 缺點:不是所有輸出中文的方法都有fontProperties屬性,例如圖例中文,沒有的時候,仍需使用方法2
import matplotlib.pyplot as plt

plt.plot([3,1,5,4,2])
plt.xlabel('X軸值')
plt.ylabel('Y軸值',fontproperties='
SimHei') plt.show()

 


方法2,修改全域性預設字型

  • 優點:適用於所有中文亂碼情況
  • 缺點:修改後影響本工作空間內所有程式碼,本次執行中刪除程式碼也不會恢復預設,如想恢復預設可將字型名改回系統預設的sans-serif

例子:

import matplotlib.pyplot as plt

import matplotlib #載入matplotlib完整庫
matplotlib.rcParams['font.family']='Microsoft Yahei' #字型,改為微軟雅黑,預設 sans-serif
matplotlib.rcParams['
font.size']=32 #字型大小,整數字號,預設10 plt.plot([3,1,5,4,2]) plt.xlabel('X axis') plt.ylabel('Y軸值') plt.show()

 

一些系統通用中文字型名稱(英文名稱)

  • Microsoft Yahei 微軟雅黑,推薦
  • SimHei 黑體(某些符號可能會出問題,例如負號)
  • Kaiti 楷體
  • FangSong 仿宋

pyplot常用文字顯示函式

  • plt.xlabel() X軸文字標籤
  • plt.ylabel() Y軸文字標籤
  • plt.title() 圖表標題
  • plt.text() 任意位置增加文字
  • plt.annotate() 任意位置增加帶箭頭的註釋文字
    • plt.annotate(string,xy=arrow_crd,xytext=text_crd,arrowprops=dict)
    • string:要顯示的字串
    • xy:箭頭所在的位置
    • xytext:文字顯示的位置
    • arrowprops:字典型別,定義了整個元素顯示的一些屬性

注:當字串裡有反斜槓等轉義特殊字元時,字串前加r,表示顯示原始字串

例子:

import matplotlib.pyplot as plt

plt.plot([3,1,5,4,2])

plt.xlabel(r'X \axis') #字串前加r顯示原始字串

plt.ylabel('縱軸值',fontproperties='SimHei',color='#00ff00',fontsize='24')

plt.title('圖表標題 $a^{2}+b^{2}=C^{2}$',fontproperties='SimHei') #可以使用$引入一部分latex文字排版語法和公式

plt.text(0.5,3,'任意位置文字',fontproperties='SimHei',fontsize='24',rotation=45) #任意文字的x,y座標值(可用latex語法),旋轉角度

plt.annotate(
    '這裡轉折', #顯示字串
    fontproperties='SimHei', # 中文字型
    xy=(3,4), # 箭頭位置
    xytext=(3.5,4.5), # 文字位置
    arrowprops=dict(facecolor='red',shrink=0.1,width=2) # facecolor:箭頭顏色;shrink:箭頭的起始和結束位置兩側的空白大小;width:箭頭寬度
)

plt.show()