數(shù)據(jù)可視化

數(shù)據(jù)可視化幾種方法:

import matplotlib.plot as plt;

1)利用matplotlib自身基礎組件

不難看出肥印,matplotlib實際上是一種比較低級的工具。要組裝一張圖標绝葡,你得用它的各種基礎組件才行:數(shù)據(jù)展示(即圖表類型:線性圖深碱、柱狀圖、盒形圖藏畅、散步圖敷硅、等值線圖等 )、圖例愉阎、標題绞蹦、刻度標簽以及其他注解性信息。這是因為要根據(jù)數(shù)據(jù)制作一張完整圖表通常都需要用到多個對象榜旦。在pandas中幽七,我們有行標簽、列標簽以及分組信息溅呢,這也就是說澡屡,要制作一張完整的圖表,原本需要一大堆的matplotlib代碼藕届,現(xiàn)在只需要一兩條簡潔的語句就可以了挪蹭。

2)利用Series和DataFrame的plot的方法

今天的任務中大多數(shù)都用的這種方法。

Series和DataFrame都有一個用于生成各類圖表的plot方法休偶,默認情況下梁厉,他們生成的是線型圖。

Series.plot方法的參數(shù):

? label:用于圖例上標簽;ax:要在其上進行繪制的matplotlib subplot對象词顾,如果沒有設置八秃,則使用當前matplotlib subplot對象;style:將要傳給matplotlib的風格字符串(如:‘ko--’)肉盹;alpha:圖表的填充不透明度(0到1之間)昔驱;kind:可以是‘line’‘bar’‘barh’‘kde’;logy:在Y軸上使用對數(shù)標尺上忍;use_index:將對象的索引用作刻度標簽骤肛;rot:旋轉刻度標簽(0到360度);xticks:用作X軸刻度的值窍蓝;yticks:用作Y軸刻度的值腋颠;xlim:X軸的界限(例如【0,10】)吓笙;ylim:Y軸的界限淑玫;grid:顯示網格線(默認打開)

DataFrame還有一些用于對列進行靈活處理的選項,例如面睛,是要將所有列都繪制到一個subplot中還是創(chuàng)建各自的subplot絮蒿,詳細參數(shù)參加下面:

? ?subplots:將各個DataFrame列繪制到單獨的subplot中

? ?sharex:如果subplot=True,則共用同一個X軸叁鉴,包括刻度和界限土涝;

? ?sharey:如果subplot=True,則共用同一個Y軸亲茅,包括刻度和界限回铛;

? ?figsize:表示圖像大小的元組狗准;

? ?title:表示圖像標題的字符串克锣;

? ?legend:添加一個subplot圖例(默認為True);

? ?sort_columns:以字母表順序繪制各列腔长,默認使用當前列順序


df.plot(kind='bar',stacked=True,alpha =0.5)? # 設置stacked=True即可為DataFrame生成堆積柱狀圖袭祟,這個每行的值就會被堆積在一起。


text.groupby(['Sex','Survived'])['Survived'].count().unstack().plot(kind='bar',stacked='True')

#? ?text.groupby(['Sex','Survived'])['Survived'].count()

Sex? ? ? ?Survived

female? ? ? ?0? ? ? ? ? ? 81

? ? ? ? ? ? ? ? ?1? ? ? ? ? 233

male? ? ? ? ?0? ? ? ? ? ?468

? ? ? ? ? ? ? ? ?1? ? ? ? ? 109

#text.groupby(['Sex','Survived'])['Survived'].count().unstack()捞附;通過unstack()將花括號轉為DataFrame

Survived? ?0? ? ? 1??

Sex

female? ? 81? ? ?233

male? ? ? 468? ? 109



far_sur = text.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)

text.groupby(['Fare'])#通過Fare列進行分組巾乳,形成多個子DataFrame

text.groupby(['Fare'])['Survived']# 取Survived列的值

text.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)# 對應Survived列中不同值的數(shù)量,然后降序排列

Fare? ? ?Survived

8.0500? ? ? 0? ? ? ? ? 38

7.8958? ? ? 0? ? ? ? ? 37

13.0000? ? 0? ? ? ? ? 26

7.7500? ? ?0? ? ? ? ? 22

26.0000? ?0? ? ? ? ? 16

? ? ? ? ? ? ? ? ? ? ..

20.2500? 1? ? ? ? ? ? 1

? ? ? ? ? ? ? ? 0? ? ? ? ? ? 1

18.7875? 1? ? ? ? ? ? 1

? ? ? ? ? ? ? ? 0? ? ? ? ? ? 1

15.0500? 0? ? ? ? ? ? 1

3)利用seaborn

import seaborn as? sns

sns.countplot(x='Pclass',hue='Survived',data=text)

同上面兩種方法相比鸟召,非常簡單5ò怼!欧募!

知乎上的文檔:

import seaborn as sns

import matplotlib.plot as plt

%matplotlib inline

titanic = sns.load_dataset('titanic')

sns.barplot(x='class',y='survived',data=titanic)

下面進行解釋:

titanic = sns.load_dataset('titanic')#seaborn內置很多數(shù)據(jù)压状,內置數(shù)據(jù)就可用這種方式進行導入

sns.barplot(x='class',y='survived',data=titanic)#barplot是輸出條形圖,還有countplot、boxplot种冬、violinplot镣丑、regplot、Implot娱两、heatmap等多種圖形方法可以使用莺匠。

1、displot直方圖

通常我們在分析一組數(shù)據(jù)時十兢,首先要看的就是變量的分布規(guī)律趣竣,而直方圖則提供了簡單快速的方式,在seaborn中可以用distplot()實現(xiàn)旱物。

age= titanic['age'].dropna()

sns.distplot(age)

