Heatmap on Folium with Pandas( pandas 叶上的热图)
                            本文介绍了 pandas 叶上的热图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我有以下语法,无法实现我正在尝试的操作:
df_bedarf = pd.read_csv('C:/Users/xxxxxx/Desktop/xxxxx/xxxxxx.csv', sep = ";")
df_bedarf.head()
df_locations = df_bedarf[["Latitude", "Longitude"]]
location_list = df_locations.values.tolist()
location_list_size= len(location_list)
## Creating a Points Map
map_points = folium.Map(location = [47.57087, 13.43828], zoom_start = 7)
for point in range(0, location_list_size):
    folium.Circle(
        location = location_list[point],
        popup=df_bedarf["Suburb"][point] + ": " + df_bedarf["Sort"][point],
        radius = 10000, blur = 10000,
        min_opacity =0.3,
        gradient = {.3: "yellow", .6: "orange", 1: "red"},
        max_zoom =1,
    ).add_to(map_points)
    
map_points
我希望渐变的颜色变得更红,t/a越高。
CSV头部如下:
Unnamed: 0  Suburb  Sort    t/a     Latitude    Longitude
0   0   Wien    CC  2272    48.201900   16.370000
1   1   Graz    LD  426     47.079675   15.420325
2   2   Feldbach    LD  248     46.952187   15.888309
3   3   Zerlach     RE  2041    46.944865   15.650902
4   4   Gnas    SM  1488    46.874198   15.826138
相反,我的地图上只有蓝色圆圈。 我必须更改什么才能获得根据数量(t/a)改变颜色的圆形
提前感谢并致以问候
它应该看起来像这样:
推荐答案
更改每个标记的颜色的最简单方法是对数值列使用bin分类功能,并为该数值设置所需的颜色名称。如果要增加颜色数,请增加存储箱和标签。
import pandas as pd
import numpy as np
import io
data = '''
Suburb Sort t/a Latitude Longitude
0 Wien CC 2272 48.201900 16.370000
1 Graz LD 426 47.079675 15.420325
2 Feldbach LD 248 46.952187 15.888309
3 Zerlach RE 2041 46.944865 15.650902
4 Gnas SM 1488 46.874198 15.826138
'''
df_locations = pd.read_csv(io.StringIO(data), delim_whitespace=True)
colors = pd.cut(df_locations['t/a'], bins=4, labels=['hotpink', 'tomato', 'red', 'crimson'])
colors = colors.to_list()
df_locations
    Suburb  Sort    t/a     Latitude    Longitude   marker_color
0   Wien    CC  2272    48.201900   16.370000   crimson
1   Graz    LD  426     47.079675   15.420325   hotpink
2   Feldbach    LD  248     46.952187   15.888309   hotpink
3   Zerlach     RE  2041    46.944865   15.650902   crimson
4   Gnas    SM  1488    46.874198   15.826138   red
map_points = folium.Map(location = [47.57087, 13.43828], zoom_start = 7)
for idx, row in df_locations.iterrows():
    folium.Circle(
        location = [row['Latitude'], row['Longitude']],
        popup=row["Suburb"] + ": " + row["Sort"],
        radius = 10000,
        # blur = 10000,
        color=colors[idx],
        fill_color=colors[idx],
        # min_opacity=0.3,
        # max_zoom=1,
    ).add_to(map_points)
    
map_points
                        这篇关于 pandas 叶上的热图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:pandas 叶上的热图
				
        
 
            
        基础教程推荐
             猜你喜欢
        
	     - 修改列表中的数据帧不起作用 2022-01-01
 - 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
 - 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
 - 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
 - 包装空间模型 2022-01-01
 - PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
 - 在Python中从Azure BLOB存储中读取文件 2022-01-01
 - Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
 - 求两个直方图的卷积 2022-01-01
 - PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
				
				
				
				