码迷,mamicode.com
首页 > 其他好文 > 详细

pyplot文本显示

时间:2018-12-17 15:59:43      阅读:831      评论:0      收藏:0      [点我收藏+]

标签:字体   style   comm   字符显示   dict   公式   中文乱码   文本   code   

pyplot文本显示

pyplot中文字符显示

pyplot默认不支持中文字符,因为默认字体是sans-serif,英文字体不能显示中文

方法1,修改需要输出中文字符的地方

在有中文输出的地方,添加属性:fontproperties

  • 优点,使用方便,影响范围可控
  • 缺点:不是所有输出中文的方法都有fontProperties属性,例如图例中文,没有的时候,仍需使用方法2
import matplotlib.pyplot as plt

plt.plot([3,1,5,4,2])
plt.xlabel(X轴值)
plt.ylabel(Y轴值,fontproperties=SimHei)

plt.show()

 


方法2,修改全局默认字体

  • 优点:适用于所有中文乱码情况
  • 缺点:修改后影响本工作空间内所有代码,本次运行中删除代码也不会恢复默认,如想恢复默认可将字体名改回系统默认的sans-serif

例子:

import matplotlib.pyplot as plt

import matplotlib #载入matplotlib完整库
matplotlib.rcParams[font.family]=Microsoft Yahei #字体,改为微软雅黑,默认 sans-serif
matplotlib.rcParams[font.size]=32 #字体大小,整数字号,默认10

plt.plot([3,1,5,4,2])
plt.xlabel(X axis)
plt.ylabel(Y轴值)

plt.show()

 

一些系统通用中文字体名称(英文名称)

  • Microsoft Yahei 微软雅黑,推荐
  • SimHei 黑体(某些符号可能会出问题,例如负号)
  • Kaiti 楷体
  • FangSong 仿宋

pyplot常用文本显示函数

  • plt.xlabel() X轴文本标签
  • plt.ylabel() Y轴文本标签
  • plt.title() 图表标题
  • plt.text() 任意位置增加文本
  • plt.annotate() 任意位置增加带箭头的注释文本
    • plt.annotate(string,xy=arrow_crd,xytext=text_crd,arrowprops=dict)
    • string:要显示的字符串
    • xy:箭头所在的位置
    • xytext:文本显示的位置
    • arrowprops:字典类型,定义了整个元素显示的一些属性

注:当字符串里有反斜杠等转义特殊字符时,字符串前加r,表示显示原始字符串

例子:

import matplotlib.pyplot as plt

plt.plot([3,1,5,4,2])

plt.xlabel(rX \axis) #字符串前加r显示原始字符串

plt.ylabel(纵轴值,fontproperties=SimHei,color=#00ff00,fontsize=24)

plt.title(图表标题 $a^{2}+b^{2}=C^{2}$,fontproperties=SimHei) #可以使用$引入一部分latex文本排版语法和公式

plt.text(0.5,3,任意位置文本,fontproperties=SimHei,fontsize=24,rotation=45) #任意文本的x,y坐标值(可用latex语法),旋转角度

plt.annotate(
    这里转折, #显示字符串
    fontproperties=SimHei, # 中文字体
    xy=(3,4), # 箭头位置
    xytext=(3.5,4.5), # 文本位置
    arrowprops=dict(facecolor=red,shrink=0.1,width=2) # facecolor:箭头颜色;shrink:箭头的起始和结束位置两侧的空白大小;width:箭头宽度
)

plt.show()

 


技术分享图片

 

技术分享图片

pyplot文本显示

标签:字体   style   comm   字符显示   dict   公式   中文乱码   文本   code   

原文地址:https://www.cnblogs.com/yoyo1216/p/10131637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!