python數(shù)據(jù)可視化之pandas多變量圖表(二)

上一篇學(xué)習(xí)了基于單變量的基礎(chǔ)圖表的應(yīng)用秫舌,這篇繼續(xù)學(xué)習(xí)使用雙變量作圖嘉栓。
變量之間沒有關(guān)系的數(shù)據(jù)在數(shù)據(jù)科學(xué)上相當(dāng)于空白畫布抗碰。為了繪制出有用的圖表伏伐,我們需要理解兩個變量之間是如何相互作用的宽涌。 是否同時增減椿息,是否存在線性關(guān)系鸿捧,為了更好的繪制圖表最好的方式是使用能夠?qū)崿F(xiàn)這些可能性的數(shù)據(jù)點泻轰。
數(shù)據(jù)源同上一篇文章铡恕。

import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
reviews = pd.read_csv("kaggle/winemag-data_first150k.csv", index_col=0)
head = reviews.head(3)
Scatter plot 散點圖

散點圖是以一個變量為橫坐標(biāo)琢感,另一個變量為縱坐標(biāo),利用散點(坐標(biāo)點)的分布形態(tài)反映變量關(guān)系的一種圖形探熔。
下面查看一下葡萄酒價格和評分之間的關(guān)系:

reviews[reviews['price'] < 200].plot.scatter(x='price', y='points')
評分與價格1.png

看到圖中全是點驹针,基本看不出來葡萄酒價格和評分之間的關(guān)系。由于散點圖不能有效的處理映射相同位置的點诀艰,為了更好的表示兩者之間的關(guān)系柬甥,我們需要對數(shù)據(jù)進行抽樣,抽取100個點重新進行展示:

reviews[reviews['price'] < 200].sample(100).plot.scatter(x='price', y='points')
評分與價格2.png

從上圖可以看出價格更高的葡萄酒在評論時會獲得更高的評分其垄。由此可見散點圖對于相對較小的數(shù)據(jù)集和具有大量惟一值的變量最有效苛蒲。
處理多重復(fù)數(shù)據(jù)點導(dǎo)致的覆蓋繪制,除了抽樣數(shù)據(jù)绿满,還可以使用Hexplot臂外。

Hexplot 六邊形圖

六邊形圖將空間中的點聚合成六邊形,然后根據(jù)六邊形內(nèi)部的值為這些六邊形上色喇颁。

reviews[reviews['price'] < 100].plot.hexbin(x='price', y='points', gridsize=15)

有測試price<200 的情況漏健,發(fā)現(xiàn)圖形集中在0-100價格區(qū)間(此處未展示圖片),故調(diào)整過濾條件為price<100。


評分與價格3.png

從上圖中橘霎,看到了散點圖未告知的信息蔫浆,我們可以看到葡萄酒雜志上評論的葡萄酒的價格集中在87.5分左右,在20美元左右姐叁。

Stacked plots

堆積圖是一種把變量一個放在另一個上面的圖表瓦盛。
回顧一下上一篇文章中的單變量柱形圖,這里可以簡單使用一個stacked 參數(shù),達(dá)到多個柱形的疊加外潜。
原文是引入新的數(shù)據(jù)集原环,這里我們在源數(shù)據(jù)上進行一下處理,獲得top5葡萄酒不同評價分?jǐn)?shù)的次數(shù)數(shù)據(jù):

# top5酒廠
winery = reviews['winery'].value_counts().head(5)
wine_counts = pd.DataFrame({'points': range(80, 101)})
for name in winery.index:
    winery_grouped = reviews[reviews['winery'] == name]
    points_series = winery_grouped['points'].value_counts().sort_index()
    df = pd.DataFrame({'points': points_series.index, name: list(points_series)})
    wine_counts = wine_counts.merge(df, on='points',how='left').fillna(0)
wine_counts.set_index('points', inplace=True)
image.png
wine_counts.plot.bar(stacked=True)
5種葡萄酒不同評分的次數(shù)分布.png

堆積條形圖具有單變量條形圖的優(yōu)點和缺點处窥。它們最適用于定類數(shù)據(jù)或少量定序數(shù)據(jù)嘱吗。
另一個簡單的例子是堆積面積圖。

wine_counts.plot.area()
image.png

與單變量面積圖一樣碧库,多變量面積適用于展示定類數(shù)據(jù)或區(qū)間數(shù)據(jù)柜与。
堆積圖在視覺上非常漂亮。但是它們有兩個主要局限性嵌灰。
第一個局限性: 堆積圖的第二個變量必須是一個可能值數(shù)量非常有限的變量弄匕。8有時被稱為建議的上限。有許多數(shù)據(jù)集字段不符合這個準(zhǔn)則沽瞭,需要進一步進行數(shù)據(jù)處理迁匠。
第二個局限性:可讀性差,難以區(qū)分具體的值驹溃。例如城丧,看上面的圖,你能告訴我在得分值為87.5的時候豌鹤,哪一種葡萄酒得分更高:Testarossa(橙色)亡哄,williams(藍(lán)色),還是DFJ(綠色)? 這真的很難講!

Bivariate line chart 多變量折線圖
wine_counts.plot.line()
image.png

這種方式使用折線圖彌補了堆積圖可讀性的局限布疙。在這個圖表中蚊惯,我們可以很容易地回答上一個例子中的問題:分值為87.5的時候,哪一種葡萄酒得分更高灵临?我們可以看到Columbia Crest最高截型。

總結(jié)
Scatter Plot Hex Plot Stacked Bar Chart Bivariate Line Chart
df.plot.scatter(x, y) df.plot.hexbin(x, y,gridsize) df.plot.bar(stacked=True) df.plot.line()
適用于區(qū)間數(shù)據(jù)和少量定類數(shù)據(jù)。 適用于區(qū)間數(shù)據(jù)和少量定類數(shù)據(jù) 適用于定類數(shù)據(jù)和有序數(shù)據(jù) 適用于有序數(shù)據(jù)和區(qū)間數(shù)據(jù)

參考資料
https://www.kaggle.com/residentmario/bivariate-plotting-with-pandas

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末儒溉,一起剝皮案震驚了整個濱河市宦焦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顿涣,老刑警劉巖波闹,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異园骆,居然都是意外死亡舔痪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門锌唾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锄码,“玉大人,你說我怎么就攤上這事晌涕∽檀罚” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵余黎,是天一觀的道長重窟。 經(jīng)常有香客問我,道長惧财,這世上最難降的妖魔是什么巡扇? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任扭仁,我火速辦了婚禮,結(jié)果婚禮上厅翔,老公的妹妹穿的比我還像新娘乖坠。我一直安慰自己,他們只是感情好刀闷,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布熊泵。 她就那樣靜靜地躺著,像睡著了一般甸昏。 火紅的嫁衣襯著肌膚如雪顽分。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天施蜜,我揣著相機與錄音卒蘸,去河邊找鬼。 笑死翻默,一個胖子當(dāng)著我的面吹牛悬秉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冰蘑,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼和泌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祠肥?” 一聲冷哼從身側(cè)響起武氓,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仇箱,沒想到半個月后县恕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡剂桥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年忠烛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片权逗。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡美尸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出斟薇,到底是詐尸還是另有隱情师坎,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布堪滨,位于F島的核電站胯陋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遏乔,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一义矛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盟萨,春花似錦症革、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽量蕊。三九已至铺罢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間残炮,已是汗流浹背韭赘。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留势就,地道東北人泉瞻。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像苞冯,于是被迫代替她去往敵國和親袖牙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容