我想制作一个散点图,用不同的标记表示不同类型的点,用不同的大小表示不同的重量,用颜色表示每个点在10分钟内的年龄。然而,到目前为止我只能按照大小来制作图表。
非常感谢任何帮助。
x = {'speed': [10, 15, 20, 18, 19], 'meters' : [122, 150, 190, 230, 300], 'type': ['phone', 'phone', 'gps', 'gps', 'car'], 'weight': [0.2, 0.3, 0.1, 0.85, 0.0], 'old': [1, 2, 4, 5, 8]}
m = pd.DataFrame(x)
plt.scatter(m.meters, m.speed, s = 30* m.weight)
mkr_dict = {'gps': 'x', 'phone': '+', 'car': 'o'}
meters speed type weight old
0 122 10 phone 0.20 1
1 150 15 phone 0.30 2
2 190 20 gps 0.10 4
3 230 18 gps 0.85 5
4 300 19 car 0.00 8
问题更新:
我尝试根据旧的颜色比例尺添加色条。当我针对整个数据集绘图时,它能够工作,但在尝试为每个子集添加标记后失败了。有什么想法吗?
plt.scatter(m.meters, m.speed, s = 30* m.weight, c=m.old)
cbar = plt.colorbar(ticks = [0, 5, 10])
cbar.ax.set_yticklabels(['New','5mins', '10mins'])
类型错误:必须先为可映射对象设置数组