与 folium 中数据框列关联的颜色
Colors assosiated with dataframe column in folium
我有一个如下所示的数据框:
Lat | Long | Label
x1 | y1 | id1
x2 | y2 | id2
x3 | y3 | id3
我想在 folium 地图中绘制 Lat
和 Long
,其中标记根据 Label
的值着色。问题是 Label
是 string
。如果是 int
,我可以执行以下操作
m = folium.Map(location=[21.37000, -158.08000], zoom_start=1000)
color_pallete = sns.color_palette()
color_pallete = sns.color_palette("Set2", 8000)
color_pallete = color_pallete.as_hex()
for index, row in test.iterrows():
c = color_pallete[int(row['label'])]
folium.CircleMarker([row['Lat'], row['Long']], fill_color=c, radius=2, fill=True, color=c).add_to(m)
当标签是字符串时,谁能帮我解决这个问题? IE。我可以根据 Label
的值创建另一列整数吗?如果可以,该怎么做?
编辑:只是在 CircleMarker
的参数中添加 color=row['label']
没有帮助,因为那样的话所有东西都是黑色的,不太容易区分。
Edit2:更改标签以表示 uuid
对于遇到同样问题的人,我使用以下方法创建随机颜色的六角形,
color = "%06x" % random.randint(0, 0xFFFFFF)
按照提议 here 然后创建一个字典,其中标签作为键,十六进制作为键,传递给 folium。
我有一个如下所示的数据框:
Lat | Long | Label
x1 | y1 | id1
x2 | y2 | id2
x3 | y3 | id3
我想在 folium 地图中绘制 Lat
和 Long
,其中标记根据 Label
的值着色。问题是 Label
是 string
。如果是 int
,我可以执行以下操作
m = folium.Map(location=[21.37000, -158.08000], zoom_start=1000)
color_pallete = sns.color_palette()
color_pallete = sns.color_palette("Set2", 8000)
color_pallete = color_pallete.as_hex()
for index, row in test.iterrows():
c = color_pallete[int(row['label'])]
folium.CircleMarker([row['Lat'], row['Long']], fill_color=c, radius=2, fill=True, color=c).add_to(m)
当标签是字符串时,谁能帮我解决这个问题? IE。我可以根据 Label
的值创建另一列整数吗?如果可以,该怎么做?
编辑:只是在 CircleMarker
的参数中添加 color=row['label']
没有帮助,因为那样的话所有东西都是黑色的,不太容易区分。
Edit2:更改标签以表示 uuid
对于遇到同样问题的人,我使用以下方法创建随机颜色的六角形,
color = "%06x" % random.randint(0, 0xFFFFFF)
按照提议 here 然后创建一个字典,其中标签作为键,十六进制作为键,传递给 folium。