使用pyecharts绘制地图,pyecharts绘制世界地图

  使用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 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>

  不过知道原因之后就好解决了。

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: