Matplotlib 是一个用于创建静态、动画、 和交互式可视化的第三方库,也是我们在借助Python进行数据可视化时经常使用到的库,具有较强的可视化能力。
为让大家有一个更为直观的认识,这里我随机从其官方网页中摘取了几张图片。
按照惯例,我们在这里给出Matplotlib的官方网址(https://matplotlib.org),大家也可以根据其中的示例、资源和参考文档进行自学。
首先,在使用前要确保机器已完成了Matplotlib的安装。
此外,Matplotlib通常也与NumPy、Scipy以及Pandas等数据分析库配合使用。
1.库的导入
采用惯用的import方法,完成导入
import matplotlib
Pyplot 是 Matplotlib 的子库,也是进行绘图时常用的绘图模块,这里我们将其import进来
import matplotlib.pyplot as plt
2.绘制
这里我们编撰几组数据进行展示
#导入
from matplotlib import pyplot as plt
#数据
x = ["2014","2016","2018","2020","2022","2024","2026","2028","2030","2032"]
y = [15,13,14,17,20,25,26,26,27,22]
#绘制图形
plt.plot(x,y)
#显示图形
plt.show()
结果如下:
至此,我们便简单地完成了折线图的绘制。但是,这个结果显然难以满足我们的实际需要,下面就需要作进一步的美化处理。
3.美化
1.设置画布大小及清晰度
这就需要对图片的大小及清晰度进行设置,代码如下:
#设置大小清晰度
fig = plt.figure(figsize=(20,10),dpi=300)
这里,对涉及到的参数做一简要说明:通过figsize参数传入一个元组(width, height),设置图像的大小;通过dpi传入一个整数值,设置图像的清晰度。
2.将图片保存在本地
在示例中,我们选择将生成的图片进行展示,而未将结果导出,我们又不能通过截图将其保存,这就需要我们使用保存命令,代码如下:
plt.savefig('e:/折线图.png')
#这里我选择将其输出到E盘目录下,并命名为折线图
3.添加格网
有时,我们需要为图表添加网格,以更好匹配数值信息,代码如下:
#设置格网
plt.grid()
4.设置标题
标题也是图表中十分重要的要素,代码如下:
#设置标题
plt.title("样例折线图", fontsize = 20,loc = "center")
同样,这里也可以通过一些其他参数完成字体大小、位置的设置
5.设置折线样式
折线图的灵魂自然是折线,折线的样式也是我们关注的焦点。
这里呢,就涉及的参数较多了,我们一一进行介绍。
①线型
线型用参数linestyle定义,简写为ls
线型 | 缩写 | 注释 |
solid | - | 实线 |
dotted | : | 点虚线 |
dashed | -- | 破折线 |
dashdot | -. | 点划线 |
Noe | "或者' ' | 不画线 |
②颜色
颜色用参数color定义,简写为c
常用颜色
颜色 | 注释 |
r | 红色 |
g | 绿色 |
b | 蓝色 |
c | 青色 |
y | 黄色 |
k | 黑色 |
w | 白色 |
当然,也可以用十六进制颜色进行定义。
③线宽
线宽可以用linewidth参数定义,简写为lw
④形状
形状标记用marker参数进行设置,以下为常用形状(摘自菜鸟文档)
此外,我们还可以用markersize参数来设置形状的大小,简写为ms
有了上述知识储备,我们就可以自由地画线喽!
#设置折线样式
plt.plot(x,y1,lw=1,c='red',marker='o',ms=4,label='对象1')
plt.plot(x,y2,lw=1,c='blue',marker='s',ms=4,label='对象2')
6.添加图例
#添加图例
plt.legend(loc="upper left")
这里还要说明一下:这里的loc参数主要用于设置插入图例的位置,这里选择左上,主要有以下类型"center", "right","left","upper left","upper right","lower left","lower right","center left"和"center right"等等,可以根据实际情况加以调整,以使其美观。
7.设置轴标签
用xlabel和ylabel来设置
#设置轴标签
plt.xlabel('年份',fontsize=13)
plt.ylabel('指数',fontsize=13)
8.解决中文字体无法正常显示的问题
由于matplotlib默认使用的字体中不包含中文字符,在绘图时可能会出现中文字体无法显示的现象,这里有一种方法可供参考
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
如果安装matplotlib路径下有对应字体文件,可以通过这种方式进行设置。
至此,本次分享就告一段落了。而事实上,折线图的绘制并不复杂,属于相对基础的内容,后面也会陆续更新其他图表的绘制,敬请各位关注。另外,如果大家有任何建议、意见和想法,欢迎在评论区留言讨论。