Python Matplotlib 同一坐标系下绘制多个图像

Matplotlib 库中,可以在同一个坐标系上绘制多个图像。对于比较不同数据集或展示数据的多种视角非常有用。可以让观察者轻松比较两组数据,显示不同变量之间的关系,可以更方便地展示不同过程或事件的变化趋势。

1、绘制图像

使用plt.plot() 在坐标轴上绘制图像,它提供了多种参数来自定义图像的外观。常用参数如下,

参数

描述

color

设置线条颜色,可以是颜色名称或十六进制代码。

linestyle

设置线条样式,例如 '-', '--', '-.', ':'。

linewidth

设置线条宽度,为浮点数值。

marker

设置数据点标记的样式,如 'o', 's', '^', '+' 等。

markersize

设置标记的大小。

label

设置图例标签,用于 plt.legend()。

使用示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)

# 创建画布
plt.figure()

# 绘制一条线(正弦曲线),自定义颜色、线条样式、线条宽度和标记
plt.plot(x, y1, color='blue', linestyle='-', linewidth=2, marker='o', markersize=8, label='sin(x)')

# 添加图例
plt.legend()

# 添加标题和轴标签
plt.title('cjavapy Line Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图表
plt.show()

2、添加图例

可以在同一个坐标系下绘制多个图像,并通过使用plt.legend()添加图例来区分它们。图例(Legend)是图表中的一个重要元素,它提供了每个图像的标识,使得图表的信息更加完整且易于理解。常用参数如下,

参数

描述

loc

设置图例的位置,

如 'upper right', 'upper left', 

'lower left', 'lower right', 'right', 'center left' 等。

fontsize

设置图例中字体的大小,

如 'small', 'medium', 'large'。

title

给图例添加标题。

frameon

布尔值,

指定是否应该在图例周围绘制边框。

shadow

布尔值,

指定图例是否应该有阴影。

ncol

设置图例列的数量,

用于多个图例项的情况。

使用示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)


# 创建画布
plt.figure()

# 绘制多个图像
plt.plot(x, y1, label='sin(x)', color='blue', linestyle='-', linewidth=2)

# 添加自定义图例
plt.legend(loc='upper right', fontsize='small', title='Trigonometric Functions', frameon=True, shadow=True, ncol=1)

# 添加标题和轴标签
plt.title('cjavapy')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图表
plt.show()

3、绘制多个图像

可以在同一个坐标系下绘制多个图像,对于比较不同数据集或展示数据的不同方面非常有用。通过这种方式,图表更加直观且信息丰富,便于比较和理解不同的数据曲线。

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)

# 创建画布
plt.figure()

# 绘制多个图像
plt.plot(x, y1, label='sin(x)', color='blue', linestyle='-', linewidth=2)
plt.plot(x, y2, label='cos(x)', color='red', linestyle='--', linewidth=2)
plt.plot(x, y3, label='tan(x)', color='green', linestyle='--', linewidth=2)

# 添加自定义图例
plt.legend(loc='upper right', fontsize='small', title='Trigonometric Functions', frameon=True, shadow=True, ncol=1)

# 添加标题和轴标签
plt.title('cjavapy')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图表
plt.show()

推荐阅读
cjavapy编程之路首页