同時我們可以調節(jié)其中的一些參數(shù)期贫,來控制輸出的圖形:‘kde’控制密度估計曲線的參數(shù),默認True异袄,‘bins’控制分布矩形數(shù)量的參數(shù)通砍,通常我們可以增加其數(shù)量,來看更為豐富的信息烤蜕,‘rug’參數(shù)用于控制直方圖中邊際毛毯封孙,通過控制‘reg’是實現(xiàn)毛毯是否顯示。

sns.distplot(age,kde=False,bins=30)

2讽营、barplot條形圖

barplot利用矩陣條的高度反應數(shù)值變量的集中趨勢虎忌,以及使用errorbar功能(差棒圖)來估計變量之間的差值統(tǒng)計(置信區(qū)間)。需要提醒的是barplot()默認展示的是某種變量分布的平均值(橱鹏?)(可以通過參數(shù)修改為max膜蠢、median等)

sns.barplot(x='class',y='survived',hue='sex',data=titanic)

3、countplot計數(shù)圖

可以將它認為一種應用到分類變量的直方圖莉兰,也可以認為i它是用于比較類別間計數(shù)差挑围。當年想要顯示每個類別中的具體觀察數(shù)量時,countplot很容實現(xiàn)糖荒。

sns.countplot(x='deck',hue='sex',data=titanic)
sns.countplot(y='deck',hue='sex',data=titanic)

4杉辙、stripplot/swarmplot散點圖

在seaborn中有兩種不同的分類散點圖。stripplot()使用的方法是用少量的隨機“抖動”調整分類軸上的點的位置捶朵,swarmplot表示的是帶分布屬性的散點圖蜘矢。

sns.stripplot(x='embarked',y='fare',data=titanic,jitter=1)

5、boxplot箱線圖

boxplot是一種用作顯示一組數(shù)據(jù)分散情況的統(tǒng)計圖综看。他能顯示出一組數(shù)據(jù)的最大值品腹、最小值、中位數(shù)及上下四分位數(shù)红碑。因其形狀如箱子而得名舞吭,這意味著箱線圖中每個值對應于數(shù)據(jù)中的實際觀察值。可以通過‘order’和‘hue_order’參數(shù)镣典,我們可以控制x軸展示的順序兔毙,通過linewidth參數(shù)控制線條的粗細。

sns.boxplot(x='class',y='age',hue='who',data=titanic)

6兄春、violinplot小提琴圖

其實是箱線圖與核密度圖的結合澎剥,箱線圖展示了分為數(shù)的位置,小提琴圖則展示了任意位置的密度赶舆,通過小提琴圖可以知道哪些位置的密度較高哑姚。

sns.violinplot(x='class',y='age',data=titanic)

7、regplot/Implot回歸線

seaborn中利用regplot()和lmplot()來進行回歸芜茵,確定線性關系叙量,他們密切相關,共享核心功能九串,但也有明顯不同绞佩。

fig,axes=plt.subplots(1,2)? ? sns.regplot(x='sepal_length',y='petal_length',data=iris,color='r',marker='+',ax=axes[0]) sns.regplot(x='sepal_length',y='petal_length',data=iris,color='g',marker='*',ax=axes[1])

lmplot()可以設置hue,進行多個類別的顯示,而regplot()是不支持的。這里我們通過設置hue=‘species’友酱,來進行分類別地展示≈饨唬‘col’參數(shù)對不同類別分開繪制,‘fit_reg’參數(shù)可以控制是否顯示擬合的直線扑馁,‘ci’參數(shù)控制是否顯示置信區(qū)間涯呻。

sns.lmplot(x='sepal_length',y='petal_length',hue='species',data=iris)

8、heatmap熱力圖

熱力圖通常用來表示特征之間的相關性腻要,一般通過顏色的深淺來表示數(shù)值的大小或者相關性的高低复罐。


flights = sns.load_dataset('flights')? ? ? ? ?f=flights.pivot('year','month','passengers') cmmp=sns.diverging_palette(200,20,sep=20,as_cmap=True)? ? ? ? ?sns.heatmap(f,annot=True,fmt='d')
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市闯第,隨后出現(xiàn)的幾起案子市栗,更是在濱河造成了極大的恐慌,老刑警劉巖咳短,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蛛淋,居然都是意外死亡咙好,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門褐荷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勾效,“玉大人,你說我怎么就攤上這事〔愎” “怎么了杨伙?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長萌腿。 經常有香客問我限匣,道長,這世上最難降的妖魔是什么毁菱? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任米死,我火速辦了婚禮,結果婚禮上贮庞,老公的妹妹穿的比我還像新娘峦筒。我一直安慰自己,他們只是感情好窗慎,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布物喷。 她就那樣靜靜地躺著,像睡著了一般遮斥。 火紅的嫁衣襯著肌膚如雪脯丝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天伏伐,我揣著相機與錄音宠进,去河邊找鬼。 笑死藐翎,一個胖子當著我的面吹牛材蹬,可吹牛的內容都是我干的。 我是一名探鬼主播吝镣,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼堤器,長吁一口氣:“原來是場噩夢啊……” “哼末贾!你這毒婦竟也來了闸溃?” 一聲冷哼從身側響起拱撵,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拴测,沒想到半個月后乓旗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡集索,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年汇跨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穷遂。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖娱据,靈堂內的尸體忽然破棺而出蚪黑,到底是詐尸還是另有隱情,我是刑警寧澤吸耿,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站咽安,受9級特大地震影響,放射性物質發(fā)生泄漏妆棒。R本人自食惡果不足惜澡腾,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一糕珊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧红选,春花似錦、人聲如沸喇肋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至间学,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間低葫,已是汗流浹背详羡。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工氮采, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鹊漠。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像躯概,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子娶靡,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容