【数据可视化】Python通过Pyecharts库绘制geo类地图

这篇具有很好参考价值的文章主要介绍了【数据可视化】Python通过Pyecharts库绘制geo类地图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我们知道,在数据可视化中的地图可视化分为map类地图和geo类地图,而现在我将介绍geo类地图,会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着我来一起学习学习吧!(由于我是一位初学者,若有不对的还望大家多多指教,蟹蟹~)

中文官方文档和社区

1.中文官网文档
它包含pyecharts中各个功能和图形的介绍和代码参数解析。链接如下:

https://pyecharts.org/#/zh-cn/intro

2.社区
它包含各种图形demo的项目案例代码和演示。链接如下:

https://gallery.pyecharts.org/#/README

【工具】查询颜色代码网站

http://tools.jb51.net/color/colorpicker

一、什么是geo类地图?

地图是我们在日常的数据可视化分析中是很常见的一种展示手段,不仅美观而且很大气,尤其是在大屏展示中更是扮演着必不可缺的角色。而geo类地图和map类地图最大的区别在于geo地图擅长画“点”,可以是根据经纬度画出坐标点,也可以根据地区名称画出该地区代表的点。

与map不同在于:
map中add的时候需要添加地图属性’china’,但是geo中只需要额外添加一句:geo.add_schema(maptype=“china”) # 设置地图类型

安装Pyecharts库
我们都知道pyecharts是一种非常强大的绘图python库,绘制的图形非常好看,并且有代表性,不仅仅是地图,还可以绘制条形图、饼图、词云图等等。所以我们现在绘制地图需要先安装pyecharts库,大家可到windows中搜索Anaconda Prompt (anaconda)【或者Win+R——cmd】并打开,使用以下两种任意方法运行即可:
方法一:

pip install pyecharts

方法二(使用清华镜像):

pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple

由于使用map需要在anaconda中下载地图拓展包,请大家下载以下拓展包(新版anaconda已经不需要手动下载):

pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg

二、绘制geo类散点地图

从数据结构上看,geo对象接收的数据也是二维数组。
1.引入相关map包
代码如下:

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker

注意:运行代码前请使用正确的解释器(例如)

python画地图的库,python,echarts,信息可视化
2.绘制geo类散点地图
代码如下:

c = (
    Geo()
    .add_schema(maptype="china")
    .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-基本示例")
    )
    .render("geo_base.html")
)

效果图可以在VScode运行结果查看,也可以在目录中找到对应的html文件打开效果图(右键选择在浏览器打开或者在页面使用快捷键Ctrl+1)
python画地图的库,python,echarts,信息可视化python画地图的库,python,echarts,信息可视化

效果图如下所示:
python画地图的库,python,echarts,信息可视化

geo类散点地图的社区代码链接:

https://gallery.pyecharts.org/#/Geo/geo_base

三、geo类地图的点样式设置

由于点样式设置在社区有提供代码,我将不展示涟漪散点地图和热力地图的代码。

1.涟漪散点地图社区代码链接如下:

https://gallery.pyecharts.org/#/Geo/geo_effectscatter

2.热力地图社区代码链接如下:

https://gallery.pyecharts.org/#/Geo/geo_heatmap

四、geo动态轨迹图

1.引入相关map包
代码如下:

from pyecharts import options as opts
from pyecharts.charts import BMap
from pyecharts.globals import ChartType
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

2.绘制点之间的箭头

首先在中国地图上设置你想要设置的点

代码如下:

c = (
    Geo()
    .add_schema(maptype="china")
    .add(
        "",
        [("南宁", 1), ("北京", 66), ("湖南", 77), ("重庆", 88), ("四川", 99), ("上海", 111), ("云南", 88)],
        type_=ChartType.EFFECT_SCATTER, # 点样式
        color="#FF6666",
        label_opts=opts.LabelOpts(is_show=True,formatter='{b}') # 配置点的标签
    )

其次设置箭头所处于的起始点与终止点。

代码如下:

 .add(
        "",
        [("南宁", "北京"), ("南宁", "湖南"), ("南宁", "重庆"), ("南宁", "四川"), ("南宁", "上海"), ("南宁", "云南")],
        type_=ChartType.LINES, 
        effect_opts=opts.EffectOpts(
            symbol='arrow',  # 移动点的样式
            symbol_size=10, 
            color="#FFCCCC"
        ),
        linestyle_opts=opts.LineStyleOpts(curve=0.2, # 线条弧度
                                         type_='solid' # 线条类型
                                         ),
        label_opts=opts.LabelOpts(is_show=False) # 配置线的标签
    )

完整代码

from pyecharts import options as opts
from pyecharts.charts import BMap
from pyecharts.globals import ChartType
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
c = (
    Geo()
    .add_schema(maptype="china")
    .add(
        "",
        [("南宁", 1), ("北京", 66), ("湖南", 77), ("重庆", 88), ("四川", 99), ("上海", 111), ("云南", 88)],
        type_=ChartType.EFFECT_SCATTER, # 点样式
        color="#FF6666",
        label_opts=opts.LabelOpts(is_show=True,formatter='{b}') # 配置点的标签
    )
    .add(
        "",
        [("南宁", "北京"), ("南宁", "湖南"), ("南宁", "重庆"), ("南宁", "四川"), ("南宁", "上海"), ("南宁", "云南")],
        type_=ChartType.LINES, 
        effect_opts=opts.EffectOpts(
            symbol='arrow',  # 移动点的样式
            symbol_size=10, 
            color="#FFCCCC"
        ),
        linestyle_opts=opts.LineStyleOpts(curve=0.2, # 线条弧度
                                         type_='solid' # 线条类型
                                         ),
        label_opts=opts.LabelOpts(is_show=False) # 配置线的标签
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="南宁市Geo线段"))
)
c.render_notebook()

效果图如下所示:
(以下点为我想去旅游的城市哈哈哈哈,大家可随意选择点)
python画地图的库,python,echarts,信息可视化

五、根据经纬度绘制点生成局部图

1.引入相关map包
代码如下:

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType

2.根据经纬度绘制点

添加一个坐标点或者绘制某一个点(需要该点的经纬度)
查询经纬度位置 (在浏览器打开,在该地址后面,加上你要查询的地址),再依次设置字体样式。

代码如下:

g = Geo()
g.add_schema(maptype="广西")
g.add_coordinate('兴宁区', 108.6383056640625,23.980397108430427)
g.add(
    "",
    data_pair = [('兴宁区',10)],
    type_=ChartType.EFFECT_SCATTER, 
    symbol_size=5
)
g.set_series_opts(label_opts = opts.LabelOpts(formatter = '{b}',# 不设置标签格式自动显示纬度数值
                                             font_size = 20
                                             )
                 ) 

完整代码:

from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
g = Geo()
g.add_schema(maptype="广西")
g.add_coordinate('兴宁区', 108.6383056640625,23.980397108430427)
g.add(
    "",
    data_pair = [('兴宁区',10)],
    type_=ChartType.EFFECT_SCATTER, 
    symbol_size=5
)
g.set_series_opts(label_opts = opts.LabelOpts(formatter = '{b}',# 不设置标签格式自动显示纬度数值
                                             font_size = 20
                                             )
                 ) 
g.render_notebook()

效果图如下所示:
(以下点为我生活的市区,同学们可随意选择点)
python画地图的库,python,echarts,信息可视化

总结

以上为我在学习数据可视化中关于geo类地图简单的学习实践,若有问题还请同学们在评论区中指正。文章来源地址https://www.toymoban.com/news/detail-756346.html

到了这里,关于【数据可视化】Python通过Pyecharts库绘制geo类地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包