數據可視化,將數據以一種直觀的方式展現出來。不同圖表的功能作用也不同。
圖表分類圖.png -來自大鵬老師數據分析課程
圖表分類圖.png -來自大鵬老師數據分析課程
圖表分類圖.png -來自大鵬老師數據分析課程
這篇主要是介紹matplotlib和seaborn的簡單使用。matplotlib一般是用來幫助做數據分析的,可以用python做數據處理,然后導出,用teablue做數據的可視化。
1、導入相關工具包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid')
sns.set_context('paper')
import warnings
warnings.filterwarnings('ignore')
print('導入成功!')
2、創建數據
df = pd.DataFrame(np.random.randn(1000, 4), index=pd.date_range('1/1/2000', periods=1000), columns=list('ABCD'))
df = df.cumsum()
df.head(5)
數據.png
3、折線圖
df.plot(kind='line', style='--', alpha=0.4,
use_indes=True, rot=45, grid=True,
figsize=(12,8), title='test', legend = True,
subplots = False, cmap = 'Greens'))
折線圖.png
4、散點圖、氣泡圖
plt.figure(figsize = (12,8))
plt.scatter(df['A'],df['B'],marker='.',
s = df['C']*10,
cmap = 'Reds',
c = df['D'],
alpha = 0.8,)
# s:散點的大小
# c:散點的顏色
# vmin,vmax:亮度設置,標量
# cmap:colormap
氣泡圖.png
5、箱型圖
df.boxplot(figsize = (12,8))
# by:按照列分組做箱型圖
df2 = pd.DataFrame(np.random.rand(10,2), columns=['Col1', 'Col2'] )
df2['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])
df2['Y'] = pd.Series(['A','B','A','B','A','B','A','B','A','B'])
print(df2.head())
df2.boxplot(by = 'X', figsize=(12,8))
箱型圖.png
分組箱型圖.png
6、小提琴圖
tips = sns.load_dataset("tips")
print(tips.head())
plt.figure(figsize=(12,8))
sns.violinplot(x="day", y="total_bill", data=tips,
hue = 'smoker',split = True, # 是否吸煙切分
linewidth = 2, # 線寬
width = 0.8, # 箱之間的間隔比例
palette = 'Blues_r', # 設置調色板
order = ['Thur','Fri','Sat','Sun'], # 篩選類別
scale = 'count', # 測度小提琴圖的寬度:area-面積相同,count-按照樣本數量決定寬度,width-寬度一樣
gridsize = 50, # 設置小提琴圖邊線的平滑度,越高越平滑
inner = 'box', # 設置內部顯示類型 → “box”, “quartile”, “point”, “stick”, None
)
小提琴圖.png
7、兩個樣本數據分布圖
#兩個樣本數據密度分布圖
plt.figure(figsize=(12,8))
sns.kdeplot(df['A'],df['B'],
cbar = True, # 是否顯示顏色圖例
shade = True, # 是否填充
cmap = 'Reds', # 設置調色盤
shade_lowest=False, # 最外圍顏色是否顯示
n_levels = 20 # 曲線個數(如果非常多,則會越平滑)
)
# 兩個維度數據生成曲線密度圖,以顏色作為密度衰減顯示
sns.rugplot(df['A'], color="g", axis='x',alpha = 0.5)
sns.rugplot(df['B'], color="r", axis='y',alpha = 0.5)
# 注意設置x,y軸
#兩個樣本數據散點分布圖
plt.figure(figsize=(12,8))
sns.jointplot(df['A'],df['B'], # 設置xy軸,顯示columns名稱
data=df, # 設置數據
color = 'k', # 設置顏色
s = 50, edgecolor="w",linewidth=1, # 設置散點大小、邊緣線顏色及寬度(只針對scatter)
kind = 'scatter', # 設置類型:“scatter”、“reg”、“resid”、“kde”、“hex”
space = 0.2, # 設置散點圖和布局圖的間距
size = 8, # 圖表大小(自動調整為正方形)
ratio = 5, # 散點圖與布局圖高度比,整型
marginal_kws=dict(bins=15, rug=True) # 設置柱狀圖箱數,是否設置rug
)
數據分布圖.png