2 seaborn—繪製統計圖形
2.1 可視化數據的分佈
import seaborn as sns
%matplotlib inline
import numpy as np
sns.set() # 顯式調用set()獲取默認繪圖
np.random.seed(0) # 確定隨機數生成器的種子
arr = np.random.randn(100) # 生成隨機數組
ax = sns.distplot(arr, bins=10) # 繪製直方圖
# 創建包含500個位於[0,100]之間整數的隨機數組
array_random = np.random.randint(0, 100, 500)
# 繪製核密度估計曲線
sns.distplot(array_random, hist=False, rug=True)
# 創建DataFrame對象
import pandas as pd
dataframe_obj = pd.DataFrame({"x": np.random.randn(500),"y": np.random.randn(500)})
dataframe_obj
xy
00.4782151.246931
1-0.0539060.187860
2-1.2419011.281412
3-1.6584951.375265
4-0.3533721.420608
51.656508-0.557275
61.5119131.657975
7-0.9068040.452821
8-0.777217-0.368433
9-0.739228-1.286740
100.987989-1.634521
11-0.026473-0.010277
12-1.262669-0.256035
13-1.5611650.918040
14-0.939354-0.127256
150.3354530.217671
16-1.4897520.432434
17-1.066911-0.515731
181.035863-0.297603
190.631313-0.653702
20-1.8943671.868757
210.0365710.237410
22-0.312502-1.319956
230.814248-0.811489
240.382404-0.449499
251.6466660.410724
260.2275530.313078
27-1.3998750.431041
28-2.161313-1.314429
290.2807502.321291
.........
470-1.266559-0.595866
471-0.7665660.096873
4720.205730-1.270893
473-0.608373-1.875642
474-0.3231700.336776
475-1.615268-1.565554
4760.4336791.887319
477-0.217975-0.728759
4781.0233240.201026
479-0.134135-0.746496
4800.0467241.299394
481-0.595088-0.641203
482-1.949716-0.520380
483-0.530026-0.348830
484-1.060356-0.013075
485-0.908488-0.981377
486-0.034975-1.450624
487-1.4263970.320157
488-1.3025371.746811
489-1.1907580.407325
490-0.1705430.311181
4910.8140520.299761
492-0.5201460.591630
4931.934602-0.165131
494-0.052196-0.524848
495-1.0574860.939177
496-0.158090-1.588747
497-0.2384121.627092
4980.279500-0.218554
4991.962078-0.956771
500 rows × 2 columns
# 繪製散佈圖
sns.jointplot(x="x", y="y", data=dataframe_obj)
# 繪製二維直方圖
sns.jointplot(x="x", y="y", data=dataframe_obj, kind="hex")
# 核密度估計
sns.jointplot(x="x", y="y", data=dataframe_obj, kind="kde")
# 加載seaborn中的數據集
dataset = sns.load_dataset("tips")
# 繪製多個成對的雙變量分佈
sns.pairplot(dataset)
2.2 用分類數據繪圖
tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", data=tips)
tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)
sns.swarmplot(x="day", y="total_bill", data=tips)
sns.boxplot(x="day", y="total_bill", data=tips)
sns.violinplot(x="day", y="total_bill", data=tips)
sns.barplot(x="day", y="total_bill", data=tips)
sns.pointplot(x="day", y="total_bill", data=tips)
閱讀更多 任性的90後boy 的文章