提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
matplotlib是Python数据可视化库中最基础、最常用的一种绘图工具,通常与数据分析模块pandas搭配使用,用于数据分析与展示,只需要几行代码就可以生成常见的图形表类型,直方图、折线图、散点图、饼图等等,有点类似于MATLAB的界面。
一些绘图的基本知识:
- figure 是画布,可以绘制单个图也可以同时多个图
- title 是画布最上方的标题,给图形起名字用
- axis 是坐标轴 ,横轴xlabel(也就是我们常说的x轴),纵轴ylabel(也就是我们常说的x轴)
- legend 是图例,图形代表哪些内容
- grid 是网格,True显示网格
- markers 是点的形状
提示:以下是本篇文章正文内容,下面案例可供参考
一、Matplotlib的安装
Matplotlib安装的前提必须是具有Python的环境(电脑安装有PyCharm或Anconda)。
安装方式:
打开cmd,在命令行输入如下代码然后回车:
pip install matplotlib
二、Matplotlib的具体使用
1.思维导图以及图表的基本组成部分
2.引入库
代码如下:
//anaconda中自带matplotlib库,通过如下导入即可
import matplotlib.pyplot as plt
3.选择绘图函数
不同的图形有不同函数名称,这里以plot函数(折线图)为例:
绘图语法(示例):
plt.plot(x,y,color,linestyle,marker,format_string, ...)
其中参数含义:
例如:
plt.plot(
[1,2,3,4,5],#x轴
[1,3,4,8,3],#y轴
linestyle = '--',#线条样式ls
marker = '*',#点样式
c = 'black'#图形颜色
)
此处值得注意的是颜色color可以简写为c,线条样式可以简写为ls。
运行结果如下:
4.设置画布
要画图我们首先得有画布对吧,画布类似于我们画画的画板,画布决定了我们图形的大小,默认的画布是白色,看不见其边界。
基本语法:
plot.figure(figsize,dpi,…)
figsize:画布大小,宽高,接收的是元组(a,b),a决定画布的长,b决定画布的高。
dpi:分辨率,像素密度
facecolor:背景颜色
#导入matplotlib.pyplot库
import matplotlib.pyplot as plt
plt.figure(figsize=(8,2),dpi=200)#画布的长和宽,像素
plt.plot([1,2],[1,3])#折线图(见后面内容)
5.设置坐标轴
坐标轴分为x轴和y轴,其中包容坐标轴标题,刻度,范围以及网格线,通过不同的函数控制坐标轴的设置。
Matplotlib库中通过不同的函数控制控制坐标轴的设置。
plt.rcParams['font.family'] = 'SimHei' # 解决中文乱码问题
plt.xlabel('x轴') # x坐标轴名称
plt.ylabel('y轴')
#plt.xticks([1,2,3]) # 设置x轴刻度
#plt.yticks([1,2,3])
plt.xlim(1,4) # 坐标轴范围
plt.ylim([1,5])
plt.grid() # 网格线
plt.show() # 显示图像
6.文本标签、标题和图例
可以在画布中任意位值一次性添加一个文本信息,其中主要的参数有三个(x,y,s)。
显示文本标签的基本语法:
plt,text(x,y,s, …)
值得注意的是,坐标如果设定有xticks、yticks标签,则指的不是标签,而是绘图时x、轴的原始值。
# 给折线图的点添加y值标签
# x = [1,2,3,4,5]
x = ['a','b','c','d','e']
y = [1,3,4,8,3]
plt.plot(['a','b','c','d','e'],[1,3,4,8,3],'o--')
#plt.plot(x,y,'o--')
for a,b in zip(x,y):
# print(a,b)
plt.text(a,b+0.2,f'{b}',ha='center') # 每次画一个点的y值
显示标题的基本语法:
plot.title(‘标题’)
显示图例的基本语法:
plot.legend(‘数据标签’,loc,fontsize, …)
loc参数:决定图例的位置,如"upper right"表示右上方
fontsize:设置字体大小
还有很多参数不一一列举
# 画图
plt.rcParams['font.family'] = 'SimHei' # 解决中文乱码
plt.figure(figsize=(12,4))#画布大小
plt.title('L4043号车单次行程的平均速度、峰值速度变化图')#标题
plt.xlabel('每次行程的启动时间')
plt.ylabel('速度km/h')
plt.plot(x,y1,'--o',y2,':*')
plt.xticks([0,20,40,60,80],rotation=15) # 只显示第1、41、81个刻度的值,刻度旋转显示
plt.legend(['平均速度','峰值速度'])#添加图例
plt.show()
如上的代码中需要数据的可以评论区留言。
6.常见的图形及绘制方法
柱形图
柱形图能够查看各项数据的大小差异
基本语法:
plt.bar(x,height,width, …)
可以通过多个plt.bar()绘制多重柱形图
饼图
饼图能够查看各项数据在总计中的占比情况
基本语法:
plt.pie(x,labels,radius,autopct …)
折线图
折线图能够查看时间序列数据的波动趋势
基本语法:
plt.plot(x,y,color,linestyle,marker,format_string, …)
散点图
散点图能够查看两个序列数据之间的相关关系
基本语法:
plt.scatter(x,y,s,c, …)
直方图
直方图能够查看序列数据的分布情况
基本语法:
plt.hist(x,bins,…)
同时绘制多张图
基本流程:
- 创建画布(只添加画布对象但是不做画布操作是无法显示图形的)
- 添加子图的逻辑(子图区域选择函数:plt.subplot( x , y , z)执行后会在画布中选定一个区域,由参数xyz决定)
- 绘制子图(绘制子图需要在执行完subplot函数后执行绘图的相关代码每次执行完一个subplot函数选择一个区域后执行绘图代码即可在该位置绘图)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了matplotlib的使用,而python还提供了大量能使我们快速便捷地处理数据的函数和方法。以上如有不足或错误的地方请大家及时为我指正,谢谢啦!