Python之matplotib--plot(),plt.legend()以及maplotlib的汉字显示问题

// 通过下面的语句查看帮助文档
from matplotlib import pyplot as plt
help(plt.plot)

1.函数作用:

将y对x绘制为线条和/或标记,展现变量的趋势变化。

2.函数语法:

plt.plot(x, y, ls="-", lw=2, label=“plot figure”,color=“颜色”)

3.参数意义:

x: x轴上的数值
y: y轴上的数值
ls: 折线图的线条风格
lw: 折线图的线条宽度
label: 标记图内容的标签文本
color: 曲线的颜色

4.实例&结果

错误案例:

注意: 在plot()语句中只写label=“图例名字”在最终的坐标图中是不会显示的。
输入:

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [20,17,13,23,14,11,10,19,25,17,26,30]
plt.plot(x,y,color="orange",Marker = "*",linestyle = "--",label = "温度")
plt.show()

输出:
在这里插入图片描述

错误案例:

要想在上面的语句基础上实现我们想要的结果,只需在后面加上plt.legend()语句。plt.legend(loc=“设置图例显示的位置 ”,ncol=设置列的数量,使显示扁平化,当要表示的线段特别多的时候会有用“”)函数主要的作用就是给图加上图例。loc的可取值有‘best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center , right’, ‘lower center’, ‘upper center’, ‘center’
输入:

from matplotlib import pyplot as plt
x = range(2,26,2)
y = [20,17,13,23,14,11,10,19,25,17,26,30]
plt.plot(x,y,color="orange",Marker = "*",linestyle = "--",label ="温度")
plt.legend(loc="upper left") //添加的语句
plt.show()

输出:
在这里插入图片描述
  很难过,我们设置的图例是在坐标图的左上角显示温度,但是他却是俩个方框???很不爽…下面给出釜底抽薪式解决方法。
  采用matplotlib作图时默认设置下是无法显示中文的,凡是汉字都会显示成小方块。 实际上,matplotlib是支持unicode编码的,不能正常显示汉字主要是没有找到合适的中文字体。如此看来,只有去它的配置文件一探究竟了。
matplotlib的配置文件的位置:

F:\App\python3.6.8\Lib\site-packages\matplotlib\mpl-data\matplotlibrc

在这里插入图片描述
然后用记事本打开,找到字体的相关配置信息:
在这里插入图片描述
图中蓝色光标覆盖部分就是我添加的中文字体,这样一来就可以使用matplotlib显示中文汉字(黑体)。到这里想要运行刚才代码还是不能得到想要的结果,具体如下:

正确案例:

输入:

from matplotlib import pyplot as plt
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
x = range(2,26,2)
y = [20,17,13,23,14,11,10,19,25,17,26,30]
plt.plot(x,y,color="orange",Marker = "*",linestyle = "--",label ="温度")
plt.legend(loc="upper left")
plt.show()

输出:
在这里插入图片描述
到此关于plot()和它的俩个小小的衍生问题都已经解决~
参考文献:
Python matplotlib汉字显示问题

猜你喜欢

转载自blog.csdn.net/weixin_44825185/article/details/105688701