我有个DataFrame,里面有一列时间和数据,我还有个ndarray,里面有一列数据,我想把时间作为横轴,画出两个数据,怎么写python
时间: 2024-03-02 17:49:01 浏览: 93
你可以使用`matplotlib`库来实现绘制。首先,你需要将DataFrame中的时间列和数据列提取出来,并转换为numpy数组。然后,你需要将ndarray和DataFrame中的数组合并,以时间为关键字进行合并。最后,使用`matplotlib.pyplot`库绘制两个数据的图像。
以下是一个示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 构造DataFrame和ndarray
df = pd.DataFrame({'time': pd.date_range('2021-01-01', periods=10, freq='D'),
'data1': np.random.randn(10)})
arr = np.random.randn(10)
# 提取时间列和数据列,并转换为numpy数组
time = df['time'].values
data1 = df['data1'].values
# 合并数组
data2 = arr.reshape(-1, 1)
merged_data = np.concatenate([time.reshape(-1, 1), data1.reshape(-1, 1), data2], axis=1)
# 绘制图像
plt.plot(merged_data[:, 0], merged_data[:, 1], label='data1')
plt.plot(merged_data[:, 0], merged_data[:, 2], label='data2')
plt.legend()
plt.show()
```
在这个示例中,我们首先构造了一个包含时间列和数据列的DataFrame,以及一个包含一列数据的ndarray。然后,我们提取了时间列和数据列,并将它们转换为numpy数组。接下来,我们将DataFrame和ndarray的数据合并,并使用`matplotlib`绘制了两个数据的图像。
阅读全文