文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python pyecharts Boxplot箱线图如何实现

2023-06-30 17:37

关注

本篇内容主要讲解“Python pyecharts Boxplot箱线图如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python pyecharts Boxplot箱线图如何实现”吧!

import seaborn as snsimport numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as plt%matplotlib inlineplt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号from datetime import datetimeplt.figure(figsize=(16,10))import pyecharts.options as optsfrom pyecharts.charts import Linefrom pyecharts.faker import Fakerfrom pyecharts.charts import Barimport osfrom 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 optsfrom pyecharts.charts import Grid, Boxplot, Scatterscatter_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", title="2009-2019中国电影票房分类箱型图"        ),        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="upper: Q3 + 1.5 * IQR \nlower: 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="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箱线图如何实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