根据标记颜色过滤 Folium Map

Filter Folium Map based on marker color

我正在映射具有名为“marker_color”的行的标记,根据其他列值指示“红色”、“黄色”和“绿色”。如何向地图的一角添加过滤器选项,以便根据颜色仅显示一个、两个、全部或 none 个标记?基本上,三个可点击的单选选项来呈现三个彩色标记。

目前,我正在从我的 sales_colored 数据框中映射所有标记:

basemap2 = generateBaseMap()

for index, row in sales_colored.iterrows():
    folium.Circle([row['Latitude'], row['Longitude']],
                   radius=200, color=row['marker_color'], fill_color=row['marker_color']).add_to(basemap2)

basemap2

如果要为每种颜色添加复选框,可以使用 folium.FeatureGroup()。您首先需要收集 sales_colored["marker_color"] 列中的所有唯一值,然后为每种颜色创建一个 FeatureGroup(我使用名为 features 的字典来存储颜色)。您可以创建这样的代码:

features = {}
for row in pd.unique(sales_colored["marker_color"]):
    features[row] = folium.FeatureGroup(name=row)

for index, row in sales_colored.iterrows():
    circ = folium.Circle([row['Latitude'], row['Longitude']],
                   radius=200, color=row['marker_color'], fill_color=row['marker_color'])
    circ.add_to(features[row['marker_color']])

for row in pd.unique(sales_colored["marker_color"]):
    features[row].add_to(basemap2)

folium.LayerControl().add_to(basemap2)
basemap2