python - 根据标记颜色过滤叶图
问题描述
我正在映射具有名为“marker_color”的行的标记,这些标记基于其他列值指示“红色”、“黄色”和“绿色”。如何在地图的角落添加过滤器选项,使我只能根据颜色显示一个、两个、全部或不显示任何标记?基本上,三个可点击的单选选项来呈现三个彩色标记。
目前,我正在从我的 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
推荐阅读
- python - boto3在s3文件上传期间处理ClientError
- pass-by-reference - 关于 What's In the Box 代码游戏作业的问题
- javascript - 这叫什么(JS)
- java - 如何格式化常规日期时间+0000
- sql-server - 将 .SHP 文件上传到 SQL Server?
- c# - 如何取消上传?
- java - 读取属性 Weblogic Server 时出现 NullpointerException
- r - dbFetch,写入另一个表,然后再次 dbFetch?
- javascript - 如何让“dialog.showMessageBoxSync”中的按钮在 Electron.js 中工作
- c# - 用单行语法实例化一个对象并调用返回 C# 或 C++ 中的值的方法?