python用pyecharts画柱状图,pyecharts绘制柱状图_1

  python用pyecharts画柱状图,pyecharts绘制柱状图

  大家好,本文主要讲python用pyecharts绘制矩形树形图。有兴趣的同学过来看看,如果对你有帮助记得收藏。

  00-1010I、概念介绍二、数据展示三、数据导入四、图像绘制五、树形结构总结

  

目录

  矩形树形图(Treemap),即矩形树形结构图,用矩形的面积来表示值,用颜色来进行类别区分,常用来呈现多类别一维数值比较,便于阅读。基于树的功能,数据层的信息可以同时呈现在结构图中。

  例子如下:

  比较,常见的直方图和条形图矩形树形图弥补了以下三个缺点:

  1.当我们的数据是多类别的,每个类别只有一个值时,使用直方图会浪费很多空间,而且显得单调。

  2.当数据差异较大时(235 vs 18),设置我们直方图的纵坐标会很麻烦。忽略了极端的差异,会冲淡我们小价值阶层的差异。(当然,如果我们的大值只有一两个,也可以单独处理。)

  3.直方图不能显示数据之间的层次结构。

  

一、概念介绍

  我们的目的是显示类之间数值的差异。如果有第二层,我们也可以顺便对比一下第二层的比例。

  为了显示各种类别,我们使用各省的数据,在excel表格中显示如下:

  第二层和第三层是随机生成的,用于树的呈现,也是为了说明树的结构并不要求每个节点都有枝叶。

  

二、数据展示

  第一,我们只需要输入【省份】和【关注类】两列,就可以画出一个一维的图像,这个其实更常用(从我的角度来说)。

  province _ type 1=PD . data frame(PD . read _ excel(。/各省上市公司数量/矩形树形图示例。xlsx’))

  tree=[]

  name=[province _ type 1[ province ][I] \ n str(province _ type 1[ class a ][I])for I in range(len(province _ type 1))]

  对于范围内的I(len(province _ type 1)):

  dic={}

  DIC [value],DIC[ name ]=int(province _ type 1[ attention class A ][I]),name[i]

  tree.append

  名称列表数据结构,用于存储每个数据的标签。这里,为了同时呈现数据对应的省份和大小,我在中间使用了一个换行符(如果不是,就是我们树形图中的一行,不好看)

  画矩形树形图需要的是一个列表,里面有一个字典,键名指定为‘name’和‘value’。

  一定要注意,如果你画的图没有数据或者没有显示,检查一下读取excel数据是否有问题,也就是上面代码中int的位置。

  用于绘制树形图的数据结构如下:

  

三、数据导入

  tm=(

  树形图()。添加(“关注A类”,树)。set _ series _ opts(label _ opts=opts。LabelOpts(position=inside ))。set _ global _ opts(title _ opts=opts . title topts(title= ,subtitle= 2022/1/18-老头林ss ))

  )

  Tm.render(。/绘图结果/矩形树形图-示例html )

  位置-指定标签,也就是我们名字的位置,里面会显示在中央。否则,默认顶部显示在每个矩形的上方。

  结果如下:

  从上图可以看出,广东省、浙江省、江苏省位列随机数据前三。由于显示区域的限制,数据量小或者名称太长的矩形往往无法完整显示,需要交互放大其值。

  aodian">

  

五、树形结构

  在加入树形结构后,我们需要在代码中相应增加key为children"的数据

  

from pyecharts.charts import Page,TreeMap

  from pyecharts import options as opts

  import pandas as pd

  import math

  province_type1 = pd.DataFrame(pd.read_excel(./矩形树图示例.xlsx))

  tree = []

  name = [province_type1[省份][i]+\n+str(province_type1[关注类A][i]) for i in range(len(province_type1))]

  for i in range(len(province_type1)):

   dic = {}

   dic["value"],dic["name"] = int(province_type1[关注类A][i]),name[i]

   if math.isnan(province_type1[关注类A-1][i]) ==0:

   dic["children"] = [

   {"name":province_type1[省份][i]+"A-1:"+str(province_type1[关注类A-1][i]),"value":int(province_type1[关注类A-1][i])},

   {"name":province_type1[省份][i]+"A-2:"+str(province_type1[关注类A-1][i]),"value":int(province_type1[关注类A-2][i])}

   ]

   if math.isnan(province_type1[关注类A1-1][i]) ==0:

   dic["children"][0]["children"] = [

   {"name":"A1-1:"+str(province_type1[关注类A1-1][i]),"value":int(province_type1[关注类A1-1][i])},

   {"name":"A1-2:"+str(province_type1[关注类A1-1][i]),"value":int(province_type1[关注类A1-2][i])}

   ]

   tree.append(dic)

  tm = (

   TreeMap()

   .add("关注类A的树",tree)

   .set_series_opts(label_opts=opts.LabelOpts(position=inside))

   .set_global_opts(title_opts=opts.TitleOpts(title = 加油呀朋友们~,subtitle = 2022/1/18-林老头ss))

   )

  tm.render(./绘图结果/矩形树图-例二.html)

  如果没有枝叶的类,则不需要在"name""value"平级上加"children",如果枝叶中有两个以上类别,相当于是一个新的树,需要增加children,结构和树形一致,如下所示:

  【name:父节点,

   "value": number,

   "children":【{name:子节点一,value:number},

  {name:子节点二,value:number},

  {name:子节点三,value:number}

  】

  】

  子序列在显示区域允许的情况下,可以继续按上述结构增加。

  绘制结果如下所示:

  

  从上图我们可以看到,尽管我们为父类命名,但显示的结果只有最小类的名称和数值。

  pyecharts图像交互性较强,可以通过点击不断聚焦类,放大图像,但由于不知道怎么呈现给大家,还是鼓励大家自己动手操作去探索叭~

  

  

总结

  到此这篇关于python用pyecharts画矩形树图实例的文章就介绍到这了,更多相关python pyecharts画矩形树图内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

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

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