pyplot文字顯示
阿新 • • 發佈:2018-12-17
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()