本文實例講述了Python使用matplotlib繪圖無法顯示中文問題的解決方法。分享給大家供大家參考,具體如下:
在python中,默認情況下是無法顯示中文的,如下代碼:
import matplotlib.pyplot as plt# 定義文本框和箭頭格式decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")leafNode = dict(boxstyle = "round4", fc = "0.8")arrow_args = dict(arrowstyle = "<-")# 繪制帶箭頭的注解def plotNode(nodeTxt, centerPt, parentPt, nodeType) : createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction', xytext = centerPt, textcoords = 'axes fraction', va = 'center', ha = 'center', bbox = nodeType, arrowprops = arrow_args)def createPlot() : fig = plt.figure(1, facecolor='white') fig.clf() createPlot.ax1 = plt.subplot(111, frameon = False) plotNode(U'決策節點', (0.5, 0.1), (0.1, 0.5), decisionNode) plotNode(U'葉節點', (0.8, 0.1), (0.3, 0.8), leafNode) plt.show()createPlot()
得到圖像如下:

產生中文亂碼的原因就是字體的默認設置中并沒有中文字體,所以我們只要手動添加中文字體的名稱就可以了
手動增加如下代碼
from pylab import *mpl.rcParams['font.sans-serif'] = ['SimHei']
源代碼修改如下:
import matplotlib.pyplot as pltfrom pylab import *mpl.rcParams['font.sans-serif'] = ['SimHei']# 定義文本框和箭頭格式decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")leafNode = dict(boxstyle = "round4", fc = "0.8")arrow_args = dict(arrowstyle = "<-")# 繪制帶箭頭的注解def plotNode(nodeTxt, centerPt, parentPt, nodeType) : createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction', xytext = centerPt, textcoords = 'axes fraction', va = 'center', ha = 'center', bbox = nodeType, arrowprops = arrow_args)def createPlot() : fig = plt.figure(1, facecolor='white') fig.clf() createPlot.ax1 = plt.subplot(111, frameon = False) plotNode(U'決策節點', (0.5, 0.1), (0.1, 0.5), decisionNode) plotNode(U'葉節點', (0.8, 0.1), (0.3, 0.8), leafNode) plt.show()createPlot()
最終得到圖像

成功!
更多關于Python相關內容可查看本站專題:《Python數學運算技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答