利用生成的字典画时间序列散点图,以字典中的时间键值对为x轴,字典中的其他键值对为数据画不同点类型的散点图,要求图例放右上方,x轴显示日期中的时和分,x轴标题为Time,y轴的范围根据数据的值选取合适的值,y轴标题为residuals,刻度朝内
时间: 2024-04-16 19:26:17 浏览: 19
你可以使用 `matplotlib` 库来画时间序列散点图。下面是一个示例代码,它将字典中的时间键值对作为 x 轴,字典中的其他键值对作为数据,绘制不同点类型的散点图,并根据数据的值自动设置 y 轴的范围和刻度方向:
```python
import matplotlib.pyplot as plt
from datetime import datetime
def plot_scatter(data_dict):
fig, ax = plt.subplots()
markers = ['o', 's', '^', 'd'] # 可根据数据类型个数自行扩展
colors = ['red', 'blue', 'green', 'orange'] # 可根据数据类型个数自行扩展
for i, (key, values) in enumerate(data_dict.items()):
x = [datetime.strptime(key, '%Y-%m-%d %H:%M:%S').strftime('%H:%M') for key in values['time']]
y = values['residuals']
ax.scatter(x, y, marker=markers[i], color=colors[i], label=key)
ax.set_xlabel('Time')
ax.set_ylabel('residuals')
ax.legend(loc='upper right')
ax.tick_params(axis='x', direction='in')
plt.show()
# 示例数据字典
data_dict = {
'data1': {
'time': ['2022-01-01 10:15:00', '2022-01-01 11:30:00', '2022-01-01 12:45:00'],
'residuals': [0.5, 0.8, 1.2]
},
'data2': {
'time': ['2022-01-01 10:20:00', '2022-01-01 11:40:00', '2022-01-01 12:50:00'],
'residuals': [-0.3, -0.6, -0.9]
}
}
plot_scatter(data_dict)
```
在上述代码中,我们首先导入 `matplotlib.pyplot` 模块,并从 `datetime` 模块导入 `datetime` 类。然后定义了一个 `plot_scatter` 函数来绘制散点图。根据数据字典的结构,遍历每个键值对,将时间字符串转换为 `datetime` 对象,并提取出时和分的部分作为 x 轴的数据。然后将其他键对应的值作为 y 轴的数据。利用 `scatter` 函数绘制散点图,使用不同的点类型和颜色来区分数据类型,并添加图例。设置 x 轴和 y 轴的标签,刻度方向等。
你只需要将示例数据字典 `data_dict` 替换为你的实际数据字典,然后运行代码即可。会弹出一个窗口显示散点图。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)