-
Matplotlib(功能强大,代码相对复杂)
-
Matplotlib是Python编程语言的开源绘图库。它是Python可视化软件包中最突出的,使用最广泛的绘图工具。
-
Matplotlib在执行各种任务方面非常高效。可以将可视化文件导出为所有常见格式(PDF,SVG,JPG,PNG,BMP和GIF)。
-
Matplotlib可以创建流行的可视化类型-折线图,散点图,直方图,条形图,误差图,饼图,箱形图以及更多其他类型的图,还支持3D绘图。
-
许多Python库都是基于Matplotlib构建的,Pandas和Seaborn是在Matplotlib上构建的
-
Matplotlib项目由John Hunter于2002年启动。Matplotlib最初是在神经生物学的博士后研究期间开始可视化癫痫患者的脑电图(ECoG)数据。
-
-
Pandas (使用简单,功能稍弱)
-
Pandas的绘图功能基于Matplotlib,是对Matplotlib的二次封装
-
Matplotlib绘图时,代码相对复杂,使用Pandas绘制基本图表相对比较简单,更加方便
-
Pandas中常用的数据结构 series 和 dataframe 都有plot()方法,用于绘图
-
-
Seaborn (推荐使用)
-
Seaborn是基于Matplotlib的图形可视化python开源库
-
Seaborn是在Matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易
-
Seaborn的API设计偏向探索和理解数据
-
Matplotlib绘图
导入相关的库
import pandas as pd
import matplotlib.pyplot as plt
-
Matplotlib提供了两种方法来作图:状态接口和面向对象
-
状态接口:
-
# 面向过程的版本
x = [-3, 5, 7] #准备数据的x轴坐标
y = [10, 2, 5] #准备数据的y轴坐标
plt.figure(figsize=(15,3)) #figure 创建画布 figsize指定画布大小
plt.plot(x, y) #plot 绘图
plt.xlim(-5, 10) #xlim 设置x轴坐标的范围
plt.ylim(-3, 15) #ylim 设置y轴坐标的范围
plt.xlabel('X Axis',size=20) # 设置x轴标签 size字体大小
plt.ylabel('Y axis') # 设置y轴标签
plt.title('Line Plot',size=30) # 设置标题内容, size 字体大小
plt.show() #显示图片
- 面向对象
# 面向对象 版本
fig, ax = plt.subplots(figsize=(15,3)) #创建坐标轴对象
ax.plot(x, y) #调用坐标轴的绘图方法
ax.set_xlim(-5, 10) # 调用坐标轴的设置x轴上下限的方法
ax.set_ylim(-3, 15)
ax.set_xlabel('X axis') # 调用坐标轴的设置x轴标签的方法
ax.set_ylabel('Y axis',size = 20) # 调用坐标轴的设置y轴标签的方法
ax.set_title('Line Plot',size = 30) # 调用坐标轴的设置标题的方法
plt.show()
样式
作为线性图的替代,可以通过向plot()函数添加格式字符串来显示:
字符 | 描述 |
---|---|
'-' | 实线样式 |
'--' | 短横线样式 |
'-.' | 点划线样式 |
':' | 虚线样式 |
'.' | 点标记 |
',' | 像素标记 |
'o' | 圆标记 |
'v' | 倒三角标记 |
'^' | 正三角标记 |
'<' | 左三角标记 |
'>' | 右三角标记 |
'1' | 下箭头标记 |
'2' | 上箭头标记 |
'3' | 左箭头标记 |
'4' | 右箭头标记 |
's' | 正方形标记 |
'p' | 五边形标记 |
'*' | 星形标记 |
'h' | 六边形标记 1 |
'H' | 六边形标记 2 |
'+' | 加号标记 |
'x' | X 标记 |
'D' | 菱形标记 |
'd' | 窄菱形标记 |
'|' | 竖直线标记 |
'_' | 水平线标记 |
颜色
字符 | 颜色 |
---|---|
'b' | 蓝色 |
'g' | 绿色 |
'r' | 红色 |
'c' | 青色 |
'm' | 品红色 |
'y' | 黄色 |
'k' | 黑色 |
'w' | 白色 |
1)绘制一个简单的折线图,并使用星号标记每个数据点
import matplotlib.pyplot as plt
import numpy as np
ypoints = np.array([1,3,4,5,8,9,6,1,3,4,5,2,4])
plt.plot(ypoints, marker = '*')
plt.show()
2)绘制正弦与余弦函数的图形
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,4*np.pi,0.1) # start,stop,step
# print(x)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y,x,z)
plt.show()
3)绘制包含两个数据点的散点图
import matplotlib.pyplot as plt
import numpy as np
xpoints = np.array([1, 8])
ypoints = np.array([3, 10])
plt.plot(xpoints, ypoints, 'o')
plt.show()