利用Boxplot写箱线图的代码是什么
Admin 2022-08-18 群英技术资讯 946 次浏览
这篇文章主要介绍“ 利用Boxplot写箱线图的代码是什么”,有一些人在 利用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()

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

对行标签和列标签进行转置:
cnbotypegbrst.T.index
cnbopvt=cnbotypegbrst.pivot(index='TYPE',
columns='SHOWYEAR',
values='BO'
)

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

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", 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()

也可以直接使用下面的代码,简单的绘制一张图:
boxplot=(Boxplot()
.add_xaxis(xlist)
.add_yaxis("电影数据",y_data)
)
boxplot.render_notebook()

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要介绍的python排序算法的实现,下本有冒泡排序、选择排序、插入排序、快速排序这四种排序的算法实现步骤以及实现的介绍,和四种算法实现的比较,具有一定的参考价值。下面一起跟随小编看看吧。
这篇文章主要为大家详细介绍了Python使用sftp实现上传和下载功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
应表会传网数物:应用层、表示层、会话层: (这三层又可以合并为应用层,这样就是五层网络协议【osi五层协议】) python '你好'.encoding('utf-8')
今天带大家了解一下python爬虫的基础知识,文中有非常详细的解释说明,对正在学习python爬虫的小伙伴们有很好地帮助,需要的朋友可以参考下
django是用Python开发的一个免费开源的web框架,能帮助我们快速搭建高性能的网站。这篇文章就给大家分享关于django的基础知识,主要介绍django上传文件的方式以及注意事项,下面我们一起来看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008