python绘图库matplotlib的知识总结
- 一.matplotlib是什么
- 二.matplotlib的安装与导入
- 三.matplotlib的常用函数
- 四.matplotlib绘制折线图的使用方法
- 1.设置图形大小
- 2. 利用数据绘图
- 3.调整x,y轴的刻度,旋转角度,显示描述信息,绘制网格,添加图例
- 4.图形的样式
- 5.绘制多条折线
- 6.显示绘制的图
- 四.总结:
一.matplotlib是什么
matplotlib是一个python内置的绘图库,它主要是把我们处理的数据,通过可视化的形式展示出来
主要用于做可视化的图表,是模仿于matlab构建的
二.matplotlib的安装与导入
首先matplotlib的安装可以直接在pycharm编译器终端输入(pip install matplotlib)
但是我们按照上面的方式安装可能会导致安装的速度很慢,在此我们可以使用镜像源
进行模块的安装
镜像源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
先在终端配置这个pip设置,这算一个永久的镜像源,配置之后,你输入上面
(pip install matpltlib)下载模块就不会因为限速而导致下载慢的问题
导入matplotlib
from matploltlib import pyplot as plt
三.matplotlib的常用函数
plt.title()添加标题
plt.text()在任意位置添加文本
plt.annotate()在任意位置增加带箭头的注释文本
plt.annotate()有哪些参数
1.要显示的文本
2.xy传入(2,3)箭头所指向的坐标点位置
3.xytext传入文本显示的位置也是坐标
4.arrowprops传入字典类型的数据,数据内容是给箭头设置的一些属性
from matplotlib import pyplot aspltimport matplotlibfont = 'Microsoft Yahei'# 显示大学生10天每天的消费金额x = range(1, 11)#y = [23, 25, 25, 23, 26, 28, 30, 80, 21, 19]plt.plot(x, y, label='科师大')plt.xlabel('天数(单位: 天)', fontproperties=font)plt.ylabel('消费额(单位: 元)', fontproperties=font)plt.title('大学生10天的消费额', fontproperties=font)plt.annotate('超额消费',xy=(8, 80),xytext=(9, 80),arrowprops=dict(facecolor='red', shrink=0.1, width=2),# facecolor箭头颜色 shrink 箭头起始和结束位置两侧的空白大小 width箭头宽度fontproperties=font)plt.show()
四.matplotlib绘制折线图的使用方法
1.设置图形大小
两个参数,一个图片大小,第二个是图片的分辨率
plt.figure(figsize=(20, 8), dpi=80)
2. 利用数据绘图
通过查看plot的内部实现可以看到plot里面参数可以有(横坐标数据)和纵坐标数据它们是列表的类型,元素必须一样多,一一对应,然后可以设置线条的颜色,粗细,以及线条样式等等
plt.figure(figsize=(20, 8), dpi=80)x = [0, 2, 4, 6, 8]y = [1, 5, 3, 9, 7]plt.plot(x, y)
3.调整x,y轴的刻度,旋转角度,显示描述信息,绘制网格,添加图例
调整刻度是因为我们的刻度太密,导致我们的刻度下方的刻度值显示不完整,使得我们的观赏性不好,那么这个时候就可以使用我们的调整刻度的功能,使得我们绘制的图更清晰明了
旋转角度也是为了美观,旋转角度都是使用rotation这个参数进行设置.描述信息就是指定x,y轴所代表的是什么,使得图例更完整 如果直接添加的话,信息描述是不能显示的,这个时候我们就需要导入matplotlib,然后通过matplotlib中的rcparams进行设置,当然还可以直接选择一种微软自带的字体
图例:就是当你要在一个绘制区域绘制两个及两个以上的图的时候,需要通过图列分辨哪根线代表的是什么,然而这里也需要中文显示,但是这里的中文显示和前面描述信息的中文显示传参略有不同,它只需要使用prop进行传参就好了,当然我们还可以设置图例的位置
图例的位置传一个loc的参数
from matplotlib import pyplot aspltimport randomimport matplotlib# 选择一种字体my_font = 'Microsoft Yahei'# 设置图片大小plt.figure(figsize=(20, 8), dpi=80)x = [range(120)]y = [random.randint(20, 35) for i in range(120)]plt.plot(x, y,label='两小时的体温变化')# 调整x的尺度_xtick_labels = [f"10点{i}分" for i in range(60)]_xtick_labels += [f"11点{i}分" for i in range(60)]plt.xticks(x[::3], _xtick_labels[::3],my_font)#绘制网格plt.grid(alpha = 0.1)#参数是透明度的设置0-1(1代表完全显示)#添加图例plt.legend(prop=my_font)# 添加描述信息plt.xlabel('时间', fontpropertiese=my_font)plt.ylabel('温度 单位(℃)', fontpropertiese=my_font)plt.title('10点到12点每分钟的气温变化情况', fontpropertiese=my_font)
4.图形的样式
color 设置线条的颜色
linestyle 线条的样式
alpha设置网格的透明度
linewidth 线条得粗细
5.绘制多条折线
from matplotlib import pyplot as pltimport matplotlibx1 = [51, 73, 5, 34, 69, 11]y1 = [52, 23, 16, 32, 76, 32]x2 = [12, 45, 67, 78, 89, 45]y2 = [34, 6, 21, 67, 34, 89]plt.plot(x1, y1,label="三校一班")plt.plot(x2, y2,label="三校二班")plt.xlabel('身高',fontproperties='SimHei')plt.ylabel('体重',fontproperties='SimHei')plt.title('中学生体检',fontproperties='SimHei')plt.legend(prop='SimHei')plt.show()
当然此处还可以通过plot()传参facecolor=red 进行折线图背景的修改
6.显示绘制的图
plt.show()
四.总结:
利用matplotlib绘制折线图,主要用折线图的形式反应自变量和因变量之间的关系,进而反应事物的变化情况