使用pyecharts绘制地图,pyecharts绘制世界地图
本文主要介绍应用Python用pyecharts绘制中国地图,有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
00-1010 1.安装pycharts包。绘制地图时,需要导入相应的地图文件包。2.画pyecharts的坑——“画不出”。这里给大家举个例子。原因是这样的:这段时间,我爬取了杭州某网站发布的二手房信息,发现制图时的地图呈现还是有不足。在这里,我把我用来提高记忆力的贴出来。
之前用底图画地图,但是到了中国的行政区划就不是很方便了。电子海图广泛应用于数据可视化。这里,pyecharts用于生成echarts。
环境:pycharm;python3.6
目录
1、安装
pip安装pyecharts
pycharts包的安装
全球地图:e海图-国家-pypkg (1.9mb)中国省级地图3360e海图-中国-省份-pypkg (730kb)中国市级地图3360e海图-中国-城市-pypkg (3.8mb)建议在绘图前安装,安装方法与工具包相同:
pip安装e charts-国家/地区-py pkg;
pip安装电子海图-中国-省份-pypkg
pip安装e charts-中国-城市-pypkg
在绘制地图时,需要导入相应的地图文件包
从pyecharts导入地图
# attr,value要显示的数值。
值=[20,100]
Attr=[余杭区,萧山区]
#并条机的基本特征
M=地图(杭州地图示例,宽度=600,高度=400)
#向绘图框架添加数据
M.add( ,attr,value,maptype=u 杭州,visual _ range=[0,100],is _ visualmap=true,visual _ text _ color= # 000 )
# show_config()打印出图表的所有配置项。
m.show_config()
# render()生成一个。html文件
m.render()
M=map (title=" ",subtitle=" ",* * kwargs)指定了图框的基本特征。
M.add(**kwargs)主要用于数据呈现,其次是图例,X,y。
Attr: list,是地级市名称列表。如果要标注区域,就写到相应的区域。注意里面名字的规律性,不然后面会标注不出来。Value:list,是attr每个区域对应的数值。Maptype=u Hangzhou :指定要绘制的区域的面积。可以是省级地名,也可以是市级地名。Visual _ range=[0,100]:指定贴图的颜色范围间隔。默认值为[0,100]。这里主要指Y值的范围,方便生成有色差的图形。Is_label_show=True:显示每个点的值xm.show_config():图表文件的所有配置项都会在终端打印出来。
M.render():默认情况下,在当前文件中生成一个render.html文件。
您可以通过在浏览器中打开生成的render.html文件来查看生成的图形。
>
pyecharts的坑---画图不显示
关于Pyecharts画图,图却不显示出来的问题,出问题可能有好几种原因。可能是版本问题、包没下全等等,在这边说的是一个很坑的问题,博主因为这个白白浪费了好几个小时和精力。
最近在做数据挖掘课设,用pandas处理数据,十分的方便,没错,图不显示就是因为它。
下面为大家举个例子
假设我们有一组数据,转为DataFrame或者Series后经过多种处理,最终从中提取出来,想要用pyecharts做一个图,于是就会出现文章标题这样的错误。
from pyecharts.charts import Barfrom pyecharts import options as opts
import pandas as pd
x = [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]
y = [3, 8, 7, 18, 28, 48, 59, 44, 61, 80, 69, 59, 63, 59, 64, 46, 64, 55, 50, 62, 57, 51, 44, 34, 34, 34, 40, 34, 39, 41, 22, 43, 30, 23]
pdx = pd.Series(x)
pdy = pd.Series(y)
x_value = pdx.values
y_value = pdy.values
# Pyecharts 1.9.0所以支持链式表达
bar = (
Bar()
.add_xaxis(x_value)
.add_yaxis("y值", y_value)
.set_global_opts(title_opts=opts.TitleOpts(title="标题"))
)
bar.render()
让我们来看看这样画出来的图,就会发现它显示不出来。
原因如下
print(x_value)print(type(y_value))
print(type(y_value[0]))
打印出来之后就会发现:
[16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49]
<class 'numpy.ndarray'>
<class 'numpy.int64'>
列表中的数据类型为numpy.int64
而pyecharts要求int类型的数据,所以画的柱状图无法显示数据。
正确的做法就是把数据全部转为int类型,或者不用pandas处理数据…
我尝试着在转为datafram、或series时将类型转为int,但它还是会自动转为numpy.int32。
pdx = pd.Series(x, dtype=int)pdy = pd.Series(y, dtype=int)
print类型
<class numpy.ndarray><class numpy.int32>
不过知道原因之后就好解决了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。