Matplotlib는 Python에 좋은 플로팅 패키지이지만 중국어 자체를 지원하지 않습니다(기본 구성에 중국어 글꼴이 없는 것 같습니다).
Matplotlib은 Python에 좋은 그리기 패키지이지만 중국어 자체를 지원하지 않습니다(기본 구성에 중국어 글꼴이 없는 것 같습니다). 따라서 중국어가 나타나면 그림에서는 왜곡된 문자가 나타납니다.
matplotlib에서 중국어 주석이 포함된 이미지를 그릴 때 깨진 코드 문제가 발생합니다.
예제 코드:
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()
해결책: 글꼴 소개
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()
위 내용은 Python의 matplotlib 중국어 왜곡 문자에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!