import pyecharts.options as opts
from pyecharts.charts import Boxplot
from pyecharts.commons.utils import JsCode
axis_data = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
]
data = [
{
"axisData": axis_data,
"boxData": [
[
3.8888578346043534,
55.82692798765428,
98.71608835477272,
149.50917642877687,
196.31621070646452,
],
[
0.5174326704765253,
47.52990128406776,
103.66600287106233,
160.1380046605997,
194.8294269298398,
],
[
2.843900448603165,
51.773788199388605,
90.66830693679475,
152.19938074181786,
196.18172012742428,
],
[
2.6752702891334135,
42.85051429480143,
98.54433643572133,
166.81852013033875,
199.7400516615198,
],
[
1.665511467481906,
63.069856326089585,
123.20638438572043,
164.0932194814393,
199.56631692214057,
],
[
0.3597414263118992,
52.84424125860876,
108.14491539985673,
154.42390255012828,
199.39872381823812,
],
[
1.3380322954592128,
41.989379994726335,
100.39118095266713,
160.38742881881478,
197.8251968350275,
],
[
1.7005873932608662,
43.88170786936796,
92.29415890464293,
140.7858956683471,
197.50510824352313,
],
[
1.7017445023542965,
52.55872982785781,
90.26972335102536,
155.43082163069883,
198.31679368721197,
],
[
0.45657888665799895,
47.60747957375436,
95.53917053451289,
162.55256484073354,
199.78317232079928,
],
[
1.745438082254136,
53.450845301261964,
95.8847297380051,
143.99885640751006,
195.1863502057908,
],
[
2.5631287114048273,
56.04486879215165,
110.01592256847306,
155.33508398386462,
195.90291395560985,
],
[
3.4380745785991262,
58.07888602010247,
105.64925213947652,
165.50126442985191,
199.75877487248675,
],
[
0.03322930419802361,
53.363159200883985,
95.32936635574816,
151.39772626598614,
198.20394907387762,
],
[
0.7063564158257929,
73.89369564248534,
116.6947935806626,
152.93983211466667,
197.1481400480321,
],
[
0.9611585600880268,
46.64283650085793,
102.32004406296502,
148.64094149067978,
199.59803470854715,
],
[
1.4310036755643463,
50.15631363530299,
102.68128938225942,
147.52573154872948,
197.6018158750086,
],
[
0.492994684970105,
43.23619663302313,
99.60815322547333,
140.00299600143438,
198.97693156537883,
],
],
"outliers": [],
},
{
"axisData": axis_data,
"boxData": [
[
1.3866777918670525,
52.723984144413805,
112.16068484025186,
148.07060013196633,
196.6493886555634,
],
[
0.8675025485252785,
41.94008605353009,
90.4944101654473,
134.34314089904032,
199.57411732908722,
],
[
2.109917782227244,
47.361245156921306,
98.03121935506474,
152.57304498745683,
199.6655667235125,
],
[
0.835914742081334,
45.90386054869363,
110.8008994981315,
153.77050147012113,
198.17687983907325,
],
[
0.09929780808608513,
55.313979741487245,
80.36049651385588,
144.5076321261422,
198.71007594348265,
],
[
4.3591904343687204,
53.098201381124454,
88.8716562277704,
134.2243571501588,
197.86166497124387,
],
[
1.4751642002043486,
52.87727910767818,
98.1167484613283,
129.123794134296,
199.26128215126036,
],
[
1.0208468961246275,
59.72883452828452,
93.7117188714775,
133.6955646934541,
199.04002574913483,
],
[
5.700580454086168,
62.30214699943758,
109.4858546359291,
144.37435834128183,
196.80025087232633,
],
[
3.8776389962399627,
47.07485197991684,
108.77911010272065,
143.55929331063112,
199.78963194031576,
],
[
0.9206486824532956,
56.531536633466786,
103.22722183226676,
153.71850265606832,
199.26707930050713,
],
[
1.2238397462105866,
42.37213742602606,
85.0161099008823,
144.6618761115177,
195.68883739488717,
],
[
1.383845313528731,
55.58975449585246,
101.2502031542653,
155.4651069256266,
198.51896538541257,
],
[
2.460600698918336,
45.35279677561122,
86.22855211501036,
142.2985968944624,
196.88095181245973,
],
[
1.5771786133238486,
47.74919144071982,
98.25948642595273,
143.6080569193598,
199.35657813436302,
],
[
1.679597195618454,
54.03099324959242,
93.24925248108138,
156.2197398880975,
199.96087190538344,
],
[
0.09445769268561222,
62.987289799985746,
93.5536375308287,
146.10299624484736,
198.89381360902073,
],
[
0.5074418255246016,
43.16902467382945,
97.5036007943674,
150.07249687988744,
197.1438186145631,
],
],
"outliers": [],
},
{
"axisData": axis_data,
"boxData": [
[
0.17336583192690824,
38.89251480694969,
95.24827036951726,
144.42455874548153,
199.4034309165705,
],
[
3.676663641014155,
56.915752270243615,
116.52533365244228,
154.9613826361874,
199.45242610474344,
],
[
0.2637149176087039,
39.10809721270764,
83.11646124189903,
145.85305644883107,
199.4425993969723,
],
[
0.9435517891188017,
59.34726771939571,
116.9100457332774,
154.6830501745436,
197.360203327316,
],
[
3.979089227580568,
59.55958857930115,
106.50956069508263,
154.19233153204274,
198.27863048295953,
],
[
0.2254389425328185,
45.14272916122666,
101.99744565544017,
158.20585382578935,
199.87918467096276,
],
[
0.4981747166813655,
55.07500323828029,
98.06775843874871,
142.6740673515219,
196.17733451641203,
],
[
3.459413844168191,
48.45434370508197,
90.08287035261958,
144.44636703035508,
196.7330418635301,
],
[
5.491046107788211,
51.726853187011294,
102.73451029578627,
144.81711164442441,
198.8867176824325,
],
[
0.7550472434538769,
52.51096431201062,
107.88318214869264,
159.26961432919137,
199.61830476130777,
],
[
0.2752001848587593,
48.7398963427885,
89.75616732426943,
142.05594236584855,
198.3147751483816,
],
[
1.4946063684317945,
47.50894653631401,
98.11186814575922,
138.51943571666908,
193.3052139732351,
],
[
0.20882224269564986,
51.28631550804623,
107.81597798598389,
160.02354609263347,
199.2878557923929,
],
[
0.8976637474841898,
43.66029575375894,
100.62231619788403,
139.9661197041632,
192.54845617677,
],
[
5.859745717489284,
47.03805156535355,
108.41470873842098,
157.096784096105,
199.9179863824041,
],
[
3.7257707586363598,
42.231249941095996,
97.356821000705,
142.79191220154834,
198.84036692134,
],
[
1.8454208635465985,
44.91333687646406,
98.65350096972611,
143.39018022926803,
199.87483964263296,
],
[
0.5514923538800787,
45.85216189462081,
99.9806157446917,
153.32082407525542,
198.2776454910153,
],
],
"outliers": [],
},
{
"axisData": axis_data,
"boxData": [
[
0.7168805200240325,
46.53681449735687,
97.29254353668016,
156.63006806530143,
199.3015739378797,
],
[
1.7193486665883828,
62.95172603462959,
112.02740143118092,
156.0538383864632,
199.26142301676774,
],
[
2.1369256823901672,
57.21732276358834,
103.36834727083514,
153.72092303549277,
198.79539179393552,
],
[
0.032880351113817596,
47.562260234793726,
96.26764103515997,
145.73458375286407,
199.06617414977254,
],
[
0.4401537603581307,
43.865273442582165,
94.93675834281308,
146.35738146359748,
193.64127816517245,
],
[
0.3961689590249673,
50.96909350725202,
104.73604524329194,
148.23414082526403,
198.8856874527377,
],
[
0.21937305368529003,
49.59183574690416,
102.85949468466653,
163.6266324963084,
199.69745130954797,
],
[
0.6248639849676607,
43.65587924550377,
98.38900488209111,
152.00850019757138,
197.66849547068205,
],
[
0.8836653304501674,
51.715354680095054,
106.27634207918453,
152.75520182409605,
198.7026018674421,
],
[
7.037170236614809,
60.499053468218285,
99.70265208133726,
145.547153860169,
197.56589704383606,
],
[
0.191005947981715,
36.77501191389064,
78.79138996882105,
138.31773623910374,
199.5549011391389,
],
[
2.085660638228548,
50.85562917320624,
100.31437027035244,
144.07227532917557,
199.9671689855977,
],
[
2.8329465269889997,
46.64735576556238,
95.58042897665536,
150.95016495791145,
199.01002263253537,
],
[
2.9140730838620232,
55.8981643150491,
99.12490122897461,
138.35381332244458,
197.89764340001602,
],
[
0.6900722343886834,
61.20627193426343,
108.73896996351209,
152.38197094149575,
199.49695739258172,
],
[
0.3519848056308117,
51.38799178079926,
108.74191700174138,
146.60812022274987,
198.09008264810322,
],
[
0.2761553645218129,
56.388967149570455,
104.8697135719724,
153.5049030271958,
199.5731857965878,
],
[
3.5557869592812708,
46.14828237062535,
108.66363220203428,
160.07663258712037,
199.1028921688903,
],
],
"outliers": [],
},
{
"axisData": axis_data,
"boxData": [
[
2.979477505147443,
39.75713406508555,
94.53079422141971,
156.08283690923398,
199.44795240229735,
],
[
2.6484190473881064,
39.93623770385512,
77.27669464380185,
128.4315475425753,
199.56482718369725,
],
[
0.027555734890816197,
57.0338837796717,
108.81399073964846,
148.06814743102228,
199.60110925244555,
],
[
5.095524117378636,
61.306047315630614,
110.93776130670011,
156.1408460056575,
195.24807037634693,
],
[
2.728611345602383,
44.56605304153001,
82.24512299722713,
147.52018338217582,
197.4401254594119,
],
[
3.2844003726598903,
31.22917030540313,
98.82341804522095,
147.37909270120065,
195.31234405750303,
],
[
0.18212434446978065,
59.703454603359305,
103.67261216911498,
144.78603398715182,
197.894221292169,
],
[
2.0723859910971587,
65.62630968779271,
108.08425190082599,
153.04828999176155,
198.71953877580813,
],
[
0.9675695750262392,
52.06976077477188,
106.44774448853506,
153.71491587328123,
199.9367145735771,
],
[
2.5328359424461766,
54.040914797213425,
98.74095548976766,
156.68297214273787,
199.54362057796757,
],
[
1.1331529861684952,
44.39864814947693,
88.34657630798353,
137.22778263394855,
198.83623456218217,
],
[
0.03400372259445561,
39.0412178839992,
82.44989003395962,
142.39781316172628,
198.66240858068616,
],
[
3.3739669830866514,
51.553716623716575,
113.01026058884891,
165.92964939460416,
198.22988431223231,
],
[
1.7144280578984095,
52.52972703008254,
97.47299182400204,
134.9644807802092,
198.46967348342878,
],
[
1.7893968468841948,
43.87294943558785,
90.42735899685948,
143.0586276081752,
197.6798595904976,
],
[
4.299131337916773,
50.29192506963852,
104.5869339834448,
163.2705302681331,
199.10157077449355,
],
[
0.6740610620747933,
54.02651804107089,
86.12616850846155,
137.7008290515613,
199.78999859299336,
],
[
0.5370189113081292,
50.44519588101707,
98.08928065026996,
139.8482090057953,
197.20820681141507,
],
],
"outliers": [],
},
]
(
Boxplot()
.add_xaxis(xaxis_data=axis_data)
.add_yaxis(
series_name="category0",
y_axis=data[0]["boxData"],
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"""function(param) { return [
'Experiment ' + param.name + ': ',
'upper: ' + param.data[0],
'Q1: ' + param.data[1],
'median: ' + param.data[2],
'Q3: ' + param.data[3],
'lower: ' + param.data[4]
].join('<br/>') }"""
)
),
)
.add_yaxis(
series_name="category1",
y_axis=data[1]["boxData"],
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"""function(param) { return [
'Experiment ' + param.name + ': ',
'upper: ' + param.data[0],
'Q1: ' + param.data[1],
'median: ' + param.data[2],
'Q3: ' + param.data[3],
'lower: ' + param.data[4]
].join('<br/>') }"""
)
),
)
.add_yaxis(
series_name="category2",
y_axis=data[2]["boxData"],
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"""function(param) { return [
'Experiment ' + param.name + ': ',
'upper: ' + param.data[0],
'Q1: ' + param.data[1],
'median: ' + param.data[2],
'Q3: ' + param.data[3],
'lower: ' + param.data[4]
].join('<br/>') }"""
)
),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Multiple Categories", pos_left="center"),
legend_opts=opts.LegendOpts(pos_top="3%"),
tooltip_opts=opts.TooltipOpts(trigger="item", axis_pointer_type="shadow"),
xaxis_opts=opts.AxisOpts(
name_gap=30,
boundary_gap=True,
splitarea_opts=opts.SplitAreaOpts(
areastyle_opts=opts.AreaStyleOpts(opacity=1)
),
axislabel_opts=opts.LabelOpts(formatter="expr {value}"),
splitline_opts=opts.SplitLineOpts(is_show=False),
),
yaxis_opts=opts.AxisOpts(
type_="value",
min_=-400,
max_=600,
splitarea_opts=opts.SplitAreaOpts(is_show=False),
),
datazoom_opts=[
opts.DataZoomOpts(type_="inside", range_start=0, range_end=20),
opts.DataZoomOpts(type_="slider", xaxis_index=0, is_show=True),
],
)
.render("multiple_categories.html")
)
<iframe width="100%" height="800px" src="Boxplot/multiple_categories.html"></iframe>