资讯专栏INFORMATION COLUMN

Python可视化神器pyecharts绘制箱型图的方法

89542767 / 450人阅读

  小编写这篇文章的主要目的,主要是给大家做一个详细的介绍,介绍的内容是Python可视化神器,这个神器指的是pyecharts,那么,怎么样利用这种语言去进行绘制箱型图呢?下面小编就给大家详细解答下。


  概念


  后面的图形都是一些专业的统计图形,当然也会是我们可视化的对象。


  箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后,连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

01.png

  用处


  1.直观明了地识别数据批中的异常值


  上文讲了很久的识别异常值,其实箱线图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的耐抗性,多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不会影响箱形图的数据形状,箱线图识别异常值的结果比较客观。由此可见,箱线图在识别异常值方面有一定的优越性。


  2.利用箱线图判断数据批的偏态和尾重


  对于标准正态分布的样本,只有极少值为异常值。异常值越多说明尾部越重,自由度越小(即自由变动的量的个数);


  而偏态表示偏离程度,异常值集中在较小值一侧,则分布呈左偏态;异常值集中在较大值一侧,则分布呈右偏态。


  3.利用箱线图比较几批数据的形状


  同一数轴上,几批数据的箱线图并行排列,几批数据的中位数、尾长、异常值、分布区间等形状信息便昭然若揭。如上图,可直观得看出第三季度各分公司的销售额大体都在下降。


  箱形图系列模板


  第一个箱形图


  说实话这类图形的绘制,如果不懂专业的知识可能也无法理解,对于如何深层次的理解这个图形的具体含义,请移步到其他专栏,我会详细介绍,这里就不做过多的解释了。


  from pyecharts import options as opts
  from pyecharts.charts import Boxplot
  v1=[
  [850,740,900,1070,930,850,950,980,980,880,1000,980],
  [960,940,960,940,880,800,850,880,900,840,830,790],
  ]
  v2=[
  [890,810,810,820,800,770,760,740,750,760,910,920],
  [890,840,780,810,760,810,790,810,820,850,870,870],
  ]
  c=Boxplot()
  c.add_xaxis(["expr1","expr2"])
  c.add_yaxis("A",c.prepare_data(v1))
  c.add_yaxis("B",c.prepare_data(v2))
  c.set_global_opts(title_opts=opts.TitleOpts(title="标题"))
  c.render("简单示例.html")
  print(c.prepare_data(v1))

 02.png

    复杂一点的图例


  import pyecharts.options as opts
  from pyecharts.charts import Grid,Boxplot,Scatter
  y_data=[
  [
  850,
  740,
  900,
  1070,
  930,
  850,
  950,
  980,
  980,
  880,
  1000,
  980,
  930,
  650,
  760,
  810,
  1000,
  1000,
  960,
  960,
  ],
  [
  960,
  940,
  960,
  940,
  880,
  800,
  850,
  880,
  900,
  840,
  830,
  790,
  810,
  880,
  880,
  830,
  800,
  790,
  760,
  800,
  ],
  [
  880,
  880,
  880,
  860,
  720,
  720,
  620,
  860,
  970,
  950,
  880,
  910,
  850,
  870,
  840,
  840,
  850,
  840,
  840,
  840,
  ],
  [
  890,
  810,
  810,
  820,
  800,
  770,
  760,
  740,
  750,
  760,
  910,
  920,
  890,
  860,
  880,
  720,
  840,
  850,
  850,
  780,
  ],
  [
  890,
  840,
  780,
  810,
  760,
  810,
  790,
  810,
  820,
  850,
  870,
  870,
  810,
  740,
  810,
  940,
  950,
  800,
  810,
  870,
  ],
  ]
  scatter_data=[650,620,720,720,950,970]
  box_plot=Boxplot()
  box_plot=(
  box_plot.add_xaxis(xaxis_data=["expr 0","expr 1","expr 2","expr 3","expr 4"])
  .add_yaxis(series_name="",y_axis=box_plot.prepare_data(y_data))
  .set_global_opts(
  title_opts=opts.TitleOpts(
  pos_left="center",title="Michelson-Morley Experiment"
  ),
  tooltip_opts=opts.TooltipOpts(trigger="item",axis_pointer_type="shadow"),
  xaxis_opts=opts.AxisOpts(
  type_="category",
  boundary_gap=True,
  splitarea_opts=opts.SplitAreaOpts(is_show=False),
  axislabel_opts=opts.LabelOpts(formatter="expr{value}"),
  splitline_opts=opts.SplitLineOpts(is_show=False),
  ),
  yaxis_opts=opts.AxisOpts(
  type_="value",
  name="km/s minus 299,000",
  splitarea_opts=opts.SplitAreaOpts(
  is_show=True,areastyle_opts=opts.AreaStyleOpts(opacity=1)
  ),
  ),
  )
  .set_series_opts(tooltip_opts=opts.TooltipOpts(formatter="{b}:{c}"))
  )
  scatter=(
  Scatter()
  .add_xaxis(xaxis_data=["expr 0","expr 1","expr 2","expr 3","expr 4"])
  .add_yaxis(series_name="",y_axis=scatter_data)
  .set_global_opts(
  title_opts=opts.TitleOpts(
  pos_left="10%",
  pos_top="90%",
  title="upper:Q3+1.5*IQRnlower:Q1-1.5*IQR",
  title_textstyle_opts=opts.TextStyleOpts(
  border_color="#999",border_width=1,font_size=14
  ),
  ),
  yaxis_opts=opts.AxisOpts(
  axislabel_opts=opts.LabelOpts(is_show=False),
  axistick_opts=opts.AxisTickOpts(is_show=False),
  ),
  )
  )
  grid=(
  Grid(init_opts=opts.InitOpts(width="1200px",height="600px"))
  .add(
  box_plot,
  grid_opts=opts.GridOpts(pos_left="10%",pos_right="10%",pos_bottom="15%"),
  )
  .add(
  scatter,
  grid_opts=opts.GridOpts(pos_left="10%",pos_right="10%",pos_bottom="15%"),
  )
  .render("第一个箱形图.html")
  )

