用Python将不同采样频率的两种数据绘制到同一个图中
时间: 2023-12-03 21:45:26 浏览: 238
假设你有两个数据集,分别是`data1`和`data2`,它们的采样频率不同,你可以按照以下步骤将它们绘制到同一个图中:
1. 首先,导入`matplotlib`和`numpy`库:
```python
import matplotlib.pyplot as plt
import numpy as np
```
2. 创建一个`figure`对象和一个`axes`对象:
```python
fig, ax = plt.subplots()
```
3. 对于每个数据集,创建一个时间轴,可以使用`numpy`的`arange`函数生成等间距的时间点。假设`data1`有100个数据点,采样频率为10Hz,那么时间轴可以这样生成:
```python
time1 = np.arange(0, 10, 0.1)
```
同样地,假设`data2`有50个数据点,采样频率为5Hz,那么时间轴可以这样生成:
```python
time2 = np.arange(0, 10, 0.2)
```
4. 现在,我们可以将数据和时间轴绘制到同一个图中。使用`plot`函数,对于每个数据集分别绘制它们的时间轴和数值。假设`data1`和`data2`的值已经存储在`y1`和`y2`这两个数组中,那么可以这样绘制它们:
```python
ax.plot(time1, y1, label='data1')
ax.plot(time2, y2, label='data2')
```
5. 最后,添加图例和标签,显示图形:
```python
ax.legend()
ax.set_xlabel('Time (s)')
ax.set_ylabel('Value')
plt.show()
```
完整代码如下:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
time1 = np.arange(0, 10, 0.1)
y1 = np.sin(time1)
time2 = np.arange(0, 10, 0.2)
y2 = np.cos(time2)
# 绘制图形
fig, ax = plt.subplots()
ax.plot(time1, y1, label='data1')
ax.plot(time2, y2, label='data2')
ax.legend()
ax.set_xlabel('Time (s)')
ax.set_ylabel('Value')
plt.show()
```
运行代码后,你会得到一个同时显示两个数据集的图形。
阅读全文