Python - Folium Choropleth 地图 - 颜色不正确

2023-11-30

我的问题是郊区在 Folium 地图上没有显示正确的颜色。例如,Dandenong 和 Frankston 应使用最暗的颜色进行着色,因为它们在数据框中的计数最高,但它们应使用较浅的颜色进行着色。

数据框缺少一些郊区。这些郊区被涂上了最暗的颜色。

另一个问题是 csv 的所有郊区都是大写,但 geojson 混合了大小写,例如“Frankston”、“St Kilda”或“McKinnon”。如果 choropleth 代码不关心大小写,将会很有帮助。我可以更改数据框中的文本以制作“FRANKSTON”、“Frankston”和“ST KILDA”、“St Kilda”,但“MCKINNON”到“McKinnon”被证明有点棘手。

创建数据框

import csv 
import pandas as pd
csv_path='Data_tables_Criminal_Incidents_Visualisation_year_ending_June_2018.csv'
df=pd.read_csv(csv_path)

with open(csv_path, 'r') as csvfile: 
    # creating a csv reader object 
    csvreader = csv.reader(csvfile) 
    # create a list of headings from the first row of the csv file
    headings = next(csvreader)

# create a dictionary, where keys are Suburb/Town Name and values are number of occurences
# index 2 of the headings list are the suburbs
neighborhood_dict = df[headings[2]].value_counts().to_dict()

# make first letter uppercase eg St Kilda
neighborhood_dict = dict((k.title(), v) for k, v in neighborhood_dict.items())


# make neighborhood_list from neighborhood_dict
neighborhood_list=[]
for key, value in neighborhood_dict.items():
    temp = [key,value]
    neighborhood_list.append(temp)

# make dataframe from neighborhood_list
df = pd.DataFrame(neighborhood_list, columns=['Suburb','Count'])

print(df.to_string()) 

创建地图

import folium

world_map = folium.Map(
        location=[-38.292102, 144.727880],
        zoom_start=6,
        tiles='openstreetmap'
        )

world_map.choropleth(
        geo_data='vic.geojson',
        data=df,
        columns=['Suburb','Count'],
        key_on='feature.properties.Suburb_Name',
        fill_color='YlOrRd',
        fill_opacity=0.7,
        line_opacity=0.2,
        legend_name='Crime Rate in Victoria'
        )

world_map.save('index.html')

Dataframe Image

Legend

Map Image


我已经全部弄清楚了。缺失值显示为灰色,并且图例是根据我选择的间隔定制的。清理 geojson、删除尾随空格并使所有郊区名称大写解决了很多问题。

文件在这里

Demo image

创建字典

import pandas as pd
import csv 

csv_path='Data_tables_Criminal_Incidents_Visualisation_year_ending_June_2018.csv'
df=pd.read_csv(csv_path)

# sum the number of incidents recorded for each suburb
df=df.groupby(['Suburb/Town Name'])['Incidents Recorded'].agg(
    # make the numbers numeric otherwise it just concatenates strings
    lambda x: pd.to_numeric(x, errors='coerce').sum()
)

# create a dictionary, where keys are Suburb/Town Name and values are number of incidents
suburb_dict = df.to_dict()

风格 功能

def style_function(feature):
    suburb = suburb_dict.get(feature['properties']['Suburb_Name'])
    return {
        'fillColor': '#gray' if suburb is None else colormap(suburb),
        'fillOpacity': 0.6,
        #borders
        'weight': 0.2,
    }

大叶区地图

import folium

world_map = folium.Map(
        location=[-38.292102, 144.727880],
        zoom_start=6,
        tiles='openstreetmap'
        )

folium.GeoJson(
    data = 'vic_for_crime_2018.geojson',
    style_function = style_function    
).add_to(world_map)

Colormap

import branca

colormap = branca.colormap.linear.YlOrRd_09.scale(0, 8500)
colormap = colormap.to_step(index=[0, 1000, 3000, 5000, 8500])
colormap.caption = 'Incidents of Crime in Victoria (year ending June 2018)'
colormap.add_to(world_map)

world_map.save('vic_final.html')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - Folium Choropleth 地图 - 颜色不正确 的相关文章

