小編寫(xiě)這篇文章的主要目的,主要是給大家做一個(gè)詳細(xì)的介紹,介紹的內(nèi)容是Python可視化神器,這個(gè)神器指的是pyecharts,那么,怎么樣利用這種語(yǔ)言去進(jìn)行繪制箱型圖呢?下面小編就給大家詳細(xì)解答下。
概念
后面的圖形都是一些專(zhuān)業(yè)的統(tǒng)計(jì)圖形,當(dāng)然也會(huì)是我們可視化的對(duì)象。
箱形圖(Box-plot)又稱(chēng)為盒須圖、盒式圖或箱線(xiàn)圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計(jì)圖。因形狀如箱子而得名。在各種領(lǐng)域也經(jīng)常被使用,常見(jiàn)于品質(zhì)管理。它主要用于反映原始數(shù)據(jù)分布的特征,還可以進(jìn)行多組數(shù)據(jù)分布特征的比較。箱線(xiàn)圖的繪制方法是:先找出一組數(shù)據(jù)的上邊緣、下邊緣、中位數(shù)和兩個(gè)四分位數(shù);然后,連接兩個(gè)四分位數(shù)畫(huà)出箱體;再將上邊緣和下邊緣與箱體相連接,中位數(shù)在箱體中間。
用處
1.直觀(guān)明了地識(shí)別數(shù)據(jù)批中的異常值
上文講了很久的識(shí)別異常值,其實(shí)箱線(xiàn)圖判斷異常值的標(biāo)準(zhǔn)以四分位數(shù)和四分位距為基礎(chǔ),四分位數(shù)具有一定的耐抗性,多達(dá)25%的數(shù)據(jù)可以變得任意遠(yuǎn)而不會(huì)很大地?cái)_動(dòng)四分位數(shù),所以異常值不會(huì)影響箱形圖的數(shù)據(jù)形狀,箱線(xiàn)圖識(shí)別異常值的結(jié)果比較客觀(guān)。由此可見(jiàn),箱線(xiàn)圖在識(shí)別異常值方面有一定的優(yōu)越性。
2.利用箱線(xiàn)圖判斷數(shù)據(jù)批的偏態(tài)和尾重
對(duì)于標(biāo)準(zhǔn)正態(tài)分布的樣本,只有極少值為異常值。異常值越多說(shuō)明尾部越重,自由度越?。醋杂勺儎?dòng)的量的個(gè)數(shù));
而偏態(tài)表示偏離程度,異常值集中在較小值一側(cè),則分布呈左偏態(tài);異常值集中在較大值一側(cè),則分布呈右偏態(tài)。
3.利用箱線(xiàn)圖比較幾批數(shù)據(jù)的形狀
同一數(shù)軸上,幾批數(shù)據(jù)的箱線(xiàn)圖并行排列,幾批數(shù)據(jù)的中位數(shù)、尾長(zhǎng)、異常值、分布區(qū)間等形狀信息便昭然若揭。如上圖,可直觀(guān)得看出第三季度各分公司的銷(xiāo)售額大體都在下降。
箱形圖系列模板
第一個(gè)箱形圖
說(shuō)實(shí)話(huà)這類(lèi)圖形的繪制,如果不懂專(zhuān)業(yè)的知識(shí)可能也無(wú)法理解,對(duì)于如何深層次的理解這個(gè)圖形的具體含義,請(qǐng)移步到其他專(zhuān)欄,我會(huì)詳細(xì)介紹,這里就不做過(guò)多的解釋了。
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="標(biāo)題")) c.render("簡(jiǎn)單示例.html") print(c.prepare_data(v1))
復(fù)雜一點(diǎn)的圖例
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=":{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("第一個(gè)箱形圖.html") )
其實(shí)對(duì)于這個(gè)圖形的繪制我個(gè)人覺(jué)得掌握好一定技巧,繪制圖形并不難,主要是你要知道一定數(shù)據(jù)分析方法,不然空談數(shù)據(jù)可視也是枉然。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)更多幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128274.html
摘要:分類(lèi)數(shù)據(jù)散點(diǎn)圖在分類(lèi)數(shù)據(jù)的基礎(chǔ)上展示定量數(shù)據(jù)的最簡(jiǎn)單函數(shù)就是。此外,小提琴內(nèi)還顯示了箱體四分位數(shù)和四分位距。該函數(shù)會(huì)用高度估計(jì)值對(duì)數(shù)據(jù)進(jìn)行描述,而不是顯示一個(gè)完整的條形,它只繪制點(diǎn)估計(jì)和置信區(qū)間。 作者:xiaoyu微信公眾號(hào):Python數(shù)據(jù)科學(xué)知乎:python數(shù)據(jù)分析師 Seaborn學(xué)習(xí)大綱 seaborn的學(xué)習(xí)內(nèi)容主要包含以下幾個(gè)部分: 風(fēng)格管理 繪圖風(fēng)格設(shè)置 顏色風(fēng)...
摘要:有一個(gè)專(zhuān)門(mén)生成隨機(jī)數(shù)的方法,叫做,用于生成不同維度的隨機(jī)數(shù)據(jù),比如下面。線(xiàn)圖使用生成隨機(jī)數(shù)定義為形式,數(shù)據(jù)為然后再用繪制這一組時(shí)間序列,參數(shù)設(shè)置展現(xiàn)三個(gè)不同周期的時(shí)序分析。 作者:xiaoyu 微信公眾號(hào):Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 showImg(https://segmentfault.com/img/remote/1460000019825954); 前...
小編寫(xiě)這篇文章的主要目的,主要是用來(lái)進(jìn)行繪制折線(xiàn)圖,在繪制的時(shí)候,用到的是Python這門(mén)語(yǔ)言,主要應(yīng)用到的技能是Python pyecharts,利用它去進(jìn)行繪制折線(xiàn)圖,下面小編就以案例的形式,去給大家詳細(xì)的做個(gè)介紹?! ∏把浴 ∠嘈庞泻芏嗟男』锇榭戳巳绱硕鄠€(gè)案例之后肯定有所發(fā)現(xiàn),每一個(gè)案例都對(duì)應(yīng)著每一個(gè)配置,如果是官方配置文檔,說(shuō)實(shí)話(huà)看起來(lái)真的很難,這樣通過(guò)案例實(shí)現(xiàn)來(lái)解決各種參數(shù)的配置,我...
小編寫(xiě)這篇文章的主要目的,主要還是去進(jìn)行講解一些關(guān)于Python pyecharts繪制儀表盤(pán)的一些講解,具體怎么去進(jìn)行操作呢?下面就給大家詳細(xì)解答下。 儀表盤(pán) 儀表盤(pán)的效果我只能說(shuō)炫酷而已,如果想要運(yùn)用在實(shí)際的場(chǎng)景中,我其實(shí)也不清楚那個(gè)場(chǎng)景比較適合,但是pyecharts畢竟是炫酷可視化的利器,炫酷自然也就有它了?! ⌒∑?chē)儀表盤(pán)是長(zhǎng)這樣的,下面我們來(lái)看看pyecharts的儀表盤(pán)是怎么...
閱讀 923·2023-01-14 11:38
閱讀 895·2023-01-14 11:04
閱讀 756·2023-01-14 10:48
閱讀 2055·2023-01-14 10:34
閱讀 961·2023-01-14 10:24
閱讀 840·2023-01-14 10:18
閱讀 510·2023-01-14 10:09
閱讀 588·2023-01-14 10:02