赞
踩
Matplotlib是一个用于绘制图表和可视化数据的Python库,由John D. Hunter于2003年创建。它是一个开源项目,广泛应用于科研、教育和工程等领域。Matplotlib提供了广泛的绘图功能,适用于科学计算、数据分析、机器学习等领域,并且尤其适用于中小规模的数据集和对可视化定制要求较高的场景。
Matplotlib的主要特点包括:
Matplotlib创建图表主要有两种模式:面向对象模式(Object-Oriented API)和pyplot模式(pyplot API)。
pyplot模式提供了一种MATLAB风格的接口,它提供了一系列函数,允许用户以简单、直接的方式创建图表。在这种模式下,用户不需要显式地创建Figure和Axes对象,pyplot会自动管理这些对象。这使得代码更加简洁,易于理解和编写。
以下是一个使用pyplot模式创建简单折线图的示例:
import matplotlib.pyplot as plt
# 生成数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 使用pyplot绘制折线图
plt.plot(x, y)
# 显示图表
plt.show()
运行结果:
在这种模式下,用户会首先创建一个Figure对象,这可以看作是一个画布。然后,在这个Figure对象上,用户会创建一个或多个Axes对象,这些Axes对象就是用于绘制图表的具体区域。用户可以针对每个Axes对象进行图表的绘制和定制。这种模式提供了更大的灵活性和控制力,允许用户更精细地控制图表的各个部分。
以下是一个使用面向对象模式创建简单折线图的示例:
import matplotlib.pyplot as plt
# 创建画布,
fig,ax = plt.subplots(figsize=(10,5))
# 使用Axes对象绘制折线图
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
ax.plot(x, y)
# 显示图表
plt.show(fig)
运行结果:
这两种模式各有优缺点。面向对象模式提供了更大的灵活性和控制力,适合对图表进行更精细的定制;而pyplot模式则更加简洁直观,适合快速绘制简单的图表。用户可以根据自己的需求选择合适的模式。
本次主要用pyplot模式来讲解创建图表的主要流程
figure() 是 Matplotlib 库中用于创建一个新的图形窗口的函数,它返回一个 Figure 对象,该对象可以被视为一个画布,用于绘制图表和其他图形元素。
python
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)
figure() 函数返回一个 Figure 对象,你可以使用它来进一步定制图形和添加子图(Axes)。
fig = plt.figure(figsize=(10, 8))
plot()函数是用于在 Axes 对象上绘制线图的基本函数。它接受一系列 x 和 y 坐标点,并连接这些点以形成线。
# 创建画布
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None)
plot 函数返回一个线条列表,每个线条是一个 Line2D 对象,这些对象可以在之后被进一步定制或查询。
# 添加 x,y 轴
x = [1, 3, 5, 6, 10]
y = [-5, 3, 5, 6, 5]
plt.plot(x, y)
grid()用于在图表上添加网格线。网格线可以帮助读者更容易地读取图表上的数据点,特别是在处理大量数据时。
plt.grid() 有几个可选参数,可以用来定制网格线的外观和行为。
# 添加绿色网格虚线
plt.grid(True,color= 'g',ls= '--')
plt.xlim()/ylim用于设置当前轴的 x 轴的范围。这个函数接受两个参数,分别表示 x 轴的最小值和最大值,从而限制了图表中 x 轴显示的数据范围。
matplotlib.pyplot.xlim/ylim(xmin/ymin=None, xmax/ymax=None)
# 添加x轴和y轴值范围
plt.xlim(0, 10)
plt.ylim(-5, 10)
xlabel 和 ylabel 是 Matplotlib 库中用于为图表的 x 轴和 y 轴添加标签的函数。这些标签可以帮助读者更好地理解图表所展示的数据。
xlabel 函数用于设置 x 轴的标签。
语法:
matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None)
参数解释:
xlabel:字符串,表示 x 轴的标签文本。
fontdict:字典,可选参数,用于指定标签文本的字体属性。
labelpad:浮点数,可选参数,表示标签与轴之间的距离。
ylabel 函数用于设置 y 轴的标签。
语法:
matplotlib.pyplot.ylabel(ylabel, fontdict=None, labelpad=None)
参数解释:
ylabel:字符串,表示 y 轴的标签文本。
fontdict:字典,可选参数,用于指定标签文本的字体属性。
labelpad:浮点数,可选参数,表示标签与轴之间的距离。
# 添加x轴和y轴值标签,size为字体大小
plt.xlabel('x', size=20)
plt.ylabel('y', size=20)
使用ttitle添加标题和show绘制图表
# 添加标题和绘制
plt.title('test',size=20)
plt.show()
完整流程代码实现:
import matplotlib.pyplot as plt # 1.创建画布 plt.figure(figsize=(10, 8)) # 2.添加 x,y 轴 x = [1, 3, 5, 6, 10] y = [-5, 3, 5, 6, 7] plt.plot(x, y) # 3.添加绿色网格虚线 plt.grid(True,color= 'r',ls= '--') # 添加x轴和y轴值范围 plt.xlim(0, 10) plt.ylim(-5, 10) # 添加x轴和y轴值标签 plt.xlabel('x', size=10) plt.ylabel('y', size=10) # 添加标题和绘制 plt.title('test',size=20) plt.show()
表格:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.xlabel('X Label')
plt.ylabel('Y Label')
plt.title('Title')
plt.show()
运行结果:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 8, 10]
plt.plot(x, y, 'o') # 'o' 表示使用圆圈作为点标记
plt.xlabel('X Label')
plt.ylabel('Y Label')
plt.title('Scatter Plot')
plt.show()
三个变量时也可用size大小和color来表示第三个变量的变化
import matplotlib.pyplot as plt
x = ['A', 'B', 'C', 'D']
y = [10, 15, 7, 10]
plt.bar(x, y)
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Chart')
plt.show()
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
plt.pie(sizes, labels=labels, autopct='%1.1f%%') # autopct 用于显示百分比
plt.title('Pie Chart')
plt.axis('equal') # 保证饼图是圆的,而不是椭圆形的
plt.show()
这只是 Matplotlib 的一部分功能,实际上 Matplotlib 提供了更加复杂和高级的图表类型,如等高线图、热力图、三维图表等。具体使用时,可以根据需要查阅 Matplotlib 的官方文档或相关教程来深入了解更多细节和用法。
Pandas的可视化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。