以时间为横轴,传感器的编号为纵轴,以7种颜色分别代表监测数据类型,此类图为监测数据分布情况统计图。应该怎会画这种类型的图

以时间为横轴,传感器的编号为纵轴,以7种颜色分别代表监测数据类型,此类图为监测数据分布情况统计图。应该怎会画这种类型的图

关注这是一个例子,数据量太少效果还不明显,对于你的问题关键点在于 定义每种监测数据类型所对应的颜色,代码中用
colors = {
'温度': 'red',
'湿度': 'blue',
'光照': 'green',
'CO2浓度': 'purple',
'PM2.5浓度': 'orange',
'噪声': 'brown',
'振动': 'gray',
}
改成你对应的,
import pandas as pd
import matplotlib.pyplot as plt
# 模拟监测数据
data = {
'时间': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05'],
'传感器编号': [1, 2, 3, 4, 5],
'监测数据类型': ['温度', '湿度', '光照', 'CO2浓度', 'PM2.5浓度'],
'监测数据值': [20, 50, 1000, 500, 10]
}
df = pd.DataFrame(data)
# 定义每种监测数据类型所对应的颜色
colors = {
'温度': 'red',
'湿度': 'blue',
'光照': 'green',
'CO2浓度': 'purple',
'PM2.5浓度': 'orange',
'噪声': 'brown',
'振动': 'gray',
}
# 创建图表
fig, ax = plt.subplots(figsize=(10, 6))
ax.set_title('监测数据分布情况统计图')
ax.set_xlabel('时间')
ax.set_ylabel('传感器编号')
# 绘制数据点
for i, row in df.iterrows():
time = row['时间']
sensor = row['传感器编号']
data_type = row['监测数据类型']
value = row['监测数据值']
color = colors[data_type]
ax.scatter(time, sensor, c=color, s=value*10)
# 显示图表
plt.show()