文章目录

  • 效果
  • 工具与配置
  • 实操

效果

本文使用python库——pyecharts绘制地图,修改标签样式并调色。重点在于参数调用方法(理解Union[Sequence[str]]或者看源码)。
效果如图:

工具与配置

  • Python 3.7.3,使用Anaconda安装
  • pyecharts 1.3.1,pip安装
pip install pyecharts

实操

要绘制地图,看官方文档可知可以使用Geo或Map:Geo为地理坐标系,画出来是在地点对应的位置画点;Map是区域上色。故选用Map实现。

  • 看官网Demo
from example.commons import Faker
from pyecharts import options as opts
from pyecharts.charts import Mapdef map_visualmap() -> Map:c = (Map().add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china").set_global_opts(title_opts=opts.TitleOpts(title="Map-VisualMap(连续型)"),visualmap_opts=opts.VisualMapOpts(max_=200),))return c

可知需要在add函数中传入数据,格式为[[name,value]](例如[['北京',25],['广东',47],...],注意无‘省’‘市’等)。由于我数据是xls,故用pandas读入,如下。

  • 构造数据
data = pd.read_excel(path)
# ....add("", [list(z) for z in zip(data['地区'], data['2018年'])],"china")

得到如图

发现离预期效果的差别为 标签数字的显示 和 调色盘。

  • 看API
# Map类
class Map(# 初始化配置项,参考 `global_options.InitOpts`init_opts: opts.InitOpts = opts.InitOpts()
)
# Map.add()
def add(# 系列名称,用于 tooltip 的显示,legend 的图例筛选。series_name: str,# 数据项 (坐标点名称,坐标点值)data_pair: Sequence,# 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件maptype: str = "china",# 是否选中图例is_selected: bool = True,# 是否开启鼠标缩放和平移漫游。is_roam: bool = True,# 当前视角的中心点,用经纬度表示center: Optional[Sequence] = None,# 当前视角的缩放比例。zoom: Optional[Numeric] = 1,# 自定义地区的名称映射name_map: Optional[dict] = None,# 标记图形形状symbol: Optional[str] = None,# 是否显示标记图形is_map_symbol_show: bool = True,# 标签配置项,参考 `series_options.LabelOpts`label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),# 提示框组件配置项,参考 `series_options.TooltipOpts`tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,# 图元样式配置项,参考 `series_options.ItemStyleOpts`itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,# 高亮标签配置项,参考 `series_options.LabelOpts`emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None,# 高亮图元样式配置项,参考 `series_options.ItemStyleOpts`emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)

首先实现标签格式化,看add类可知需要修改label_opts。这时需要找LabelOpts的文档。依照其中formatter的描述,修改即可实现(文档指出{b}是区域名,{c}是value名)。

# ...
Map().add("", [list(z) for z in zip(data['地区'], data['2018年'])], "china", label_opts=opts.LabelOpts(formatter='{b}\n{c}'),

接着实现调色。首先观察Map.add()函数,发现没有对应参数。观察demo样例,发现图例中max_=200这个参数标定了阈值,故推测目标参数是global_opts中的VisualMapOpts。
到全局配置项查找,根据名字和提示估计为range_color参数。
其参数类型定义如下:

# visualMap 组件过渡颜色
range_color: Union[Sequence[str]] = None,

这里笔者在初学时不知道如何调用,只好去看源码。使用PyCharm ctrl+点击进入VisualMapOpts定义,发现如下:


class VisualMapOpts(BasicOpts):def __init__(self,#...):_inrange_op: dict = {}if type_ == "color":range_color = range_color or ["#50a3ba", "#eac763", "#d94e5d"]_inrange_op.update(color=range_color)

可知,在不传入range_color参数时,其默认为["#50a3ba", "#eac763", "#d94e5d"],是str列表形式传参。(其实在文档定义中 Union[Sequence[str]]已经给出了参数形式,是python3对于数据类型的一种加强型标识)
故修改代码如下,得到预期结果。

def geo() -> Map:c = (Map().add("", [list(z) for z in zip(data['地区'], data['2018年'])], "china", label_opts=opts.LabelOpts(formatter='{b}\n{c}'),).set_global_opts(title_opts=opts.TitleOpts(title=""),visualmap_opts=opts.VisualMapOpts(max_=20,range_color=["#90CAF9", "#1E88E5", "#0D47A1"]),))return c
geo().render_notebook()

python pyecharts绘制地图相关推荐

  1. Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图

    Python之pyecharts:利用pyecharts绘制地图十多个地区流动轨迹动态图 目录 利用pyecharts绘制地图十多个地区流动轨迹动态图 Geo(GeoChartBase)函数 相关文章 ...

  2. python绘制地图线路_python pyecharts绘制地图

    效果 本文使用python库--pyecharts绘制地图,修改标签样式并调色.重点在于参数调用方法(理解Union[Sequence[str]]或者看源码). 效果如图: image.png 工具与 ...

  3. 第4章【思考与练习2】数据文件high-speed rail.csv存放着世界各国高速铁路的情况。对世界各国高铁的数据进行绘图分析。使用Basemap绘制地图及使用Pyecharts绘制地图。

    目录 P84思考与练习2 方法一:使用Basemap绘制地图 方法二:使用Pyecharts绘制地图 P84思考与练习2 1.叙述各类图形的特点.适合展示的数据特性,以及在数据探索阶段的用途. 函数绘 ...

  4. python pyecharts 合并地图_Python pyecharts 绘制的交通拥堵情况地图

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python干货铺子 ,作者:不正经的kimol君 前言 就在今天,我感受到了来自堵 ...

  5. Python pyecharts 绘制的交通拥堵情况地图

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于Python干货铺子 ,作者:不正经的kimol君 前言 就在今天,我感受到了来自堵 ...

  6. 使用pyecharts绘制地图

    使用pyecharts绘制交互式动态地图 实验环境配置 安装pyecharts 环境 利用Geo绘制地理坐标图表 导入模块 1. 基本图表 基本示例 Geo()模块功能函数: 全国各省xx数据分布 H ...

  7. Python pyecharts绘制词云图

    一.pyecharts绘制词云图WordCloud.add()方法简介 WordCloud.add()方法简介 add(name,attr,value, shape="circle" ...

  8. python使用pyecharts绘制地图

    pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Pyt ...

  9. [710]python使用pyecharts绘制地图

    pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Pyt ...

最新文章

  1. 十二 手游开发神器 cocos2d-x editor 之游戏暂停悬浮层
  2. oracle取两个小时内的数据,【求解】一个时间条件,查两个不同时间段数据怎么查...
  3. 认识微软Visual Studio Tools for AI
  4. xcode4自定义文件模板(Creating Custom Xcode 4 File Templates)
  5. 有一个能够统一的方式来画uml图的软件
  6. 自己做的压测实例(亲测)
  7. WP8.1学习系列(第二十三章)——到控件的数据绑定
  8. java给图片添加自定义文字信息
  9. STM32学习——矩阵键盘
  10. 超图openlayers
  11. 『实用教程』四种超实用的超级记忆法以及记忆训练案例
  12. 【猥琐流】制作一个隐藏在黑页下的大马并且添加后门
  13. 中国名人书画展由世界全媒体联盟中国区及广西明星影视文化传媒有限公司联合举办
  14. Android 音乐APP(五)音乐通知栏、后台播放音乐
  15. C语言中task的用法,C++11中std::packaged_task的使用详解
  16. 利用gpu加速神经网络算法,为什么用gpu 模型训练
  17. 滴滴的大数据计算平台演进之路
  18. vue 重写element input限制字数
  19. Python爬虫之scrapy框架360全网图片爬取
  20. vue+uniapp疫苗预约接种系统 微信小程序

热门文章

  1. 苹果6发布时间_苹果又又又要开发布会了,发布时间就在双十一,内容惊喜
  2. Protobuf编码解析
  3. 美国埃博拉疫苗从何而来?
  4. 安徽省2018工程计价电子版_安徽省住房城乡建设厅发布2018版安徽省建设工程计价依据的通知...
  5. 计算机毕业设计SSM点餐系统设计【附源码数据库】
  6. 反射-注解-类加载器知识
  7. 龙芯linux怎么关闭防火墙,重新编译龙芯梦兰loongnix系统内核添加iptables_nat模块...
  8. Unity 屏幕粒子生成
  9. chrome浏览器动态调试js(一)
  10. rust机枪塔攻击模式_亿万僵尸机枪塔怎么用最厉害 机枪塔使用技巧图文解析-游侠网...