欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python獲取excel的數(shù)據(jù)并繪制箱型圖和直方圖的方法實(shí)例

 更新時(shí)間:2023年12月12日 09:43:03   作者:db_gjq_2038  
這篇文章主要給大家介紹了關(guān)于Python獲取excel的數(shù)據(jù)并繪制箱型圖和直方圖的相關(guān)資料,好的圖表能幫助我們深化數(shù)據(jù)的記憶點(diǎn),文中通過(guò)圖文以及代碼示例將實(shí)現(xiàn)的方法介紹的非常詳細(xì),需要的朋友可以參考下

根據(jù)箱型圖、直方圖的代碼和數(shù)據(jù)的條件查詢(xún)方法,畫(huà)出航空公司男性和女性用戶(hù)的年齡分布箱型圖直方圖。

圖形簡(jiǎn)介

1. 箱線(xiàn)圖

箱線(xiàn)圖(Box-plot)又稱(chēng)為盒式圖或箱型圖,箱型圖是用來(lái)表示一組數(shù)據(jù)的分布(統(tǒng)計(jì)不同取值可能出現(xiàn)的次數(shù))。

25%分位數(shù)(下四分位數(shù)):序列中有25%的數(shù)據(jù)小于這個(gè)數(shù)

中位數(shù)(50%分位數(shù)):序列中有50%的數(shù)據(jù)小于這個(gè)數(shù)

75%分位數(shù)(上四分位數(shù)):序列中有75%的數(shù)據(jù)小于這個(gè)數(shù)

最大值:序列100%的數(shù)據(jù)小于這個(gè)數(shù)

最小值:序列沒(méi)有數(shù)據(jù)小于這個(gè)數(shù)

2.直方圖

直方圖(Bar),形狀類(lèi)似柱狀圖卻有著與柱狀圖完全不同的含義。直方圖牽涉統(tǒng)計(jì)學(xué)概念,首先要對(duì)數(shù)據(jù)進(jìn)行分組,然后統(tǒng)計(jì)每個(gè)分組內(nèi)數(shù)據(jù)元的數(shù)量。在平面直角坐標(biāo)系中,橫軸標(biāo)出每個(gè)組的端點(diǎn),縱軸表示頻數(shù),每個(gè)矩形的高代表對(duì)應(yīng)的頻數(shù),這樣的統(tǒng)計(jì)圖稱(chēng)為頻數(shù)分布直方圖。

頻數(shù)分布直方圖需要經(jīng)過(guò)頻數(shù)乘以組距的計(jì)算過(guò)程才能得出每個(gè)分組的數(shù)量,同一個(gè)直方圖的組距是一個(gè)固定不變的值,所以如果直接用縱軸表示數(shù)量,每個(gè)矩形的高代表對(duì)應(yīng)的數(shù)據(jù)元數(shù)量,既能保持分布狀態(tài)不變,又能直觀地看出每個(gè)分組的數(shù)量,如下圖所示

引入模塊

首先我們的目的是獲取excel文件并作圖,那么就要引入相關(guān)的模塊

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Boxplot
from pyecharts.charts import Bar

若沒(méi)有pandas和pyecharts這兩個(gè)模塊!

就需要在cmd命令窗口或Anaconda Prompt窗口輸入以下命令:

pip install pandas
pip install pyecharts

---------------------------------------------------------------------------------------------------------------------------------

Pandas 是 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù),用于數(shù)據(jù)分析。

pyecharts是一款將python與echarts結(jié)合的強(qiáng)大的數(shù)據(jù)可視化工具。Echarts 是百度開(kāi)源的一個(gè)數(shù)據(jù)可視化 JS 庫(kù), Echarts可以生成非常棒的可視化交互圖,pyecharts的開(kāi)發(fā)讓在python平臺(tái)上也可以直接使用數(shù)據(jù)生成圖。

獲取數(shù)據(jù)

利用pandas中的方法獲取指定文件指定工作表中的全部數(shù)據(jù),其數(shù)據(jù)是一個(gè)列表形式,注意這里’航空公司數(shù)據(jù)-剔除空年齡.xlsx‘文件與當(dāng)前寫(xiě)的xx.ipynb文件需要在同一文件夾內(nèi)才能獲取到數(shù)據(jù),因?yàn)槲沂褂玫氖窍鄬?duì)路徑,也可以使用絕對(duì)路徑來(lái)獲取‘航空公司數(shù)據(jù)-剔除空年齡.xlsx’文件。

