最近在做一个数模题,需要中国地图的数据可视化,了解到pyecharts,踩了一些坑,在此记录
—————————————————————————
版本问题
现在网上大多数文章都是用的老版本,比如0.5以下,但pyecharts升级后,变化还是挺大的。我安装的就是最近版,好像是1.8几。
绘图代码(模版)
先以中国地图为例
- 每个省份和其对应的数值要以元组的形式给到参数里
- opts.TitleOpts就是标题文字的各种参数,详细都可以到官方文档查看
想看哪个函数就直接搜,里面参数的讲解很详细
官方文档(中文) - 可以画中国地图,省份地图,城市地图,就在add的maptype参数改就好,比如画浙江就写‘浙江’
from pyecharts.charts import Map
from pyecharts import options as opts
data = [('北京', 12.54), ('天津', 13.02), ('河北', 13.0), ('山西', 11.53), ('内蒙古', 11.48), ('辽宁', 15.43), ('吉林', 13.21), ('黑龙江', 13.03), ('上海', 15.07), ('江苏', 15.99), ('浙江', 13.89), ('安徽', 15.01), ('福建', 11.42), ('江西', 11.44), ('山东', 14.75), ('河南', 12.73), ('湖北', 13.93), ('湖南', 14.54), ('广东', 9.73), ('广西', 13.12), ('海南', 11.33), ('重庆', 17.42), ('四川', 16.3), ('贵州', 12.84), ('云南', 11.06), ('西藏', 7.67), ('陕西', 12.85), ('甘肃', 12.44), ('青海', 9.45), ('宁夏', 9.67), ('新疆', 9.66)]
_max = 9
_min = 18
map_ = Map()
map_.add("", data, maptype="china", zoom=1)
map_.set_global_opts(
title_opts=opts.TitleOpts(title="各省老龄化总体情况",
subtitle="数据来源:国家统计局",
pos_right="center",
pos_top="5%"),
visualmap_opts=opts.VisualMapOpts(max_=_max,
min_=_min
),
)
map_.render("各省老龄化总体情况.html")
画出来是下面这个样子
渐变颜色调整
这里用的是默认配色,我从网上找不到调整方法,或者大多数就是手动一个个修改,太麻烦了
于是看了一下源码(上面代码中opts.VisualMapOpts函数的源码)发现了如下
这就是默认的三个颜色,HTML的颜色代码,会从第一个颜色渐变到第二个,进而第三个
于是若要修改颜色,可以加如color_range参数,是一个列表,里面给的是HTML颜色的代码,颜色给几个都可以
比如我下面绘制的另一组数据,改成蓝色渐变。其中max和min参数是你数据中最大和最小值,但只能给整数,我没找到改成小数的办法。
HTML颜色代码可以到该网址查询:颜色代码查询
opts.VisualMapOpts(max_=51,
min_=45,
range_color=["#E0ECF8", "#045FB4"]
效果
修改浏览器中大小
直接转动滚轮,可以变大变大,但会出现很烦人的遮挡,这是因为容器大小限制了图片的显示
-
于是在该页面按下F12(fn + F12)
-
然后很容易选中这个容器,发现大小是900 * 500,此时也会显示给你它对应的代码
-
右键,edit as html
-
修改其中width和height参数,我建议是1134和630,根据你的显示器大小来定
修改后的效果,可以沾满整个页面,放大缩小也不会遮挡(主要是字看起来没有这么拥挤了!!)
打开页面是空白的问题
在这里面画图,你用到的地图模版是需要依赖远程资源的,所以必须要有网络的情况下才能显示,甚至有时候有网也不行,毕竟GitHub是外。。
查看生成的HTML文件,不难发现两个依赖的资源
直接下载下来:依赖资源GitHub
然后在开头加入如下代码
其中字符串是资源在你电脑中的位置,仅仅到位置还不行,还要到里面的assets/目录
这样运行就是用本地的资源,一定可以显示的
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = '资源位置/assets/'