我有一个df,看起来像这样:
| | 纬度|经度|代码_邮政|
| - ------|- ------|- ------|- ------|
| 无|四○二四四三五零|-8.443650|小行星3025 - 151|
| 第二章|四○六二六一三零|-8.645250|小行星3810 - 419|
| 1个|四○六二六一三零|-8.645250|小行星3810 - 498|
| 三个|四○六二六一三零|-8.645250|小行星3810 - 419|
我想用lat和lon坐标绘制一个图形(线图),其中标记面颜色根据cod_postal标签而不同。
我想到了这个:
color_labels=df['cod_postal'].unique()
#list of rgb
rgb_values=sns.color_palette('Set2', 8)
#Assign label to a rgb code
color_map=dict(zip(color_labels, rgb_values))
plt.plot(df['latitude'], df['longitude'], marker='o', mfc=df['cod_postal'].map(color_map))
但我得到一个错误消息:
ValueError: RGBA sequence should have length 3 or 4
我该怎么解决这个问题呢?我知道如果我是在绘制散点图,它会起作用,但对于我的情况来说,作为线图是必不可少的。
先谢了!
编辑:
为预期输出添加参考图片。
1条答案
按热度按时间piwo6bdm1#
plt.plot()
要求mfc
参数为单色。使用
marker="o"
,看起来像是要创建一个散点图。如果是这种情况,你应该使用plt.scatter
。现在你可以将多种颜色传递给c=
参数(每个散点对应一种颜色)。我建议你分两步来做。首先按照上面的解释创建散点图。然后为连接的黑线创建线图。
我调整了 Dataframe ,使图更有趣一些