1. 程式人生 > >009.python科學計算庫seaborn(中)

009.python科學計算庫seaborn(中)

Var

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set()
x = np.random.normal(size=100)
# distplot:靈活繪製觀測的單變數分佈
sns.distplot(x, kde=False)
plt.show()

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set()
x = np.random.normal(size=100)
# distplot:靈活繪製觀測的單變數分佈
# bins:分成20份 sns.distplot(x, bins=20, kde=False) plt.show()

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from scipy import stats, integrate

sns.set()
x = np.random.gamma(6, size=100)
# 資料分佈情況
sns.distplot(x, fit=stats.gamma, kde=False)
plt.show()

import matplotlib.pyplot as
plt import numpy as np import pandas as pd # 根據均值和協方差生成資料 mean, cov = [0, 1], [(1, .5), (.5, 1)] data = np.random.multivariate_normal(mean, cov, 200) df = pd.DataFrame(data, columns=["x", "y"]) plt.plot(df) plt.show()

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as
sns # 觀測兩個變數之間的分佈關係最好用散點圖 mean, cov = [0, 1], [(1, .5), (.5, 1)] data = np.random.multivariate_normal(mean, cov, 200) df = pd.DataFrame(data, columns=["x", "y"]) sns.jointplot(x="x", y="y", data=df) plt.show()

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

# 觀測兩個變數之間的分佈關係最好用散點圖
mean, cov = [0, 1], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("white"):
    sns.jointplot(x=x, y=y, kind="hex", color="k")
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

# 從聯機儲存庫載入資料集(需要internet)
iris = sns.load_dataset("iris")
# 在資料集中繪製兩兩關係
sns.pairplot(iris)
plt.show()

REG

import matplotlib.pyplot as plt
import seaborn as sns

# regplot()和lmplot()都可以繪製迴歸關係,推薦regplot()
tips = sns.load_dataset("tips")
tips.head()
sns.regplot(x="total_bill", y="tip", data=tips)
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

# regplot()和lmplot()都可以繪製迴歸關係,推薦regplot()
tips = sns.load_dataset("tips")
tips.head()
sns.lmplot(x="total_bill", y="tip", data=tips)
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
# x_jitter x軸抖動範圍
sns.regplot(x="total_bill", y="tip", data=tips, x_jitter=.05)
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
anscombe = sns.load_dataset("anscombe")
print(anscombe)
# scatter_kws:"s" 資料點為的大小,數值越大點位越大
sns.regplot(x="x", y="y", data=anscombe.query("dataset == 'I'"),
            ci=None, scatter_kws={"s": 100})
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
# lmplot 圖資料和迴歸模型適用於FacetGrid.
#       這個函式結合了:func: ' regplot '和:class: ' FacetGrid '。
#       它是一個方便的介面,用於跨資料集的條件子集擬合迴歸模型。
#   hue:色調
#   palette:調色盤
#   markers:標記
sns.lmplot(x="total_bill", y="tip", hue="smoker", data=tips,
                markers=["o", "x"], palette="Set1")
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
print(tips)
# lmplot 圖資料和迴歸模型適用於FacetGrid.
#       這個函式結合了:func: ' regplot '和:class: ' FacetGrid '。
#       它是一個方便的介面,用於跨資料集的條件子集擬合迴歸模型。
#   hue:色調
#   palette:調色盤
#   markers:標記
#   col:以此列來進行分組渲染
sns.lmplot(x="total_bill", y="tip", hue="smoker", col="sex", data=tips)
plt.show()


import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
print(tips)
# lmplot 圖資料和迴歸模型適用於FacetGrid.
#       這個函式結合了:func: ' regplot '和:class: ' FacetGrid '。
#       它是一個方便的介面,用於跨資料集的條件子集擬合迴歸模型。
#   hue:色調
#   palette:調色盤
#   markers:標記
#   col:以此列來進行分組渲染
#   row:以此行來進行分組渲染
sns.lmplot(x="total_bill", y="tip", hue="smoker", col="sex",row="time", data=tips)
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
f, ax = plt.subplots(figsize=(5, 5))
# col_wrap:“Wrap” 列變數位於此寬度,以便列facet跨越多個行
# size :每個面的高度(英寸)
sns.lmplot(x="total_bill", y="tip", col="day", data=tips,
           col_wrap=2, size=4)
plt.show()

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
tips.head()
f, ax = plt.subplots(figsize=(5, 5))
# col_wrap:“Wrap” 列變數位於此寬度,以便列facet跨越多個行
# size :每個面的高度(英寸)
# aspect :橫軸比上縱軸的比例
sns.lmplot(x="total_bill", y="tip", col="day", data=tips,
           col_wrap=2, size=4, aspect=.5)
plt.show()