脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python pyecharts Boxplot箱线图的实现

Python pyecharts Boxplot箱线图的实现

2023-02-21 12:56温欣' Python

本文主要介绍了Python pyecharts Boxplot箱线图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本篇博客只是单纯的记录一下自己学习Boxplot,没有过多的解释,官网:》》Boxplot

import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
from datetime import datetime
plt.figure(figsize=(16,10))
import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.faker import Faker
from pyecharts.charts import Bar
import os
from pyecharts.options.global_options import ThemeType
cnboo=pd.read_excel("c.xls")

处理数据:

cnbotypegb=cnboo.groupby(['TYPE','SHOWYEAR'])['BO'].sum().replace()
cnbotypegbrst=cnbotypegb.reset_index().replace()

Python pyecharts Boxplot箱线图的实现

filmtype=cnbotypegbrst['TYPE'].unique()

Python pyecharts Boxplot箱线图的实现

对行标签和列标签进行转置:

cnbotypegbrst.T.index
cnbopvt=cnbotypegbrst.pivot(index='TYPE',
                         columns='SHOWYEAR',
                          values='BO'
                         )

Python pyecharts Boxplot箱线图的实现

cnbopvtv2=cnbopvt.iloc[:,2:].replace()
cnbopvtv2.index
cnbopvtv2=cnbopvtv2.fillna(0).replace()

Python pyecharts Boxplot箱线图的实现

xlist=cnbopvtv2.index.tolist()

xlist一共有12个,因此循环12次:

y_data=[]
for i in range(0,12):
  y_data.append(cnbopvtv2.iloc[i].tolist())

得到的y_data数据:

[[47923.0,
64988.0,
0.0,
80506.0,
0.0,
69628.0,
69960.0,
0.0,
104853.0,
539542.0,
157535.0],
[48249.0,
160800.0,
153735.0,
336616.0,
370696.0,
263476.0,
916503.0,
1010848.0,
1828313.0,
1835840.0,
875026.0],
[30916.0,
160800.0,
86419.0,
65659.0,
39472.0,
263476.0,
201318.0,
309825.0,
226052.0,
1835840.0,
152997.0],
[30916.0,
160800.0,
18648.0,
65659.0,
39472.0,
263476.0,
201318.0,
309825.0,
226052.0,
1835840.0,
152997.0],
[53837.0,
91838.0,
36093.0,
100303.0,
58872.0,
285139.0,
647028.0,
451028.0,
765806.0,
1063170.0,
454325.0],
[53837.0,
22874.0,
14934.0,
100303.0,
124699.0,
285139.0,
320647.0,
430395.0,
235246.0,
89988.0,
15283.0],
[20510.0,
22874.0,
14934.0,
18806.0,
124699.0,
41184.0,
320647.0,
430395.0,
235246.0,
89988.0,
15283.0],
[40329.0,
22874.0,
85732.0,
36994.0,
124699.0,
41184.0,
320647.0,
430395.0,
118754.0,
89988.0,
15283.0],
[44745.0,
22874.0,
85732.0,
36994.0,
124699.0,
41184.0,
62967.0,
430395.0,
118754.0,
89988.0,
15283.0],
[28092.0,
72729.0,
82385.0,
182193.0,
255790.0,
259325.0,
62967.0,
160092.0,
118754.0,
136152.0,
112725.0],
[51321.0,
213633.0,
148063.0,
225026.0,
258684.0,
563843.0,
344841.0,
82557.0,
179793.0,
139666.0,
465533.0],
[15524.0,
38100.0,
86684.0,
225026.0,
31579.0,
150820.0,
344841.0,
82557.0,
179793.0,
139666.0,
465533.0]]

最后绘制图表:

import pyecharts.options as opts
from pyecharts.charts import Grid, Boxplot, Scatter

scatter_data = [650, 620, 720, 720, 950, 970]

box_plot = Boxplot({"Theme":ThemeType.ESSOS})