下面是用相對(duì)路徑來(lái)獲取。

data = pd.read_excel(r'航空公司數(shù)據(jù)-剔除空年齡.xlsx')
data

 或者用絕對(duì)路徑來(lái)獲取。

data = pd.read_excel(r'D:\新建文件夾 (2)\航空公司數(shù)據(jù)-剔除空年齡.xlsx')
data

處理數(shù)據(jù)

根據(jù)性別來(lái)分開(kāi)查詢(xún)數(shù)據(jù)

表格對(duì)象中實(shí)現(xiàn)條件查詢(xún)的方法:

data1 = data['性別']=="男"
data2 = data['性別']=="女"
data11=data.loc[data1,:]
data11
data22=data.loc[data2,:]
data22

做完以上步驟再把年齡提取出來(lái)

y1 = [data11['年齡'].tolist()]
y2 = [data22['年齡'].tolist()]

畫(huà)圖

箱型圖

畫(huà)圖前先把年齡的最小值,下四分位數(shù),中位數(shù),上四分位數(shù),最大值提取出來(lái)

男性年齡

c = Boxplot()
c.prepare_data(y1)

女性年齡 

c = Boxplot()
c.prepare_data(y2)

完成以上步驟開(kāi)始畫(huà)圖

c = Boxplot() # 先創(chuàng)建出圖形對(duì)象
c.add_xaxis([""])  # 必須輸入,但多數(shù)時(shí)候不需要
c.add_yaxis("男", 
            c.prepare_data(y1), # 數(shù)據(jù)經(jīng)過(guò)prepare_data方法處理得到[最小值,下四分位數(shù),中位數(shù),上四分位數(shù),最大值]
            itemstyle_opts = opts.ItemStyleOpts(color='skyblue',
                                                border_color='blue',
                                               )
           ) 
c.add_yaxis("女", 
            c.prepare_data(y2),
            itemstyle_opts = opts.ItemStyleOpts(color='#aa1010',
                                                border_color='black',
                                               )
           )
c.set_global_opts(title_opts=opts.TitleOpts(title="男女性年齡分布箱型圖"),
                  yaxis_opts=opts.AxisOpts(
                        type_="value",
                        name="年齡",  # 單位
                        splitarea_opts=opts.SplitAreaOpts(
                            is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
                        ),
                    ),      
                 )
 
c.render_notebook()

直方圖

畫(huà)圖前先把每個(gè)年齡段有多少人提取出來(lái)

男性直方圖

dist = data11['年齡'].value_counts().sort_index()
dist

x = [i for i in dist.index]
y = dist.tolist()
c = (
    Bar()
    .add_xaxis(x)
    .add_yaxis("男", y, 
               category_gap=0, # 設(shè)置柱子之間的間距為0
               color='#ff8080')
    .set_global_opts(title_opts=opts.TitleOpts(title="男性直方圖"),
        xaxis_opts=opts.AxisOpts(
                        name="年齡",  # 單位
                    ),
        yaxis_opts=opts.AxisOpts(
                        type_="value",
                        name="人數(shù)",  # 單位
                        splitarea_opts=opts.SplitAreaOpts(
                            is_show=True,areastyle_opts=opts.AreaStyleOpts(opacity=1)
                        ),
                    ),
    ) 
)
c.render_notebook()

女性直方圖

dict = data22['年齡'].value_counts().sort_index()
dict

x = [i for i in dict.index]
y = dict.tolist()
c = (
    Bar()
    .add_xaxis(x)
    .add_yaxis("女", y, 
               category_gap=0, # 設(shè)置柱子之間的間距為0
               color='#ff8080')
    .set_global_opts(title_opts=opts.TitleOpts(title="女性直方圖"),
        xaxis_opts=opts.AxisOpts(
                        name="年齡",  # 單位
                    ),
        yaxis_opts=opts.AxisOpts(
                        type_="value",
                        name="人數(shù)",  # 單位
                        splitarea_opts=opts.SplitAreaOpts(
                            is_show=True,areastyle_opts=opts.AreaStyleOpts(opacity=1)
                        ),
                    ),
    ) 
)
c.render_notebook()

總結(jié)

到此這篇關(guān)于Python獲取excel的數(shù)據(jù)并繪制箱型圖和直方圖的文章就介紹到這了,更多相關(guān)Python繪制箱型圖和直方圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論