小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

pandas可視化(3)【官方文檔解讀】-- 箱線圖

 大哥快走 2017-08-09

作者:王大偉

Python愛好者社區(qū)唯一小編

博客:https://ask./blog/wangdawei


點擊上圖即可限時半價購買課程


前言

前文傳送門:

pandas可視化(1)【官方文檔解讀】--基礎繪圖

pandas可視化(2)【官方文檔解讀】-- 條形圖、直方圖


如繪圖過程中,中文字體和負號顯示有問題,可以參照如下鏈接修改配置參數(shù)設置正常顯示:

https://www./post/441


環(huán)境

IDE : jupyter notebook

Anaconda 3.X


箱線圖
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
matplotlib.style.use('ggplot')#使用ggplot樣式
%matplotlib inline

注:如前一章,先導入必要的模塊和繪圖的數(shù)據(jù)準備


df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
df.head()

注:使用numpy產生一個10行5列的矩陣,矩陣內的元素是隨機產生的標準正態(tài)分布數(shù)字

然后將矩陣轉為df,給這五列數(shù)據(jù)欄位命名為A、B、C、D、E,并顯示其前五行觀察



df.plot.box()

注:繪制箱線圖


注:這里有A~E五個箱線圖放在一張圖,理解為5次試驗,每次的即為其對應列中的十行(10個數(shù)字)的箱線圖

箱線圖解釋如下圖:



color = dict(boxes='DarkGreen', whiskers='DarkOrange',
            medians='DarkBlue', caps='Gray')
df.plot.box(color=color, sym='r+')

注:繪制箱線圖,這里增加了箱線圖每部分線條顏色的設置,至于sym官方解釋是:specify fliers style

直譯為:指定傳單風格,我們暫且可以認為是繪圖的某種風格,我把這個參數(shù)去掉繪圖發(fā)現(xiàn)沒什么區(qū)別

如果有朋友理解,請留言評論賜教



df.plot.box(vert=False, positions=[1, 4, 5, 6, 8])


注:這里vert = False繪制水平箱線圖,并且將幕布豎直方向分為8塊等大小區(qū)域

將5個箱線圖從下到上依次畫在1、4、5、6、8五個位置


可以使用DataFrame.boxplot來繪制boxplot的界面

df = pd.DataFrame(np.random.rand(10,5))
plt.figure()
bp = df.boxplot()


注:使用和之前產生df一樣的方法產生df,然后用df的boxplot方法畫箱線圖


df = pd.DataFrame(np.random.rand(10,2), columns=['Col1', 'Col2'] )
df['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])
plt.figure()
bp = df.boxplot(by='X')


注:在原有的df上增加一欄X,其中包含A,B兩種分類,最后根據(jù)這種分類分別對col1和col2畫箱線圖


df = pd.DataFrame(np.random.rand(10,3), columns=['Col1', 'Col2', 'Col3'])
df['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])
df['Y'] = pd.Series(['A','B','A','B','A','B','A','B','A','B'])
plt.figure();
bp = df.boxplot(column=['Col1','Col2'], by=['X','Y'])


注:這里傳入兩個分類依據(jù),所以2X2有四種分類組合


np.random.seed(1234)
df_box = pd.DataFrame(np.random.randn(50, 2))
df_box['g'] = np.random.choice(['A', 'B'], size=50)
df_box.loc[df_box['g'] == 'B', 1] += 3
bp = df_box.boxplot(by='g')

注:這段比較難理解,我們分步理解:

np.random.seed(1234)
df_box = pd.DataFrame(np.random.randn(50, 2))
df_box.head()


注:這里使用某種隨機數(shù)種子產生器,隨機產生一個50行2列的df

df_box['g'] = np.random.choice(['A', 'B'], size=50)
df_box.head()


注:然后加一欄g,隨機分為A,B兩類

df_box.loc[df_box['g'] == 'B', 1] += 3
df_box.head()

注:定位到所有g欄屬于B的行和第二列(索引是1),將其加3


bp = df_box.boxplot(by='g')


注:最后按照g欄分類畫圖,像之前兩張圖一樣


和以下繪圖代碼注意對比:

bp = df_box.groupby('g').boxplot()


注:by有分開的意思,groupby有整合的意思


pandas繪制箱線圖到此結束

文中所寫如有謬誤請指出,感謝!


參考文獻

http://pandas./pandas-docs/stable/visualization.html#

微課福利:Hellobi live |8月22日,利用 Python 建構金融數(shù)據(jù)分析平臺

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多