Seaborn安裝入門及常用方法

Seaborn是基于matplotlib產(chǎn)生的一個模塊,專攻于統(tǒng)計(jì)可視化鹃操,可以和pandas進(jìn)行無縫鏈接仓坞,使初學(xué)者更容易上手。相對于matplotlib购岗,Seaborn語法更簡潔汰聋,兩者關(guān)系類似于numpy和pandas之間的關(guān)系。

2.1安裝:

1)linux系統(tǒng)

sudo pip install seaborn

2)window系統(tǒng)

pip install seaborn

2.2快速入門

import? as sns

sns.set(style="ticks")

from matplotlib import pyplot

# 加載數(shù)據(jù)集

tips = sns.load_dataset("tips")

# 繪圖

sns.boxplot(x="day", y="total_bill", hue="sex", data=tips, palette="PRGn")

sns.despine(offset=10, trim=True)

#圖片展示與保存

pyplot.savefig("GroupedBoxplots.png")

pyplot.show()

2.3seaborn常用方法

1喊积、單變量分析繪圖

1)分布的集中趨勢烹困,反映數(shù)據(jù)向其中心值靠攏或聚集的程度

x = np.random.normal(size=100)

sns.distplot(x, kde=True)# kde=False關(guān)閉核密度分布, rug表示在x軸上每個觀測上生成的小細(xì)條(邊際毛毯)

2、觀測兩個變量之間的分布關(guān)系最好用散點(diǎn)圖

1)直接擬合概率密度函數(shù)

sns.jointplot(x="x", y="y", data=df, kind="kde")

2)能夠更加直觀反映點(diǎn)的分布情況

hex圖 (數(shù)據(jù)量大的時(shí)候)?

最好黑白相間

數(shù)據(jù)量大時(shí)候乾吻,用hex圖髓梅,分辨出哪塊更多(顏色深淺)

mean, cov = [0, 1], [(1, .5), (.5, 1)]

data = np.random.multivariate_normal(mean, cov, 200)

df = pd.DataFrame(data, columns=["x", "y"])

x, y = np.random.multivariate_normal(mean, cov, 1000).T

with sns.axes_style("ticks"):

? ? sns.jointplot(x=x, y=y, kind="hex")?

3、多變量兩兩顯示

# 鵑尾花數(shù)據(jù)iris = sns.load_dataset("iris")

sns.pairplot(iris)

4绎签、Seaborn可視化各種繪圖操作

1枯饿、盒圖 box graph

import matplotlib.pyplot as plt

import numpy as np

盒圖關(guān)心中位數(shù)Q2、四分之一位Q1诡必、四分之三位Q3和離群點(diǎn)?

IQR = Q3 - Q1

如果Q1-1.5IQR或者Q3+1.5IQR就是離群點(diǎn)

tang_data = [np.random.normal(0, std, 100) for std in range(1,4)]

fig = plt.figure(figsize=(8,6))

plt.boxplot(tang_data, vert=True, notch=True)

plt.xticks([x+1 for x in range(len(tang_data))], ['x1', 'x2', 'x3'])

plt.xlabel('x')

plt.title('box plot')

import seaborn as sns

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

2奢方、單特征繪制直方圖

1)distplot

x = np.random.normal(size=100)

sns.distplot(x, kde=False, bins=20)

2)countplot 計(jì)數(shù)圖

countplot 故名思意,計(jì)數(shù)圖爸舒,可將它認(rèn)為一種應(yīng)用到分類變量的直方圖蟋字,也可認(rèn)為它是用以比較類別間計(jì)數(shù)差,調(diào)用 count 函數(shù)的 barplot扭勉。

seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)

x, y, hue: names of variables in data or vector data, optional

data: DataFrame, array, or list of arrays, optional

order, hue_order: lists of strings, optional #設(shè)置順序

orient: “v” | “h”, optional #設(shè)置水平或者垂直顯示

ax: matplotlib Axes, optional #設(shè)置子圖位置鹊奖,將在下節(jié)介紹繪圖基礎(chǔ)



3、分析兩個特征之間的關(guān)系涂炎,利用散點(diǎn)圖來表達(dá)

mean, cov = [0,1], [(1, .5), (.5,1)]

data = np.random.multivariate_normal(mean, cov, 200)

df = pd.DataFrame(data, columns=['X1', 'X2'])

sns.jointplot(x='X1', y='X2', data=df)

# kind = 'hex' ?# 六邊形

data = np.random.multivariate_normal(mean, cov, 2000).T

with sns.axes_style('white'):

????sns.jointplot(x=data[0], y=data[1], kind='hex', color='k')

4嫉入、看兩兩之間變量的關(guān)系

iris = sns.load_dataset('iris')

sns.pairplot(iris)

5焰盗、條形圖

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

點(diǎn)圖,不看集中趨勢咒林,就看各自的變化

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

sns.pointplot(x='class', y='survived', data=titanic, hue='sex', palette={'male':'g','female':'m'}, markers=['^', 'o'], linestyles=['-','--'])

tips = sns.load_dataset('tips', data_home='.')

# jitter 震動

