pyecharts Geo根据指定经纬度信息实现“科研战‘疫’中各高校的表现”的可视化展示

本文主要内容:
1、如何解决坐标点缺失;
2、如何自定义坐标点;
3、如何实现“科研战‘疫’中各高校的表现”的可视化展示;
4、不足之处;
5、自动在浏览器打开结果

效果展示:

在这里插入图片描述

指定经纬度的意义:

echarts里面有的地点可能没有,造成坐标点缺失。如果我们的数据中含有这样的坐标点,则在相应位置无法显示信息,造成运行错误或生成空图。指定经纬度就是自行打点的过程,可以根据经纬度在任何位置添加我们需要的坐标地理点。

解决坐标点缺失的四个解决办法:

1. 把不存在的点删掉。

最简单的方法:但是这很多时候会影响数据的完整性;

2. 利用百度地图API修改包数据

把找不到的地方的经纬度加进原始的包里(具体可以参看博客用pyecharts Geo实现动态数据热力图 城市找不到问题解决

3.用geo_cities_coords 添加自定义坐标点

...
city=["city1","city2"]
value = [["value1","value2"],["value3"]]
geo_cities_coords = {"city1":[100,30],"city1":[130,40]}  #[100,30]中100为纬度,30为经度
...
geo.add("",city,value, 
		geo_cities_coords=geo_cities_coords)
...

4.try…except…去除批量数据的异常

如果是批量导入数据,异常数据并不想插入到地图中去,可以通过try…except…来清除这少部分的异常数据
当然如果数据量比较大的话,这样做效率可能不高

for n, m in data.items():   #data是我从数据库中读取的城市的字典数据
    citys = []
    values = []
    citys.append(n)
    values.append(m)
    try:
        geo.add("",
        citys, values,
        ...)
    except Exception as e:
        pass

项目——科研战“疫”中各高校的表现

导库、读取数据

import pandas as pd
from pyecharts import Geo

df=pd.read_excel('C:/Users/Administrator/Desktop/Sci_data.xlsx',#读取xlsx文件位置
                 sheet_name='Sci_data',#读取文件中指定sheet表
                 names=['University_name','Sci_research','Longitude','Latitude'])#列出标题行信息

Excel表格信息
(这里Geo()一般用于数值展示,我这里希望让其展示文本信息,效果不是很好)
在这里插入图片描述

坐标点自定义、读取表格信息

#导入自定义的地点经纬度
geo_cities_coords={df.iloc[i]['University_name']:[df.iloc[i]['Latitude'],df.iloc[i]['Longitude']]
                    for i in range(len(df))} #根据文件大小生成经纬度字典  

#读取大学名称和科研成果列表
University_name=list(df['University_name'])
Sci_research=list(df['Sci_research'])

#读取数据条数
total=df.shape[0]

运行程序的读取结果
在这里插入图片描述

定义Geo()

geo = Geo(
        "科研战“疫”中各高校的表现", #大标题
        "(截至2020年3月1日,高校数:"+str(total)+"所)",#副标题,并显示高校数
        title_top=25, #标题距离顶部距离。标题距离顶部距离,默认为'top',有'top', 'middle', 'bottom'可选,也可为百分比或整数
        title_pos="center",#标题位置。默认为'left',有'auto', 'left', 'right', 'center'可选,也可为百分比或整数
        title_color="#fff",#标题颜色
        subtitle_color='#aaa',#副标题文本颜色,默认为 '#aaa'
        title_text_size=24, #标题大小
        subtitle_text_size=12,#副标题文本字体大小,默认为 12
        width=1000, height=800, #绘图区域大小
        background_color='#404a59', #背景颜色
        page_title="科研战“疫”中各高校的表现"#指定生成的 html 文件中 <title> 标签的值。默认为'Echarts'
        ) 

定义geo.add()

geo.add("", # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        University_name,Sci_research, # 坐标点名称,数据信息(这里数据信息通常是数值)
        maptype="china",  #str,地图类型,具体参考 
        geo_cities_coords=geo_cities_coords,#引入自定义坐标点
        symbol_size=8,#散点大小
        visual_text_color= "#fff",
        is_label_show=False,  #是否正常显示标签,默认不显示。这里标签显示的是经度
        )
geo.render('C:/Users/Administrator/Desktop/科研战“疫”中各高校的表现.html')

效果展示

在这里插入图片描述

不足之处。强迫症患者严重影响心情。

1、标签展示(如下图):这里我没有进行标签的默认展示,因为展示信息为“经度”,我希望它展示位高校名称,查了官方文档和别人的案例没有查到解决方案。
在这里插入图片描述
2、经纬度信息默认展示:我希望不展示经纬度信息,同样没有查到解决方案。
在这里插入图片描述
3、文本数据展示:文本只能单行显示,内容过多时不方便展示,文本溢出。
在这里插入图片描述

自动在浏览器打开结果

import webbrowser

webbrowser.open_new_tab(result)

参考案例及博客:
pyecharts详细配置绘制图表
pyecharts 标记指定经纬度
Pyecharts 根据经纬度和量值的大小,画出散点

发布了50 篇原创文章 · 获赞 14 · 访问量 7954

猜你喜欢

转载自blog.csdn.net/yeyuanxiaoxin/article/details/104603467