数据可视化入门 | 10张图搞定matplotlib基础操作

Posted 文科数据员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化入门 | 10张图搞定matplotlib基础操作相关的知识,希望对你有一定的参考价值。

从今天开始,我和Seven会推出数据可视化入门内容。将涉及matplotlib库、seaborn库和pyecharts库和Tableau的基本操作。数据猿立个flag,一定要常更新,把之前的python入门全都陆续补齐。希望各位朋友们多多监督哈,欢迎催更!

本文目录如下

Matplotlib是一个功能强大的综合库,用于在Python中创建静态、动画和交互式可视化效果。大量的第三方软件包 扩展并建立在Matplotlib功能的基础上,包括几个更高级别的绘图界面(如seabornHoloViewsggplot)。

对我们文科生来说,学好Matplotlib帮助我们更快地利用Pandas将挖掘到的数据进行数据探索,并快速出图。

今天是matplotlib的基本操作的第一篇,使用matplotlib最常用的API接口——plt.plot()来实现基础绘图。后面,我么将会通过matplotlibpandas中的入门讲解,介绍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

数据,赋值最简单的二维数据给xy

x=np.arange(0,10)

添加标题

plt.title('数据猿的示例标题')

添加图形样式,并将数据放入图形中

plt.plot(x,x*x)

展示图形

plt.show()

基础图形如下

数据可视化入门(一) | 10张图搞定matplotlib基础操作

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()

添加文字后如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

添加注释

函数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()

添加注释后,如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

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()

添加坐标轴后,如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

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()

添加多个图内线条和图例后,如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

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()

修改线条的颜色后,如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

补一个颜色表,结合英语单词就很快记住了。

颜色 字符

‘b’

蓝色,blue

‘g’

绿色,green

‘r’

红色,red

‘c’

青色,cyan

‘m’

品红,magenta

‘y’

黄色,yellow

‘k’

黑色,black

‘w’

白色,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()

修改线条的线型后,如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

补一个可修改线型表

字符

类型

字符

类型

'-'

实线

'--'

虚线

'-.'

虚点线

':'

点线

'.'

','

像素点

'o'

圆点

'v'

下三角点

'^'

上三角点

'<'

左三角点

'>'

右三角点

'1'

下三叉点

'2'

上三叉点

'3'

左三叉点

'4'

右三叉点

's'

正方点

'p'

五角点

'*'

星形点

'h'

六边形点1

'H'

六边形点2

'+'

加号点

'x'

乘号点

'D'

实心菱形点

'd'

瘦菱形点

'_'

横线点



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()

添加网格后,如下图

数据可视化入门(一) | 10张图搞定matplotlib基础操作

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()
调整坐标轴刻度后,如下图
数据可视化入门(一) | 10张图搞定matplotlib基础操作

9. 调整坐标轴范围

调整坐标轴范围,有三种方法:axis/xlim/ylim
  • 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张图搞定matplotlib基础操作

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()
添加双坐标轴后,如下图

总结

可能大家会吐槽,数据猿制作的这些图都好丑,那么有美化的方式吗?当然有,我们留在后面几期讲解,需要的朋友多多关(cui)注(geng)啦~
当然,学程序技术点的最好方法就是阅读官方文档了,有追求的朋友建议移步官网学习,网址如下参考资料。

参考资料:
matplotlib官网  https://matplotlib.org/
博客园 雪山飞猪   https://www.cnblogs.com/chenqionghe/p/12358002.html
文字编辑: 数据猿Riggle
首发平台: 公众号:文科数据员(HSS_data)


以上是关于数据可视化入门 | 10张图搞定matplotlib基础操作的主要内容,如果未能解决你的问题,请参考以下文章

10分钟入门Matplotlib: 数据可视化介绍&使用教程

JAVA三维可视化组件:Matplot 3D for JAVA(V3.0) 一个纯JAVA开发的科学数据可视化组件包 类似 Python 的matplotlib(含示例代码)

在matplot Python中格式化日期时间

Python——Matplotlib库入门

面试官爱问的10大经典排序算法,20+张图来搞定

CIFAR10数据可视化