Matplotlib绘制点线图
1. 导入matplotlib库
在使用matplotlib绘制点线图之前,首先需要导入matplotlib库。示例代码如下:
import matplotlib.pyplot as plt
2. 绘制简单的点线图
接下来,我们可以绘制一个简单的点线图,示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, marker='o')
plt.show()
代码运行结果:
运行以上代码,可以得到一个简单的点线图,横坐标为x,纵坐标为y,点的形状为圆圈。
3. 自定义点线图的样式
我们可以通过设置不同的参数来自定义点线图的样式,比如线条颜色、线条宽度、点的形状等。示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, color='r', linestyle='--', marker='s', markersize=10)
plt.show()
代码运行结果:
运行以上代码,可以得到一条红色虚线,点的形状为正方形的点线图。
4. 添加标题和标签
我们可以通过添加标题和标签来更好地说明点线图的含义。示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, marker='o')
plt.title('Prime Numbers')
plt.xlabel('Index')
plt.ylabel('Value')
plt.show()
代码运行结果:
运行以上代码,可以得到一个带有标题和标签的点线图,标题为”Prime Numbers”,横坐标标签为”Index”,纵坐标标签为”Value”。
5. 绘制多条线
除了绘制单条线外,我们还可以绘制多条线。示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
plt.plot(x, y1, marker='o', label='Prime Numbers')
plt.plot(x, y2, marker='s', label='Square Numbers')
plt.legend()
plt.show()
代码运行结果:
运行以上代码,可以得到同时显示两条线的点线图,并在图例中标明每条线的含义。
6. 绘制散点图
除了点线图外,我们还可以绘制散点图。示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.scatter(x, y, color='r', marker='o')
plt.show()
代码运行结果:
运行以上代码,可以得到一个红色圆圈的散点图。
7. 绘制带有颜色映射的散点图
我们可以通过设置不同的颜色映射来显示不同的数据。示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
sizes = 1000 * np.random.rand(100)
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')
plt.colorbar()
plt.show()
代码运行结果:
运行以上代码,可以得到一个带有颜色映射的散点图,颜色和大小根据数据的不同而变化。
8. 绘制柱状图
除了点线图和散点图外,我们还可以绘制柱状图。示例代码如下:
import matplotlib.pyplot as plt
x = ['A', 'B', 'C', 'D', 'E']
y = [20, 35, 30, 25, 40]
plt.bar(x, y)
plt.show()
代码运行结果:
运行以上代码,可以得到一个简单的柱状图,横坐标为’A’, ‘B’, ‘C’, ‘D’, ‘E’,纵坐标为对应的数值。
9. 绘制水平柱状图
我们还可以绘制水平柱状图,示例代码如下:
import matplotlib.pyplot as plt
x = ['A', 'B', 'C', 'D', 'E']
y = [20, 35, 30, 25, 40]
plt.barh(x, y)
plt.show()
代码运行结果:
运行以上代码,可以得到一个水平的柱状图,横坐标为对应的数值,纵坐标为’A’, ‘B’, ‘C’, ‘D’, ‘E’。
10. 绘制堆叠柱状图
我们可以绘制堆叠柱状图来比较不同类别的数据。示例代码如下:
import matplotlib.pyplot as plt
x = ['A', 'B', 'C', 'D', 'E']
y1 = [20, 35, 30, 25, 40]
y2 = [15, 30, 25, 20, 35]
plt.bar(x, y1, label='Group 1')
plt.bar(x, y2, bottom=y1, label='Group 2')
plt.legend()
plt.show()
代码运行结果:
运行以上代码,可以得到一个堆叠的柱状图,分别表示两组数据在不同类别上的比较。
11. 绘制饼图
除了柱状图外,我们还可以绘制饼图来展示数据的占比。示例代码如下:
import matplotlib.pyplot as plt
sizes = [30, 20, 15, 35]
plt.pie(sizes, labels=['A', 'B', 'C', 'D'], autopct='%1.1f%%')
plt.show()
代码运行结果:
运行以上代码,可以得到一个简单的饼图,显示了各个类别数据的占比。
12. 绘制雷达图
我们还可以绘制雷达图来展示多个变量之间的关系。示例代码如下:
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D', 'E']
values = [20, 30, 25, 35, 40]
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False).tolist()
values += values[:1]
angles += angles[:1]
plt.polar(angles, values)
plt.fill(angles, values, 'b', alpha=0.1)
plt.show()
运行以上代码,可以得到一个雷达图,展示了各个变量之间的关系。
13. 绘制箱线图
箱线图可以用来展示数据的分布情况,示例代码如下:
import matplotlib.pyplot as plt
data = [np.random.normal(0, std, 100) for std in range(1, 4)]
plt.boxplot(data)
plt.show()
运行以上代码,可以得到一个箱线图,展示了数据的分布情况。
14. 绘制热力图
import matplotlib.pyplot as plt
data = np.random.rand(10, 10)
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar()
plt.show()
运行以上代码,可以得到一个热力图,颜色深浅表示数据的大小。
15. 绘制3D点线图
除了2D图形外,我们还可以绘制3D点线图。示例代码如下:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
z = [1, 4, 9, 16, 25]
ax.plot(x, y, z, marker='o')
plt.show()
代码运行结果:
运行以上代码,可以得到一个3D点线图,展示了三维数据的关系。
16. 绘制3D散点图
我们还可以绘制3D散点图来展示三维数据的分布情况。示例代码如下:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np.random.rand(100)
y = np.random.rand(100)
z = np.random.rand(100)
colors = np.random.rand(100)
sizes = 1000 * np.random.rand(100)
ax.scatter(x, y, z, c=colors, s=sizes, alpha=0.5, cmap='viridis')
plt.colorbar()
plt.show()
运行以上代码,可以得到一个3D散点图,展示了三维数据的分布情况。
17. 绘制3D曲面图
除了点线图和散点图外,我们还可以绘制3D曲面图。示例代码如下:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
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))
ax.plot_surface(x, y, z, cmap='viridis')
plt.show()
运行以上代码,可以得到一个3D曲面图,展示了一个二维函数在三维空间中的曲面。
18. 绘制子图
我们可以将多个图形放在同一个画布上,形成子图。示例代码如下:
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 2)
x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 9, 16, 25]
axs[0, 0].plot(x, y1)
axs[0, 1].scatter(x, y2)
axs[1, 0].bar(x, y1)
axs[1, 1].pie([20, 30, 25, 35], labels=['A', 'B', 'C', 'D'], autopct='%1.1f%%')
plt.show()
代码运行结果:
运行以上代码,可以得到一个包含四个子图的画布,每个子图展示了不同类型的图形。
19. 保存图形
最后,我们可以将绘制的图形保存为图片文件。示例代码如下:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, marker='o')
plt.savefig('plot.png')
运行以上代码,可以将绘制的点线图保存为名为’plot.png’的图片文件。
通过以上示例代码,我们详细介绍了如何使用matplotlib库绘制点线图,并展示了不同类型的图形和样式。