城市设计/数据分析/技术分享/摄影记录

0%

新冠病毒疫情分析学习09-如何用气泡图做数据地图

本章将在上一章节底图的基础上,添加气泡,实现气泡图

气泡图

首先准备数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 读取数据
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
# 设置不弹出警告
df = pd.read_excel('*/*/data_ncov.xlsx')

# 时间序列转换
df['date'] = df['date'].astype('str') # 先将字段转化为字符串
df['date'] = pd.to_datetime(df['date']) # 再进行时间序列转换

# 提取2020-2-1日数据
data_0201 = df[df['date'] == '2020-2-1']
data_0201.head()

# 读取空间数据
china_spatial = gpd.GeoDataFrame.from_file('*/*/chinadata.json')

# 匹配数据
data_china0201 = pd.merge(china_spatial, data_0201, left_on = 'name', right_on = '省市', how = 'left')
del data_china0201['name'] # 删除多余字段
data_china0201.head()

1、在数据地图中绘制气泡图

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 在数据地图中绘制气泡图
# 设置图表大小及标题
plt.figure(figsize=(20,20))
plt.title('2020-2-1 全国确诊病例', fontsize = 20)

# 绘制底图
data_china0201.plot(ax=plt.subplot(1,1,1),
edgecolor='k', linewidth = 0.5, color = 'gray', alpha = 0.1)

# 添加气泡图
plt.scatter(data_china0201['centerlng'],data_china0201['centerlat'],
s = data_china0201['确诊'], edgecolors='k', alpha = 0.8)

# 设置网格线
plt.grid(True,alpha=0.5)

# 添加省市信息
lst = data_china0201[['省市','centerlng','centerlat','确诊']].to_dict(orient = 'record')
for i in lst:
plt.text(i['centerlng'], i['centerlat'], i['省市'] +':' + str(i['确诊']))

输出结果如下:

气泡图


知识点

  • matplotlib.pyplot.scatter(x,y,s,..)的参数解释:
    • x:气泡图x值,这里是省市行政区域中心点坐标-经度
    • y:气泡图y值,这里是省市行政区域中心点坐标-纬度
    • s:设置气泡图大小的字段

吃颗糖
  • 本文作者: Erek
  • 本文链接: https://erek.top/2020/009-xg/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!