python使用场景还是很多的,特别是在实现自动化的办公阶段,python的用处是比较的大的,那么,今天又有一个比较新奇的想法,如何使用python中的pyecharts去画一个中国地图呢?下面给各位读者做一个详细介绍。
在这一个月的时间里,利用网络爬虫爬取了杭州所有二手房的一个数据,在作图的时候发现在地图呈现上还是有欠缺,这里就把用到的贴出来,提升一下记忆。
之前有接触用Basemap绘制地图,但是在涉及到中国行政划分上感觉不是很方便。Echarts在数据可视化上应用比较广泛,这里采用pyecharts生成echarts风格的图表。
环境:pycharm;python3.6;
1、安装
pycharts包的安装
pip install pyecharts
在绘制地图时,需要导入相应的地图文件包
全球国家地图:echarts-countries-pypkg(1.9MB)
中国省级地图:echarts-china-provinces-pypkg(730KB)
中国市级地图:echarts-china-cities-pypkg(3.8MB)
建议绘图之前就装好,安装方法跟安装工具包的方法一致:
pip install echarts-countries-pypkg; pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg
2、绘制地图
from pyecharts import Map #attr,value要显示的数值 value=[20,100] attr=['余杭区','萧山区'] #图框的基本特性 m=Map('杭州地图示例图',width=600,height=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’杭州’:指定需要绘制的地区的区域。可以是省级地名,也可以是市级地名。 visual_range=[0,100]:指定地图的颜色范围区间,默认是[0,100]。这里主要是参考y值的范围,便于生成有颜色差的图形。 is_label_show=True:显示每个点的值x m.show_config():会在终端打印出图表文件的所有配置项。 m.render():默认在当前文件生成一个render.html文件
通过浏览器打开生成的render.html文件即可看到生成的图形
pyecharts的坑---“画图不显示“
关于Pyecharts画图,图却不显示出来的问题,出问题可能有好几种原因。可能是版本问题、包没下全等等,在这边说的是一个很坑的问题,博主因为这个白白浪费了好几个小时和精力。
最近在做数据挖掘课设,用pandas处理数据,十分的方便,没错,图不显示就是因为它。
下面为大家举个例子
假设我们有一组数据,转为DataFrame或者Series后经过多种处理,最终从中提取出来,想要用pyecharts做一个图,于是就会出现文章标题这样的错误。
from pyecharts.charts import Bar from 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'>
以上就为大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/127979.html
摘要:作为菜鸟,在学习使用模块进入的时候,又遇到了问题那就是,可以使用一下代码,导入和模块,但是弄了之后看不见地图。例如所以呢,只能自己去上下载第三方包,自己在中安装了。这位大神也给了一些解决办法,需要的请参考 作为菜鸟,在学习使用pyecharts模块进入jupyter notebook的时候,又遇到了问题——那就是,可以使用一下代码,导入Geo和Map模块,但是弄了之后看不见地图。 fr...
小编写这篇文章的主要目的,是给大家去做一个介绍,介绍关于Python pyecharts绘制地理图标的方法,下面会给大家去罗列一个一个的步骤,将这些具体的内容,给大家去一一的展示出来,就具体的内容,下面就给大家详细解答下。 炫酷地图 前期我们介绍了很多的地图模板,不管是全球的还是中国的,其实我感觉都十分的炫酷,哈哈哈,可是还有更加神奇的,更加炫酷的地图模板,下面让我们一起一饱眼福吧! 3...
小编写这篇文章的主要目的,主要是给大家做一个详细的介绍,介绍的内容是Python可视化神器,这个神器指的是pyecharts,那么,怎么样利用这种语言去进行绘制箱型图呢?下面小编就给大家详细解答下。 概念 后面的图形都是一些专业的统计图形,当然也会是我们可视化的对象。 箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。...
小编写这篇文章的主要目的,主要是来给大家去做出一个相关性的介绍,介绍的内容主要还是涉及到Python pyecharts,主要是利用Python pyecharts去绘制漏斗,那么,具体要怎么绘制呢?下面给大家详细解答下。 漏斗图 漏斗图是由Light等在1984年提出,一般以单个研究的效应量为横坐标,样本含量为纵坐标做的散点图。效应量可以为RR、OR和死亡比或者其对数值等。理论上讲,被纳...
阅读 910·2023-01-14 11:38
阅读 877·2023-01-14 11:04
阅读 739·2023-01-14 10:48
阅读 1980·2023-01-14 10:34
阅读 941·2023-01-14 10:24
阅读 818·2023-01-14 10:18
阅读 498·2023-01-14 10:09
阅读 571·2023-01-14 10:02