python读取json文件制作中国人口地图_Python对JSON文件世界人口数据进行可视化

制作世界人口地图,用json模块来处理,将人口数据进行可视化!!!

下载JSON格式的人口数据,下面附上完整的,在网站中https://datahub.io/下载的数据集的详细过程!!!

1、下载世界人口数据

附上网站超链接:https://datahub.io/

网站是纯英文版的(不慌详细流程见下方!)

1、进入界面后在搜索框中输入World population data(即世界人口数据),点击Search Datasets

562ac884cd02479cba4ee521d74caee9.png

2、点击第一个中的Explore Dataset

c9c97fce4cfd4fb0ac4886e6a6da1390.png

3、向下滑动至Data File,这边的话我们选择压缩包形式,里面包含了csv和json,点击后会出现下载框,下载即可。

88aca8a7f25126b2407463994e666f3c.png

4、解压,打开压缩包,这时候我们发现里面有一些文件,这边我们只需要data文件中的数据就行

f69c5a96c4dac49978a09f2bd1e0da2e.png

1a0654d54ac3319d608863f010abc203.png

5、打开csv文件我们发现里面包含了4列数据,如下所示

d50d4f71d9732758ec5075640039766b.png

6、打开json文件,发现这个文件中实际上是一个很长的python列表,每个元素都是包含4个键的字典

28a0aa6a245826f57e701d41339a2a51.png

到这一步,下载世界人口数据完毕!!!

为了便于操作方便,更快的学习。

这边附上直接下载csv和json压缩包的链接地址:https://pkgstore.datahub.io/core/population/population_zip/data/4e22dd3646c87e44fcaf119d34439291/population_zip.zip

2、提取相关数据

打印json文件中的信息

新建world_population.py文件

将population_json.json文件拖到项目所在的文件夹下

fb6939f31a4fceba2da5ed89c7f85396.png

import json #导入json模块

#将数据添加到一个列表

filename='population_json.json'

with open(filename) as f:

pop_data=json.load(f)

#函数json.load()将数据转换为Python能够处理的格式,这里是一个列表

#打印每个国家2010年人口的数量

for pop_dict in pop_data:

if pop_dict['Year']==2010:

country_name = pop_dict["Country Name"]

population = pop_dict["Value"]

print(country_name + ":" + str(population))

检查字典中的Year键是否为2010

输出一系列的国家名称和人口数量,效果图如下:

a1dd646b677ba5b4fe4a739dfd3b43f4.png

为了便于数据的处理方便,这边将人口数据,先转换为float型,转换为小数,再使用int型将小数部分丢弃,返回一个整数。

在world_population.py文件中修改即可:

population = int(float(pop_dict["Value"]))

效果图如下:

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要使用Python中的一些库来读取和处理JSON文件,并使用一些可视化库来绘制关系图。我建议使用以下库: - `json` 库用于读取JSON文件 - `networkx` 库用于创建和操作图形结构 - `matplotlib` 库用于绘制图形 下面是一个示例代码,它使用这些库从weibo.json文件读取数据并绘制关系图: ```python import json import networkx as nx import matplotlib.pyplot as plt # 读取JSON文件 with open('weibo.json', 'r') as f: data = json.load(f) # 创建一个有向图 G = nx.DiGraph() # 添加节点 for user in data: G.add_node(user['name']) # 添加边 for user in data: for follower in user['followers']: G.add_edge(follower, user['name']) # 绘制图形 pos = nx.spring_layout(G) nx.draw_networkx_nodes(G, pos, node_size=100) nx.draw_networkx_edges(G, pos, alpha=0.5) nx.draw_networkx_labels(G, pos, font_size=8) plt.axis('off') plt.show() ``` 这段代码首先读取JSON文件,然后创建一个有向图。它遍历每个用户并添加节点,然后遍历每个用户的关注者并添加边。最后,它使用`spring_layout`算法布置节点并使用`draw_networkx`函数绘制图形。 在这个例子中,我们使用了`spring_layout`算法来布置节点。这个算法会使节点之间的距离尽可能相等,并且相互连接的节点之间的距离尽可能短。 通常,你可以使用一些其他的布局算法来更改节点的位置,例如`circular_layout`或`random_layout`。你也可以根据节点的一些属性来调整节点的大小和颜色,以便更好地展示节点之间的关系。 最后,你可以对所绘制的图进行分析,例如找出最有影响力的用户,或者找出哪些用户之间的互动最频繁。你可以使用`networkx`库提供的各种函数来进行这些分析,例如`degree_centrality`或`betweenness_centrality`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值