sns.stripplot(x='day', y='total_bill', data=tips, jitter=True)

sns.swarmplot(x='day', y='total_bill', data=tips)

sns.swarmplot(x='day', y='total_bill', data=tips, hue='sex')

sns.swarmplot(x='day', y='total_bill', data=tips, hue='time')

6熬拒、盒圖

sns.boxplot(x='day', y='total_bill', data=tips, hue='time')

7、小提琴圖

sns.violinplot(x='day', y='total_bill', data=tips, hue='sex', split=True)

sns.violinplot(x='day', y='total_bill', data=tips, inner=None, split=True)

sns.swarmplot(x='day', y='total_bill', data=tips, color='k', alpha=1.0)

8垫竞、熱力圖通過顏色一目了然的指定值的大小澎粟,以及變化的趨勢

uniform_data = np.random.rand(3,3)

sns.heatmap(uniform_data)

sns.heatmap(uniform_data, vmin=0.2, vmax=0.5)

normal_data = np.random.randn(3,3)

sns.heatmap(normal_data, center=0)

flights = sns.load_dataset('flights')

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

sns.heatmap(data)

sns.heatmap(data, annot=True, fmt='d', linewidths=.5, cbar=False, cmap='YlGnBu')

9、設(shè)置畫圖的整體風(fēng)格

def sin_plot(flip=1):

????x = np.linspace(0, 14, 100)

????for i in range(1,7):

????????plt.plot(x, np.sin(x+i*.5)*(7-i)*flip)

sin_plot()


10欢瞪、有五種主題風(fēng)格活烙,darkgrid whitegrid dark white ticks

sns.set_style('darkgrid')

data = np.random.normal(size=(20,6)) + np.arange(6) / 2

sns.boxplot(data=data)

11、每一個子圖的風(fēng)格都可以不一樣遣鼓,with里面一個風(fēng)格啸盏,外面一個風(fēng)格

with sns.axes_style('whitegrid'):

????plt.subplot(211)

????sin_plot()

plt.subplot(212)

sin_plot(-1)

12、布局的風(fēng)格

sns.set_context("paper")

plt.figure(figsize=(8,6))

sin_plot()

sns.set_context("talk")

plt.figure(figsize=(8,6))

sin_plot()

sns.set_context("poster")

plt.figure(figsize=(8,6))

sin_plot()

sns.set_context("notebook", font_scale=3.5, rc={'lines.linewidth': 4.5})

plt.figure(figsize=(8,6))

sin_plot()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骑祟,一起剝皮案震驚了整個濱河市回懦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌次企,老刑警劉巖怯晕,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缸棵,居然都是意外死亡舟茶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門堵第,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吧凉,“玉大人,你說我怎么就攤上這事踏志》保” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵狰贯,是天一觀的道長也搓。 經(jīng)常有香客問我赏廓,道長涵紊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任幔摸,我火速辦了婚禮摸柄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘既忆。我一直安慰自己驱负,他們只是感情好嗦玖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跃脊,像睡著了一般宇挫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酪术,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天器瘪,我揣著相機(jī)與錄音,去河邊找鬼绘雁。 笑死橡疼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的庐舟。 我是一名探鬼主播欣除,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼挪略!你這毒婦竟也來了历帚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤瘟檩,失蹤者是張志新(化名)和其女友劉穎抹缕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墨辛,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卓研,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了睹簇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奏赘。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖太惠,靈堂內(nèi)的尸體忽然破棺而出磨淌,到底是詐尸還是另有隱情,我是刑警寧澤凿渊,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布梁只,位于F島的核電站,受9級特大地震影響埃脏,放射性物質(zhì)發(fā)生泄漏搪锣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一彩掐、第九天 我趴在偏房一處隱蔽的房頂上張望构舟。 院中可真熱鬧,春花似錦堵幽、人聲如沸狗超。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽努咐。三九已至苦蒿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渗稍,已是汗流浹背刽肠。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留免胃,地道東北人音五。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像羔沙,于是被迫代替她去往敵國和親躺涝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

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

  • Python Data Science Handbook About Archive [圖片上傳中...(imag...
    榴蓮氣象閱讀 570評論 0 1
  • # -*- coding: utf-8 -*- from __future__ import division f...
    小豆角lch閱讀 1,448評論 0 1
  • 簡單線性回歸 import tensorflow as tf import numpy # 創(chuàng)造數(shù)據(jù) x_dat...
    CAICAI0閱讀 3,542評論 0 49
  • 一扼雏、概述 深度學(xué)習(xí)的一個重要手段是訓(xùn)練數(shù)據(jù)和訓(xùn)練過程的可視化坚嗜,因此,我們關(guān)于深度學(xué)習(xí)的系列介紹文章就從Matplo...
    aoqingy閱讀 6,140評論 0 24
  • 聽說诗充,大連今天局部地區(qū)有雨夾雪苍蔬,或許是想冰敷我那受傷的肌膚。 剛剛給客戶傳了片子第二稿蝴蜓,出來吃個午飯碟绑,要的熱奶茶沒...
    老伯伯閱讀 162評論 0 1