我在MatPlotLib中创建一个散点图,我试图使点的颜色依赖于第三个参数(独立于X和Y)。但是,设置c = third_variable会使所有点都具有相同的颜色。
我的绘图数据位于字典中,其中x和y数据的元组作为键,第三个参数(频率,范围从1到约1000)作为其值。示例项目:{[2 10]:50}
我希望点的颜色与频率相关联。作为一个起点,我想让高频点更暗,低频点更亮。
for key in pairs_hash:
plt.scatter(key[0], key[1], c=pairs_hash[key], cmap=plt.cm.coolwarm)
plt.show()
感谢您的帮助!
答案 0 :(得分:2)
我猜你的主要不良设计选择是一次一个点地绘制循环中的点。为什么不一次全部绘制它们?
xy, z = zip(*pairs_hash.items())
x, y = zip(*xy)
plt.scatter(x, y, c=z, cmap=plt.cm.coolwarm)
plt.show()