matplotlib实际上是一个面向对象的绘图库,它所绘制的图表元素均对应一个对象。matplotlib官方提供了3种API分别为:
(1) 使用pyplot模块开发的接口:pyplot API
(2)面向对象的接口:object-oriented API
(3)使用pylab模块开发的接口:pylab API
而使用matplotlib可绘制的简单图表有plot()折线图、bar()柱形图、barh()条形图、stackplot()堆积面积图、hist()直方图、pie()饼图、scatter()散点图、boxplot()箱形图、polar()雷达图、errorbar()误差棒图。
该函数常用参数的含义如下。
x,y:表示数据点的位置。
xerr,yerr:表示数据的误差范围。
fmt:表示数据点的标记样式和数据点之间连接线的样式。·ecolor:表示误差棒的线条颜色。
elinewidth :表示误差棒的线条宽度。"capsize :表示误差棒边界横杆的大小
capthick:表示误差棒边界横杆的厚度。
一、使用面向对象API绘制直方图
1、导入所需的库:导入numpy和matplotlib.pyplot
import numpy as np
import matplotlib.pyplot as plt
2、创建数据
data = np.random.randn(1000)
3、创建对象
fig, ax = plt.subplots()
4、绘制直方图
ax.hist(data, bins=30, color='blue', alpha=0.5)
5、设置图表元素
ax.set_title('Histogram')
ax.set_xlabel('Value')
ax.set_ylabel('Frequency')
6、显示图表
plt.show()
示例:包含2000个数据的正态分布数组
二、使用面向对象API绘制饼图和圆环图
1、导入必要的库
import matplotlib.pyplot as plt
import numpy as np
2、创建画布和绘图区域
fig, ax = plt.subplots()
3、 准备饼图数据
data = [30, 20, 50]
4、三个部分的比例 绘制饼图
ax.pie(data)
5、添加标题和标签
ax.set_title("Pie Chart") ax.legend(["Part 1", "Part 2", "Part 3"])
5、显示图表
plt.show()
示例:支付宝月账单报告(图一为饼图,图二为圆环图)
三、使用面向对象API绘制散点图
1、导入必要的库
import matplotlib.pyplot as plt
import numpy as np
2、创建对象
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
3、准备数据
x_speed = np.arange(10, 210, 10)
y_distance = np.array([0.5, 2.0, 4.4, 7.9, 12.3,
17.7, 24.1, 31.5, 39.9, 49.2,
59.5, 70.8, 83.1, 96.4, 110.7,
126.0, 142.2, 159.4, 177.6, 196.8])
area = np.linspace(20,300,20)
4、绘制散点图
plt.scatter(x_speed,y_distance,s=area,c='orange',alpha=0.9)
5、显示图表
plt.show()
示例:按等比数列向上增长的散点图
四、使用面向对象API 绘制误差棒图
1、首先,导入matplotlib.pyplot和numpy库:
import matplotlib.pyplot as plt import numpy as np
2、创建对象:
fig, ax = plt.subplots()
3、准备数据:
x = np.arange(1, 6) y = np.array([1, 3, 2, 4, 5]) y_error = np.array([0.3, 0.5, 0.2, 0.4, 0.6])
4、使用errorbar方法绘制误差棒图:
ax.errorbar(x, y, yerr=y_error, capsize=5, marker='o', linestyle='dashed', color='red')
5、设置图表标题和轴标签:
ax.set_title('Error Bar Plot') ax.set_xlabel('X') ax.set_ylabel('Y')
6、显示图表:
plt.show()