随机推荐

  • 将位图保存到 MemoryStream 时发生 GDI+ 异常

    我在 Windows 窗体应用程序中遇到问题 当我保存到 MemoryStream 时 Bitmap Save 失败 该问题似乎只间歇性地发生在一台机器上 到目前为止 而坏消息是在客户站点上 我无法在机器上进行调试 但我得到了堆栈跟踪 将问
  • Android NDK 和渲染到动态壁纸

    我只是在寻找开始学习 NDK 的机会 并考虑到一个特定的项目 我想从 NDK 端不断渲染变化的位图 以便能够在动态壁纸中显示它 因此我在这里讨论的不是渲染到 OpenGL 纹理 而是渲染到位图 我用谷歌搜索了一下 发现有一个选项可以直接操作
  • 如何在 ES6 类中创建“公共静态字段”?

    我正在创建一个 Javascript 类 我想要一个像 Java 中那样的公共静态字段 这是相关代码 export default class Agent CIRCLE 1 SQUARE 2 这是我得到的错误 line 2 col 11 C
  • XPath 中 .// 和 //* 有什么区别?

    通过 Firebug 查找相对 XPath 时 它会创建类似 id Passwd 如果我们在开头不使用点它的含义会怎么样 只需添加 在 Xpath 中 它突出显示 各种页面元素 代表什么 以下是 Gmail 密码字段的 XPath 有什么意
  • 如何使用 Retrofit 2.0 解析 XML 响应?

    您好 我是 Android 编程新手 我已经浏览了一些有关如何使用改造解析 XML 响应的链接 并且我尝试了下面的 XML 如图所示 我需要在 POJO 类中做任何必要的更改吗 但我在 Logcat 中收到 NullPointer 异常 当
  • NullPointerException 使用模拟上下文创建 AppCompatImageView

    我收到了NullPointerException当我尝试创建一个AppCompatImageView带着嘲笑Context在测试中 与正常人做同样的事情ImageView works 本次测试通过 import android conten
  • 在 Azure Front Door 后面设置多个 Web 应用程序的正确方法是什么?

    我有 3 个后端池 1 个是 API 2 个是 Web 应用程序 我已在 Azure Front Door 中设置路由以路由到正确的区域 但如何修改 Web 应用程序以对所有链接使用 Front Door URL 而无需手动对它们进行硬编码
  • C++“命名空间范围”

    C 规范 http www open std org jtc1 sc22 wg21 docs papers 2011 n3242 pdf 第 7 5 4 节 指出 链接规范只能出现在名称空间范围内 命名空间范围 到底是什么意思 这是否意味着
  • 在容器外部定义 jta 数据源

    我们的应用程序当前使用在 JBossstandalone xml 中定义的数据源 基本上我们需要在应用程序中而不是在容器中定义它一段时间 我们当前的设置是 应用程序上下文 xml
  • 如何使用 scanf \ fscanf 读取一行并解析为变量?

    我正在尝试读取每行使用以下格式构建的文本文件 字符 字符 整数 i e 啊啊啊 dfdsd 23 bbbasdaa ddd 100 我想使用 fscanf 从文件中读取一行 并自动将该行解析为变量 string1 string2 intA
  • 更改已编译可执行文件的 .NET Framework 目标

    由于 Windows 8 默认情况下不包含 NET 2 3 5 我想将一些 NET 2 0 编译的可执行文件转换为 NET 4 5 而无需使用 VS 2012 重新编译它们 是否有用于此任务的实用程序 您只需创建或修改 app config
  • 带有图像和文本的 HTML 标题 - 将文本与底部对齐?

    我正在用 CSS 编写 HTML 页面 在页面顶部 我想显示带有图像和文本的标题 图像位于文本左侧 图像大小为 64 x 64 像素 我希望文本较大 除了我想将文本对齐在底部之外 我几乎可以做所有事情 但是 无论我做什么 我似乎都无法让文本
  • SQL Server - 仅将字段内容过滤为数字

    如何复制字段的值 但仅复制其数字 我正在创建一个用于全文搜索的计算列 并且我想将电话号码字段 为 varchar 中的值复制到其中 但不使用其格式 仅数字 在我的计算列公式中执行此操作的命令是什么 谢谢你 您将必须编写一个用户定义的函数来执
  • 如何向 clang-format 添加功能?

    Clang 有助于让每个人诚实地了解公司的编码标准 但它并不能完全覆盖所有情况 并且会做出 IMO 错误的选择 而不是忽略某些情况 例如 来自另一篇有类似问题的帖子 z1 sqrt x x y y 被 clang format 破坏 成 z
  • 如何在 iOS Objective-c 的 UICollectionView 中创建无限滚动

    如何在我的应用程序中创建无限滚动UICollectionView 附截图 Now my NSArray is NSArray nameArr NSArray arrayWithObjects 0 1 2 3 4 nil 我想在完成数组后在
  • 如何在 Linux 上使用系统调用等待按键中断?

    我希望当用户在我的程序中按下特殊按键 如 F1 12 时接收中断 该程序是用 nasm 编写的 我只需要在主函数开始时等待函数按键即可 我知道这可以通过 BIOS 实现int 16h 它返回一个扫描码 我怎样才能在Linux下做到这一点 所
  • 有没有类似拉链的功能可以填充到最长的长度?

    是否有一个内置函数 其工作原理如下zip 但这会填充结果 以便结果列表的长度就是longest输入而不是shortest input gt gt gt a a1 gt gt gt b b1 b2 b3 gt gt gt c c1 c2 gt
  • WordPress 建立数据库连接时出错

    我是 WordPress 新手 我正在尝试在本地计算机上设置它 我收到类似 建立数据库连接时出错 的错误 我尝试了 WP 博客中的所有解决方案 创建了具有所有权限的新用户 厌倦了 root 用户 多次创建和删除目标数据库 什么都不起作用 有
  • 如何通过 Selenium Python 点击​​某个元素

    我正在尝试使用 selenium 浏览器 python 获取 facebook 帐户的数据 但无法找到我可以在单击导出按钮时查找的元素 See attached screenshot 我尝试过 但似乎给我带来了课堂上的错误 def logi
  • Python - Folium Choropleth 地图 - 颜色不正确

    我的问题是郊区在 Folium 地图上没有显示正确的颜色 例如 Dandenong 和 Frankston 应使用最暗的颜色进行着色 因为它们在数据框中的计数最高 但它们应使用较浅的颜色进行着色 数据框缺少一些郊区 这些郊区被涂上了最暗的颜