box_plot = (
  box_plot.add_xaxis(xaxis_data=xlist)
  .add_yaxis(series_name="", y_axis=box_plot.prepare_data(y_data))
  .set_global_opts(
      title_opts=opts.TitleOpts(
          pos_left="center",      ),
      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="{value}"),
          splitline_opts=opts.SplitLineOpts(is_show=False),
      ),
      yaxis_opts=opts.AxisOpts(
          type_="value",
          name="票房(万元)",
          splitarea_opts=opts.SplitAreaOpts(
              is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
          ),
      ),
  )
  .set_series_opts(tooltip_opts=opts.TooltipOpts(formatter="{a}: {c}"))
)# {a}:系列名称,{b}:数据名称,{c}:数值数组,{d}:无

scatter = (
  Scatter()
  .add_xaxis(xaxis_data=xlist)
  .add_yaxis(series_name="", y_axis=scatter_data)
  .set_global_opts(
      title_opts=opts.TitleOpts(
          pos_left="10%",
          pos_top="90%",
          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="600px", height="400px"))
  .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%"),
  )
)
grid.render_notebook()

Python pyecharts Boxplot箱线图的实现

也可以直接使用下面的代码,简单的绘制一张图:

boxplot=(Boxplot()
      .add_xaxis(xlist)
      .add_yaxis("电影数据",y_data)
      )
boxplot.render_notebook()

Python pyecharts Boxplot箱线图的实现

到此这篇关于Python pyecharts Boxplot箱线图的实现的文章就介绍到这了,更多相关Python pyecharts Boxplot箱线图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/wxfighting/article/details/123775978

延伸 · 阅读

精彩推荐
  • PythonPython学习_几种存取xls/xlsx文件的方法总结

    Python学习_几种存取xls/xlsx文件的方法总结

    今天小编就为大家分享一篇Python学习_几种存取xls/xlsx文件的方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Joy_Shen14892021-02-15
  • Python利用python进行数据加载

    利用python进行数据加载

    今天给大家带来的是关于Python的相关知识,文章围绕着python数据加载展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...

    weixin_418329703982021-12-05
  • PythonPython 带你快速上手 Apache APISIX 插件开发

    Python 带你快速上手 Apache APISIX 插件开发

    Apache APISIX Python Runner 来了,社区中的小伙伴们在开发 Apache APISIX 插件时又多了一种新选择,本文将用实列向大家介绍,需要的朋友可以参考下面文章内容...

    Apache_APISIX7022022-01-07
  • PythonPython爬虫实战之虎牙视频爬取附源码

    Python爬虫实战之虎牙视频爬取附源码

    读万卷书不如行万里路,学的扎不扎实要通过实战才能看出来,本篇文章手把手带你爬取虎牙短视频数据,大家可以在实战过程中查缺补漏,加深学习...

    松鼠爱吃饼干3802022-01-25
  • Pythonpython从网络读取图片并直接进行处理的方法

    python从网络读取图片并直接进行处理的方法

    这篇文章主要介绍了python从网络读取图片并直接进行处理的方法,涉及cStringIO模块模拟本地文件的使用技巧,需要的朋友可以参考下 ...

    pythoner5982020-07-05
  • PythonKeras 如何修改图片通道的顺序

    Keras 如何修改图片通道的顺序

    这篇文章主要介绍了Keras 修改图片通道顺序的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    autoliuweijie10012021-11-03
  • Pythonpython代理工具mitmproxy使用指南

    python代理工具mitmproxy使用指南

    这篇文章主要介绍了python mitmproxy 使用指南,mitmproxy 可以用来拦截、修改、保存 HTTP/HTTPS 请求。以命令行终端形式呈现,类似于 Chrome 浏览器开发者模式的可...

    FOOFISH-PYTHON之禅7092021-07-31
  • PythonDjango中的Signal代码详解

    Django中的Signal代码详解

    这篇文章主要介绍了Django中的Signal代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    SuPhoebe6072021-01-12