您好,登錄后才能下訂單哦!
本文實例講述了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 plt from 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程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。