python画流向图_Pyecharts绘制全球流向图的示例代码

本文介绍了如何使用Pyecharts库绘制全球流向图,重点讲解了Geo坐标系和Lines流向图的使用方法,包括添加数据点、设置流向效果,并解决了因缺少国际城市坐标导致的错误,提供了手动添加坐标点和批量导入JSON文件两种解决方案。
摘要由CSDN通过智能技术生成

安装

pip(3) install pyecharts

此文版本为v1.6

效果图

使用Pycharts绘制一个如上图类似的全球流向图。

pyecharts里的地理图标总共有三种—

Geo:地理坐标系,Map:地图,Bmap:百度地图。

Map地图可以绘制全球地图,但不能绘制带有流向的效果图,所以此处需要使用Geo地理坐标系图。

Geo图的类型有scatter(散点图),effectScatter(涟漪散点图),heatmap(热力图),lines(流向图)。

散点图不用说,就是正常的散点图。涟漪散点图类似带有波纹的散点图,像水的涟漪效果一样。

效果如下:

热力图也不用说,就是正常的热力图效果。

我们需要绘制的是流向图。

# 导入Geo包,注意1.x版本的导入跟0.x版本的导入差别

from pyecharts.charts import Geo

# 导入配置项

from pyecharts import options as opts

# ChartType:图标类型,SymbolType:标记点类型

from pyecharts .globals import ChartType, SymbolType

geo = Geo()

# 地图类型,世界地图可换为world

geo.add_schema(maptype="china")

# 添加数据点

geo.add("",[("北京",10),("上海",20),("广州",30),("成都",40),("哈尔滨",50)],type_=ChartType.EFFECT_SCATTER)

# 添加流向,type_设置为LINES,涟漪配置为箭头,提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle',

#'diamond', 'pin', 'arrow', 'none'

geo.add("geo-lines",

[("上海","广州"),

("上海","新疆"),

("上海","哈尔滨"),

("成都","北京"),

好的,首先需要安装pyecharts和pandas库。可以使用以下命令进行安装: ``` pip install pyecharts pip install pandas ``` 接下来,我们需要准备数据。假设我们有一个包含四川各市之间流量的CSV文件,格式如下: ``` from,to,value 成都,绵阳,100 成都,南充,50 绵阳,德阳,80 ... ``` 接下来,我们可以使用以下代码生成地流向: ```python import pandas as pd from pyecharts import options as opts from pyecharts.charts import Map, Geo, Graph # 读取数据并转换为节点和边的形式 df = pd.read_csv('data.csv') nodes = list(set(df['from'].tolist() + df['to'].tolist())) edges = [] for i in range(len(df)): edges.append((df.iloc[i]['from'], df.iloc[i]['to'], df.iloc[i]['value'])) # 生成地 map_data = [(node, 0) for node in nodes] map_chart = Map().add('四川', map_data, '四川') map_chart.set_global_opts(title_opts=opts.TitleOpts(title='四川地')) # 生成流向 graph = Graph().add('', nodes, edges, repulsion=5000, is_legend_show=False, is_label_show=True) graph.set_global_opts(title_opts=opts.TitleOpts(title='四川流向')) graph.set_series_opts(label_opts=opts.LabelOpts(position='right')) # 将地流向放在一起显示 geo_chart = Geo().add_schema(maptype='四川').add('', [], tooltip_opts=opts.TooltipOpts(show=False)) geo_chart = geo_chart.overlap(map_chart) geo_chart = geo_chart.overlap(graph) geo_chart.render('sichuan.html') ``` 以上代码将生成一个名为`sichuan.html`的HTML文件,包含四川地和各市之间流向表。你可以使用浏览器打开该文件并查看结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值