Maison > Article > développement back-end > Solution aux caractères chinois tronqués matplotlib en Python
Matplotlib est un bon package de traçage pour Python, mais il ne prend pas en charge le chinois lui-même (il semble qu'il n'y ait pas de police chinoise dans sa configuration par défaut), donc s'il apparaît dans l'intrigue chinoise, des caractères tronqués apparaîtront
Matplotlib est un bon package de dessin pour Python, mais il ne prend pas en charge le chinois lui-même (il semble qu'il n'y ait pas de police chinoise dans sa configuration par défaut), donc si le chinois apparaît dans le dessin, des caractères tronqués apparaîtront.
Lorsque matplotlib dessine des images avec des annotations chinoises, il y aura un problème de code tronqué.
Exemple de code :
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()
Solution : introduire la police
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()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!