继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

基于Python绘制湖北省确诊病例分布图

神奇的二宝
关注TA
已关注
手记 1
粉丝 1
获赞 0

大家本次过年应按照老惯例喜迎春节,但遇到新型冠状病毒却困于家中。在家里,我也不知道干什么。躺在床上时,我突然想到由于工作和自身懒惰的原因,我的CSDN博客就没有更新。借此时机,我为大家介绍我最近完成的小项目:基于Python绘制湖北省冠状病毒确诊病例分布图。

大学阶段Python才出现,我当时为了不落伍对Python进行一些了解。到现在为止,我对Python使用还不够熟练,接受大家的批评。小项目代码都是从CSDN里别的博主扒过来的,在此非常感谢被我扒代码的博主。没有这些博主,我也完成不了这个小项目。

数据来源:丁香医生 https://3g.dxy.cn/newh5/view/pneumonia?scene=2&clicktime=1579582238&enterid=157958223

采集数据时间:2020年1月27日

本项目ok.xls里的数据

项目实现过程注意的问题

1.使用什么来绘制分布图?

答:使用python中pyecharts包。

pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。(借鉴http://pyecharts.herokuapp.com/)

2.实现过程中发现数据未显示等问题在分布图中?

将cityName.append(alldata[0] + '市')和exec("cityName[11]='恩施土家族苗族自治州'")这两段代码删除,项目代码正常执行却发现分布图中没有显示数据等问题。

根本原因在于,我excel里的城市名没有带市字。所以利用append()函数追加一个‘市’。所以说cityName.append(alldata[0] + '市'),这条语句在本项目里不可去除,可以替代。如果你不使用exec("cityName[11]='恩施土家族苗族自治州'")语句,pyecharts将不识别恩施州这个字段,也就不会在分布图显示数据等内容。pyecharts只识别恩施土家族苗族自治州,所以该语句只能替换,不能被删除。exec("cityName[11]='恩施土家族苗族自治州'")中的exec函数可以动态执行简单的字符串代码,我认为这个函数操作简单,可直接替换字符内容。

3.分布图里未显示神农架林区的确诊病例信息?

pyecharts 显示神农架林区,但是原丁香园医生里未单独统计!

4.数据源怎么来的?

日后更新

分布图

 

实现代码(如下):

from pyecharts import Map
import xlrd

#获取冠状病毒数据集
data = xlrd.open_workbook('OK.xls', encoding_override='utf-8')
#确诊数目
confirmedCount=[]
#城市名
cityName=[]

table = data.sheets()[0]  # 选定表
nrows = table.nrows  # 获取行号
ncols = table.ncols  # 获取列号
#读取数据
for i in range(1, nrows):
    alldata = table.row_values(i)
    cityName.append(alldata[0] + '市')
    confirmedCount.append(alldata[1])
#替换名
exec("cityName[11]='恩施土家族苗族自治州'")

#绘制湖北省病情分布图
maps = Map(
    "湖北省冠状病毒分布图",
    title_color="#fff",
    title_pos="center",
    width=1200,
    height=600,
    background_color="#404a59",
)

maps.add(
         "",
         cityName,
         confirmedCount,
         maptype='湖北',
         is_visualmap=True,
         visual_text_color="#000",
         visual_range=[0, 700],
         is_label_show=True,
         is_map_symbol_show=True,
         is_more_utils=True,
)
maps.render(path="湖北省冠状病毒已确诊病例分布图.html")

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP