Heim >Backend-Entwicklung >Python-Tutorial >Lösung für matplotlib chinesische verstümmelte Zeichen in Python
Matplotlib ist ein gutes Plotting-Paket für Python, unterstützt jedoch kein Chinesisch selbst (anscheinend gibt es in der Standardkonfiguration keine chinesische Schriftart), also wenn es angezeigt wird Im Plot werden chinesische, verstümmelte Zeichen angezeigt.
Matplotlib ist ein gutes Zeichenpaket für Python, unterstützt jedoch kein Chinesisch selbst (es scheint, dass es in der Standardkonfiguration keine chinesische Schriftart gibt), also wenn Chinesisch angezeigt wird In der Zeichnung werden verstümmelte Zeichen angezeigt.
Wenn Matplotlib Bilder mit chinesischen Anmerkungen zeichnet, tritt ein Problem mit verstümmeltem Code auf.
Beispielcode:
import matplotlib 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.axl.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.axl=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()
Lösung: Schriftart
import matplotlib.pyplot as plt import matplotlib #定义自定义字体,文件名是系统中文字体 myfont = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/simkai.ttf') #解决负号'-'显示为方块的问题 matplotlib.rcParams['axes.unicode_minus']=False 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.axl.annotate(nodeTxt,xy=parentPt,xycoords='axes fraction',xytext=centerPt,textcoords='axes fraction',va="center",ha="center",bbox=nodeType,arrowprops=arrow_args,fontproperties=myfont) def createPlot(): fig =plt.figure(1,facecolor='white') fig.clf() createPlot.axl=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()
Das obige ist der detaillierte Inhalt vonLösung für matplotlib chinesische verstümmelte Zeichen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!