03.png

  其实对于这个图形的绘制我个人觉得掌握好一定技巧,绘制图形并不难,主要是你要知道一定数据分析方法,不然空谈数据可视也是枉然。


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来更多帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128274.html

相关文章

  • 数据视化Seaborn从零开始学习教程(四) 分类数据视化

    摘要:分类数据散点图在分类数据的基础上展示定量数据的最简单函数就是。此外,小提琴内还显示了箱体四分位数和四分位距。该函数会用高度估计值对数据进行描述,而不是显示一个完整的条形,它只绘制点估计和置信区间。 作者:xiaoyu微信公众号:Python数据科学知乎:python数据分析师 Seaborn学习大纲 seaborn的学习内容主要包含以下几个部分: 风格管理 绘图风格设置 颜色风...

    CodeSheep 评论0 收藏0
  • Python一行代码搞定炫酷视化,你需要了解一下Cufflinks

    摘要:有一个专门生成随机数的方法,叫做,用于生成不同维度的随机数据,比如下面。线图使用生成随机数定义为形式,数据为然后再用绘制这一组时间序列,参数设置展现三个不同周期的时序分析。 作者:xiaoyu 微信公众号:Python数据科学 知乎:python数据分析师 showImg(https://segmentfault.com/img/remote/1460000019825954); 前...

    microcosm1994 评论0 收藏0
  • Python绘制折线图视化神器pyecharts案例

      小编写这篇文章的主要目的,主要是用来进行绘制折线图,在绘制的时候,用到的是Python这门语言,主要应用到的技能是Python pyecharts,利用它去进行绘制折线图,下面小编就以案例的形式,去给大家详细的做个介绍。  前言  相信有很多的小伙伴看了如此多个案例之后肯定有所发现,每一个案例都对应着每一个配置,如果是官方配置文档,说实话看起来真的很难,这样通过案例实现来解决各种参数的配置,我...

    89542767 评论0 收藏0
  • 如何使用Python pyecharts绘制仪表盘

      小编写这篇文章的主要目的,主要还是去进行讲解一些关于Python pyecharts绘制仪表盘的一些讲解,具体怎么去进行操作呢?下面就给大家详细解答下。  仪表盘  仪表盘的效果我只能说炫酷而已,如果想要运用在实际的场景中,我其实也不清楚那个场景比较适合,但是pyecharts毕竟是炫酷可视化的利器,炫酷自然也就有它了。  小汽车仪表盘是长这样的,下面我们来看看pyecharts的仪表盘是怎么...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<