数据可视化入门 | 10张图搞定matplotlib基础操作
Posted 文科数据员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化入门 | 10张图搞定matplotlib基础操作相关的知识,希望对你有一定的参考价值。
从今天开始,我和Seven会推出数据可视化入门内容。将涉及matplotlib
库、seaborn
库和pyecharts
库和Tableau
的基本操作。数据猿立个flag,一定要常更新,把之前的python入门全都陆续补齐。希望各位朋友们多多监督哈,欢迎催更!
本文目录如下
Matplotlib
是一个功能强大的综合库,用于在Python
中创建静态、动画和交互式可视化效果。大量的第三方软件包 扩展并建立在Matplotlib
功能的基础上,包括几个更高级别的绘图界面(如seaborn
,HoloViews
,ggplot
)。
对我们文科生来说,学好Matplotlib
帮助我们更快地利用Pandas
将挖掘到的数据进行数据探索,并快速出图。
今天是matplotlib
的基本操作的第一篇,使用matplotlib
最常用的API接口——plt.plot()
来实现基础绘图。后面,我么将会通过matplotlib
在pandas
中的入门讲解,介绍fig,ax = plt.subplots();ax.plot()
接口。
1. 开始绘图
简单的统计图,从结构可以分为figure
(图形)、axes
(轴)、和title
(标题),数据猿这次就从最简单的绘图开始,逐步给这个图形添加各种必要元素,从而熟悉Matplotlib
基本操作。
一般来说,我们在绘图的时候会涉及到许多科学计算的内容,所以需要同时导入numpy
库。
import numpy as np
import matplotlib.pyplot as plt
正常显示中文和负号
# 显示中文
plt.rcParams['font.sans-serif'] = 'Kaiti'#这里设置为楷体
plt.rcParams['axes.unicode_minus'] = False
数据,赋值最简单的二维数据给x
,y
x=np.arange(0,10)
添加标题
plt.title('数据猿的示例标题')
添加图形样式,并将数据放入图形中
plt.plot(x,x*x)
展示图形
plt.show()
基础图形如下
2. 添加文字注释
如果我们要在图形上添加文字注释,以便阅读者更快找到图中的重点,可以不需要用PS处理,可在matplotlib上直接进行。
函数是text()
,参数分别是,横坐标、纵坐标和文字。
x=np.arange(0,10)
#添加标题
plt.title('这是一个示例标题')
plt.plot(x,x*x)
# 添加文字
plt.text(4,45,'函数 y=x^2')
plt.show()
添加文字后如下图
添加注释
函数annotate()
,参数分别是注释坐标(元组类型)、注释文字的坐标(元组类型),这里用箭头arrowprops{}
来注释,箭头的参数是字典格式,定义箭头的线宽、颜色。
x=np.arange(0,10)
plt.title('这是一个示例标题')
plt.plot(x,x*x)
plt.text(4,45,'函数 y=x^2')
# 添加注释
plt.annotate('函数 y=x^2(x>0)',xy=(4.5,30),xytext=(3.5,45),arrowprops={'headwidth':6,'facecolor':'b'})
plt.show()
添加注释后,如下图
3. 添加坐标轴名称
Xlabel()
和ylabel()
来设置,这里的参数为字符串
x=np.arange(0,10)
plt.title('这是一个示例标题')
plt.plot(x,x*x)
# 添加注释
plt.annotate('示例函数 y=x^2(x>0)',xy=(4.5,30),xytext=(3.5,45),arrowprops={'headwidth':6,'facecolor':'b'})
# 添加坐标轴名称
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
plt.show()
添加坐标轴后,如下图
4. 添加多个图内线条和图例
我们常常需要添加多个线条到一个图,便于对比。先确定x,然后赋值给不同的y就可了。但是这样的做法很有局限性,仅适用于简单的统计图。
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
#添加多个图内线条
plt.plot(x,x*10)
plt.plot(x,x*1.1)
plt.plot(x,x*0.5)
plt.plot(x,x*0.8)
lengend()
添加图例,参数为与线条同等数量的字符串列表
# 添加图例
plt.legend(['python','心情','健康','工资'])
plt.show()
添加多个图内线条和图例后,如下图
5. 修改线条的颜色
在plot()
中设置color=
参数即可,支持RGB等多种格式修改颜色。
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
# 修改线条颜色
plt.plot(x,x*10,color='r')
plt.plot(x,x*1.1,color='0.5')
plt.plot(x,x*0.25,color='#FF00FF')
plt.plot(x,x*0.8,color=(0.1,0.2,0.3))
plt.legend(['python','心情','健康','工资'])
plt.show()
修改线条的颜色后,如下图
补一个颜色表,结合英语单词就很快记住了。
颜色 | 字符 |
|
蓝色,blue |
|
绿色,green |
|
红色,red |
|
青色,cyan |
|
品红,magenta |
|
黄色,yellow |
|
黑色,black |
|
白色,white |
6. 修改线条线型
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
# 修改线条颜色和线型
plt.plot(x,x*10,color='r',marker='o')
plt.plot(x,x*1.1,color='0.5',marker='>')
plt.plot(x,x*0.25,color='#FF00FF',marker='.')
plt.plot(x,x*0.8,color='g',marker='h')
plt.legend(['python','心情','健康','工资'])
plt.show()
修改线条的线型后,如下图
补一个可修改线型表
字符
类型 |
字符 |
类型 | |
|
实线 |
|
虚线 |
|
虚点线 |
|
点线 |
|
点 |
|
像素点 |
|
圆点 |
|
下三角点 |
|
上三角点 |
|
左三角点 |
|
右三角点 |
|
下三叉点 |
|
上三叉点 |
|
左三叉点 |
|
右三叉点 |
|
正方点 |
|
五角点 |
|
星形点 |
|
六边形点1 |
|
六边形点2 |
|
加号点 |
|
乘号点 |
|
实心菱形点 |
|
瘦菱形点 |
|
横线点 |
7. 添加网格
网格grid()
,这里的参数可调整颜色、线宽和线型。
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
plt.plot(x,x*10,color='r',marker='o')
plt.plot(x,x*1.1,color='0.5',marker='>')
plt.plot(x,x*0.25,color='#FF00FF',marker='.')
plt.plot(x,x*0.8,color='g',marker='h')
plt.legend(['python','心情','健康','工资'])
# 添加网格
plt.grid(color='0.2',linewidth='0.5',linestyle='-.')
plt.show()
添加网格后,如下图
8. 调整坐标轴刻度
locator_params()
可以调整刻度,nbins=
设置刻度显示数量。
-
同时调整x轴和y轴: plt.locator_params(nbins=10)
-
只调整x轴: plt.locator_params(‘'x',nbins=5)
-
只调整y轴: plt.locator_params(‘'y',nbins=10)
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
plt.plot(x,x*10,color='r',marker='o')
plt.plot(x,x*1.1,color='0.5',marker='>')
plt.plot(x,x*0.25,color='#FF00FF',marker='.')
plt.plot(x,x*0.8,color='g',marker='h')
plt.legend(['python','心情','健康','工资'])
plt.grid(color='0.2',linewidth='0.5',linestyle='-.')
# x轴和y轴均显示15个
plt.locator_params(nbins=15)
plt.show()
9. 调整坐标轴范围
-
axis:[0,5,0,10],x从0到5,y从0到10 -
xlim:对应参数有xmin和xmax,分别能调整最大值最小值 -
ylim:同xlim用法
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
plt.plot(x,x*10,color='r',marker='o')
plt.plot(x,x*1.1,color='0.5',marker='>')
plt.plot(x,x*0.25,color='#FF00FF',marker='.')
plt.plot(x,x*0.8,color='g',marker='h')
plt.legend(['python','心情','健康','工资'])
plt.grid(color='0.2',linewidth='0.5',linestyle='-.')
#调整坐标轴范围
plt.xlim(0,10)
plt.ylim(0,120)
plt.locator_params(nbins=15)
plt.show()
10. 添加双坐标轴
twinx()
分隔两个绘图,用来设置双坐标轴。
x=np.arange(2,10)
plt.title('示例标题:数据猿的成长函数')
plt.xlabel('示例x轴')
plt.ylabel('示例y轴')
plt.plot(x,x*10,color='r',marker='o')
plt.plot(x,x*1.1,color='0.5',marker='>')
plt.plot(x,x*0.25,color='#FF00FF',marker='.')
plt.plot(x,x*0.8,color='g',marker='h')
plt.legend(['python','心情','健康','工资'])
# 添加新的坐标轴
plt.twinx()
# 添加新的函数
y2= x*x*x
plt.plot(x,y2,'b')
# 添加新的图例
plt.legend(['困难'],loc="upper center")
plt.grid(color='0.2',linewidth='0.5',linestyle='-.')
plt.locator_params(nbins=15)
plt.show()
总结
以上是关于数据可视化入门 | 10张图搞定matplotlib基础操作的主要内容,如果未能解决你的问题,请参考以下文章
10分钟入门Matplotlib: 数据可视化介绍&使用教程
JAVA三维可视化组件:Matplot 3D for JAVA(V3.0) 一个纯JAVA开发的科学数据可视化组件包 类似 Python 的matplotlib(含示例代码)