Matplotlib
是一个广泛使用的 Python 绘图库,它提供了丰富的工具来创建高质量的图表和可视化图形。无论是简单的折线图、柱状图还是复杂的热力图、3D 图表,Matplotlib
都能提供强大的支持。
首先,你需要安装 matplotlib
包。可以通过 pip 来安装:
bashpip install matplotlib
以下是一些具体的示例,展示了如何使用 Matplotlib
创建各种类型的图表。
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建图表
plt.plot(x, y)
# 添加标题和标签
plt.title('Sine Wave')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 显示图表
plt.show()
pythonimport matplotlib.pyplot as plt
# 创建数据
labels = ['A', 'B', 'C', 'D']
values = [4, 7, 1, 8]
# 创建柱状图
plt.bar(labels, values)
# 添加标题和标签
plt.title('Bar Chart Example')
plt.xlabel('Categories')
plt.ylabel('Values')
# 显示图表
plt.show()
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)
# 创建散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)
# 添加标题和标签
plt.title('Scatter Plot Example')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 显示图表
plt.show()
pythonimport matplotlib.pyplot as plt
# 创建数据
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # 突出显示第二部分
# 创建饼图
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90)
# 保证饼图为圆形
plt.axis('equal')
# 添加标题
plt.title('Pie Chart Example')
# 显示图表
plt.show()
你可以在一个窗口中创建多个子图:
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建包含两个子图的图表
fig, (ax1, ax2) = plt.subplots(2, 1)
# 第一个子图:正弦波
ax1.plot(x, y1, color='red')
ax1.set_title('Sine Wave')
ax1.set_xlabel('X axis')
ax1.set_ylabel('Y axis')
# 第二个子图:余弦波
ax2.plot(x, y2, color='blue')
ax2.set_title('Cosine Wave')
ax2.set_xlabel('X axis')
ax2.set_ylabel('Y axis')
# 调整布局以避免重叠
plt.tight_layout()
# 显示图表
plt.show()
你可以在同一个图表上绘制多条折线:
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建图表并绘制两条折线
plt.plot(x, y1, label='Sine Wave', color='blue')
plt.plot(x, y2, label='Cosine Wave', color='red')
# 添加图例
plt.legend()
# 添加标题和标签
plt.title('Multiple Line Plots')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 显示图表
plt.show()
直方图用于展示数据的分布情况:
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
data = np.random.randn(1000)
# 创建直方图
plt.hist(data, bins=30, alpha=0.7, color='green')
# 添加标题和标签
plt.title('Histogram Example')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图表
plt.show()
热力图是一种常用的二维数据可视化方法:
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
data = np.random.rand(10, 10)
# 创建热力图
plt.imshow(data, cmap='hot', interpolation='nearest')
# 添加颜色条
plt.colorbar()
# 添加标题
plt.title('Heatmap Example')
# 显示图表
plt.show()
Matplotlib
还支持创建三维图表:
pythonimport matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# 创建数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# 创建图表
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 绘制表面图
ax.plot_surface(x, y, z, cmap='viridis')
# 添加标题和标签
ax.set_title('3D Surface Plot')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
# 显示图表
plt.show()
你可以通过多种方式来自定义图表的样式:
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 设置绘图风格
plt.style.use('ggplot')
# 创建图表
plt.plot(x, y, linestyle='--', marker='o', color='b')
# 添加标题和标签
plt.title('Custom Style Example')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 显示图表
plt.show()
你可以将生成的图表保存为图片文件:
pythonimport matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建图表
plt.plot(x, y)
# 添加标题和标签
plt.title('Sine Wave')
plt.xlabel('X axis')
plt.ylabel('Y axis')
# 保存图表为 PNG 文件
plt.savefig('sine_wave.png')
# 显示图表
plt.show()