pyplot文本显示

Posted yoyo1216

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyplot文本显示相关的知识,希望对你有一定的参考价值。

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文本显示的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Colab 中的脚本文件中的 pyplot 进行绘图?

每个单元格中带有文本的热图,带有 matplotlib 的 pyplot

如何使用 pyplot.barh() 在每个条上显示条的值

Python+pyplot绘制带文本标注的柱状图

解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

数据分析与展示---Matplotlib入门