热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设置叶片等值区域缺失值的颜色

如何解决《设置叶片等值区域缺失值的颜色》经验,为你挑选了1个好方法。

我有一个包含一些国家和变量的数据框,我想folium用整个世界的geojson文件生成一个等值区域图.我folium在将色标上的最大值分配给我的数据帧中不存在的国家时遇到问题.以下最低限度:

import random
import pandas as pd
import folium
import json

map_data = pd.DataFrame({
    'A3':['POL', 'CZE', 'SVK', 'HUN', 'AUT'],
    'value':random.sample(range(10), 5)
})

m = folium.Map(
    location = [50, 15], 
    zoom_start = 4
)

m.choropleth(
    geo_data = 'https://github.com/simonepri/geo-maps/releases/download/v0.6.0/countries-land-10km.geo.json',
    data = map_data,
    columns = ['A3', 'value'],
    key_on = 'feature.properties.A3',
    fill_color = 'YlOrRd'
)

在此输入图像描述

我的问题如下:如何判断folium丢失的国家(即存在于json文件中但未存在的那些)中的特定颜色(例如,灰色或透明map_data),而不是将它们作为给定变量的最大值着色(这是一种奇怪的行为)?



1> pieca..:

似乎没有办法用choropleth方法来实现。我找到了一种解决方法,可以使用custom style_functionGeoJson不是使用choropleth

import random
import pandas as pd
import folium
from branca.colormap import LinearColormap
import json

map_data = pd.DataFrame({
    'A3':['POL', 'CZE', 'SVK', 'HUN', 'AUT'],
    'value':random.sample(range(10), 5)
})

map_dict = map_data.set_index('A3')['value'].to_dict()

color_scale = LinearColormap(['yellow','red'], vmin = min(map_dict.values()), vmax = max(map_dict.values()))

def get_color(feature):
    value = map_dict.get(feature['properties']['A3'])
    if value is None:
        return '#8c8c8c' # MISSING -> gray
    else:
        return color_scale(value)

m = folium.Map(
    location = [50, 15], 
    zoom_start = 4
)

folium.GeoJson(
    data = 'https://github.com/simonepri/geo-maps/releases/download/v0.6.0/countries-land-10km.geo.json',
    style_function = lambda feature: {
        'fillColor': get_color(feature),
        'fillOpacity': 0.7,
        'color' : 'black',
        'weight' : 1,
    }    
).add_to(m)


推荐阅读
author-avatar
kkka姐姐_244
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有