首页 文章详情

Pyecharts作图部分省市有数据显示,其他的省份都没有显示,怎么肥四?

Python爬虫与数据挖掘 | 102 2022-07-13 21:41 0 0 0
UniSMS (合一短信)
点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

芳心向春尽,所得是沾衣。

大家好,我是Python进阶者。

一、前言

前几天有个粉丝【Lethe】问了一道Pyecharts可视化的问题,如下图所示。

后来原始数据和代码都给到了,需要帮忙看看。

二、实现过程

下面是她自己的代码,如下所示:

# 可视化部分
import pandas  as pd
from pyecharts.charts import Map, Page
from pyecharts import options as opts

# 设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 打开文件
df = pd.read_excel('D:\python-base\python\实训项目文档\国内疫情统计表1.xlsx')

locations = [location for location in df['省']]
values = [value for value in df['当前确诊']]
datas1 = list(zip(locations, values))

data2 = df['省']
data2_list = list(data2)
# print(data2_list)

data3 = df['当前确诊']
data3_list = list(data3)
# print(data3_list)

data4 = df['疑似确诊']
data4_list = list(data4)

data5 = df['累计确诊']
data5_list = list(data5)
data6 = df['死亡人数']
data6_list = list(data6)
data7 = df['治愈人数']
data7_list = list(data7)

a = (
    Map()
        .add("当前确诊", datas1, "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=100),
    )
)

b = (
    Map()
        .add("疑似确诊", [list(z) for z in zip(data2_list, data4_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

c = (
    Map()
        .add("累计确诊", [list(z) for z in zip(data2_list, data5_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

d = (
    Map()
        .add("死亡人数", [list(z) for z in zip(data2_list, data6_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

e = (
    Map()
        .add("治愈人数", [list(z) for z in zip(data2_list, data7_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

page = Page(layout=Page.DraggablePageLayout)
page.add(
    a,
    b,
    c,
    d,
    e,
)
# 先生成render.html文件
page.render()

# 完成上一步之后把 page.render()这行注释掉
# 然后循行这下面
'''
Page.save_resize_html("render.html",
    cfg_file="chart_config.json",
    dest="my_test.html")
'
''

后来【此类生物】修改了下代码,顺利解决了问题,代码如下所示。

# 可视化部分
import pandas  as pd
from pyecharts.charts import Map, Page
from pyecharts import options as opts

# 设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 打开文件
df = pd.read_excel('国内疫情统计表1.xlsx')
locations = []
for location in df['省']:
    if "广西" in location:
        location = "广西"
    if "新疆" in location:
        location = "新疆"
    if "宁夏" in location:
        location = "宁夏"
    if "西藏" in location:
        location = "西藏"
    if "内蒙古" in location:
        location = "内蒙古"
    else:
        location = location.strip("省市")
    locations.append(location)

values = [value for value in df['当前确诊']]
print(values, locations)
datas1 = list(zip(locations, values))
#
data2 = locations
data2_list = list(data2)
print(data2_list)

data3 = df['当前确诊']
data3_list = list(data3)
# print(data3_list)

data4 = df['疑似确诊']
data4_list = list(data4)

data5 = df['累计确诊']
data5_list = list(data5)
data6 = df['死亡人数']
data6_list = list(data6)
data7 = df['治愈人数']
data7_list = list(data7)
#
#
#
a = (
    Map()
        .add("当前确诊", datas1, "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=100),
    )
)

#
#
#
b = (
    Map()
        .add("疑似确诊", [list(z) for z in zip(data2_list, data4_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

c = (
    Map()
        .add("累计确诊", [list(z) for z in zip(data2_list, data5_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

d = (
    Map()
        .add("死亡人数", [list(z) for z in zip(data2_list, data6_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

e = (
    Map()
        .add("治愈人数", [list(z) for z in zip(data2_list, data7_list)], "china")
        .set_global_opts(
        title_opts=opts.TitleOpts(),
        visualmap_opts=opts.VisualMapOpts(max_=200),
    )
)

page = Page(layout=Page.DraggablePageLayout)
page.add(
    a,
    b,
    c,
    d,
    e,
)
# 先生成render.html文件
page.render()

# 完成上一步之后把 page.render()这行注释掉
# 然后循行这下面
'''
Page.save_resize_html("render.html",
    cfg_file="chart_config.json",
    dest="my_test.html")
'
''

顺利解决问题。

其实就是数据处理的问题,关于这个之前有写过文章,惊!Pyecharts作图,发现无数据展示?,感兴趣的可以看下,看完之后就一目了然了。

如果有遇到问题,随时联系我解决,欢迎加入我的Python学习交流群。

三、总结

大家好,我是Python进阶者。这篇文章主要盘点了一道Pyecharts作图的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【Lethe】提问,感谢【此类生物】给出的思路和代码解析,感谢【dcpeng】等人参与学习交流。

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter