15丨一次學會Python數(shù)據可視化的10種技能

散點圖

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 數(shù)據準備

N = 1000

x = np.random.randn(N)

y = np.random.randn(N)

plt.scatter(x, y,marker='x')??# 用 Matplotlib 畫散點圖

plt.show()

df = pd.DataFrame({'x': x, 'y': y})??# 用 Seaborn 畫散點圖,會顯示數(shù)據的分布情況

sns.jointplot(x="x", y="y", data=df, kind='scatter');

plt.show()

折線圖

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

x = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]

y = [5, 3, 6, 20, 17, 16, 19, 30, 32, 35]

# 使用 Matplotlib 畫折線圖

plt.plot(x, y)

plt.show()

# 使用 Seaborn 畫折線圖

df = pd.DataFrame({'x': x, 'y': y})

sns.lineplot(x="x", y="y", data=df)

plt.show()

直方圖

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# 數(shù)據準備

a = np.random.randn(100)

s = pd.Series(a)

# 用 Matplotlib 畫直方圖,?plt.hist(x, bins=10) 函數(shù),其中參數(shù) x 是一維數(shù)組,bins 代表直方圖中的箱子數(shù)量,默認是 10旺垒。

plt.hist(s)

plt.show()

# 用 Seaborn 畫直方圖,使用 sns.distplot(x, bins=10, kde=True) 函數(shù)肋联。其中參數(shù) x 是一維數(shù)組故爵,bins 代表直方圖中的箱子數(shù)量腰懂,kde 代表顯示核密度估計梗逮,默認是 True,我們也可以把 kde 設置為 False绣溜,不進行顯示慷彤。核密度估計是通過核函數(shù)幫我們來估計概率密度的方法。

sns.distplot(s, kde=False)

plt.show()

sns.distplot(s, kde=True)

plt.show()

條形圖

import matplotlib.pyplot as plt

import seaborn as sns

# 數(shù)據準備

x = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5']

y = [5, 4, 8, 12, 7]

# 用 Matplotlib 畫條形圖

plt.bar(x, y)

plt.show()

# 用 Seaborn 畫條形圖

sns.barplot(x, y)

plt.show()

箱線圖( 盒式圖 )

由五個數(shù)值點組成:最大值 (max)怖喻、最小值 (min)底哗、中位數(shù) (median) 和上下四分位數(shù) (Q3, Q1)。它可以幫我們分析出數(shù)據的差異性锚沸、離散程度和異常值等跋选。

# 數(shù)據準備

# 生成 0-1 之間的 10*4 維度數(shù)據

data=np.random.normal(size=(10,4))

lables = ['A','B','C','D']

# 用 Matplotlib 畫箱線圖,使用 plt.boxplot(x, labels=None) 函數(shù)咒吐,其中參數(shù) x 代表要繪制箱線圖的數(shù)據野建,labels 是缺省值,可以為箱線圖添加標簽恬叹。

plt.boxplot(data,labels=lables)

plt.show()

# 用 Seaborn 畫箱線圖候生,使用 sns.boxplot(x=None, y=None, data=None) 函數(shù)。其中參數(shù) data 為 DataFrame 類型绽昼,x唯鸭、y 是 data 中的變量。

df = pd.DataFrame(data, columns=lables)

sns.boxplot(data=df)

plt.show()

餅圖

import matplotlib.pyplot as pl

# 數(shù)據準備

nums = [25, 37, 33, 37, 6]

labels = ['High-school','Bachelor','Master','Ph.d', 'Others']

# 用 Matplotlib 畫餅圖硅确,們使用 plt.pie(x, labels=None) 函數(shù)目溉,其中參數(shù) x 代表要繪制餅圖的數(shù)據,labels 是缺省值菱农,可以為餅圖添加標簽缭付。

plt.pie(x = nums, labels=labels)

plt.show()

熱力圖

import matplotlib.pyplot as plt

import seaborn as sns

# 數(shù)據準備

flights = sns.load_dataset("flights")

data=flights.pivot('year','month','passengers')

# 用 Seaborn 畫熱力圖

sns.heatmap(data)

plt.show()

蜘蛛圖

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns

from matplotlib.font_manager import FontProperties

labels=np.array([u" 推進 ","KDA",u" 生存 ",u" 團戰(zhàn) ",u" 發(fā)育 ",u" 輸出 "])

stats=[83, 61, 95, 67, 76, 88]

# 畫圖數(shù)據準備,角度循未、狀態(tài)值

angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False)

stats=np.concatenate((stats,[stats[0]]))

angles=np.concatenate((angles,[angles[0]]))

# 用 Matplotlib 畫蜘蛛圖

fig = plt.figure()

ax = fig.add_subplot(111, polar=True)

ax.plot(angles, stats, 'o-', linewidth=2)

ax.fill(angles, stats, alpha=0.25)

# 設置中文字體

font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)

ax.set_thetagrids(angles * 180/np.pi, labels, FontProperties=font)

plt.show()

二元變量分布?

import matplotlib.pyplot as pl

import seaborn as sns

tips = sns.load_dataset("tips")

print(tips.head(10))

# 用 Seaborn 畫二元變量分布圖(散點圖陷猫,核密度圖,Hexbin 圖) 使用 sns.jointplot(x, y, data=None, kind) 函數(shù)即可的妖。其中用 kind 表示不同的視圖類型:“kind=‘scatter’”代表散點圖绣檬,“kind=‘kde’”代表核密度圖,“kind=‘hex’ ”代表 Hexbin 圖嫂粟,它代表的是直方圖的二維模擬娇未。

sns.jointplot(x="total_bill", y="tip", data=tips, kind='scatter')

sns.jointplot(x="total_bill", y="tip", data=tips, kind='kde')

sns.jointplot(x="total_bill", y="tip", data=tips, kind='hex')

plt.show()

成對關系

import matplotlib.pyplot as pl

import seaborn as sns

iris = sns.load_dataset('iris')? #鳶尾花數(shù)據集。鳶尾花可以分成 Setosa星虹、Versicolour 和 Virginica 三個品種零抬,在這個數(shù)據集中镊讼,針對每一個品種,都有 50 個數(shù)據平夜,每個數(shù)據中包括了 4 個屬性狠毯,分別是花萼長度、花萼寬度褥芒、花瓣長度和花瓣寬度。通過這些數(shù)據嫡良,需要你來預測鳶尾花卉屬于三個品種中的哪一種锰扶。

# 用 Seaborn 畫成對關系

sns.pairplot(iris)

plt.show()

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市寝受,隨后出現(xiàn)的幾起案子坷牛,更是在濱河造成了極大的恐慌,老刑警劉巖很澄,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件京闰,死亡現(xiàn)場離奇詭異,居然都是意外死亡甩苛,警方通過查閱死者的電腦和手機蹂楣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讯蒲,“玉大人痊土,你說我怎么就攤上這事∧郑” “怎么了赁酝?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長旭等。 經常有香客問我酌呆,道長,這世上最難降的妖魔是什么搔耕? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任隙袁,我火速辦了婚禮,結果婚禮上度迂,老公的妹妹穿的比我還像新娘藤乙。我一直安慰自己,他們只是感情好惭墓,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布坛梁。 她就那樣靜靜地躺著,像睡著了一般腊凶。 火紅的嫁衣襯著肌膚如雪划咐。 梳的紋絲不亂的頭發(fā)上拴念,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音褐缠,去河邊找鬼政鼠。 笑死,一個胖子當著我的面吹牛队魏,可吹牛的內容都是我干的公般。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼胡桨,長吁一口氣:“原來是場噩夢啊……” “哼官帘!你這毒婦竟也來了?” 一聲冷哼從身側響起昧谊,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤刽虹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后呢诬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涌哲,經...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年尚镰,在試婚紗的時候發(fā)現(xiàn)自己被綠了阀圾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡钓猬,死狀恐怖稍刀,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布蟆沫,位于F島的核電站,受9級特大地震影響局齿,放射性物質發(fā)生泄漏。R本人自食惡果不足惜橄登,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一抓歼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拢锹,春花似錦谣妻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至充坑,卻和暖如春减江,著一層夾襖步出監(jiān)牢的瞬間染突,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工辈灼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留份企,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓巡莹,卻偏偏與公主長得像司志,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子降宅,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內容