OS
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
让jupyter notebook宽屏显示
from IPython.core.display import display, HTML
display(HTML('<style>.container{width:100% !important;}</style>'))
使用ipython的魔法方法,将绘制出的图像直接嵌在notebook单元格中
import matplotlib.pyplot as plt
%matplotlib inline
设置绘图大小
plt.style.use({'figure.figsize':(10, 8)})
导入python可视化图库seaborn
import seaborn as sns
设置seaborn的绘图主题为whitegrid
sns.set_style("whitegrid")
导入鸢尾花数据集
df = sns.load_dataset("iris")
直接绘制
df.plot()
绘制直方图
df.plot(kind='hist')
绘制箱型图
df.hist(bins=20)
绘制折线图
df.plot.area(stacked=False)
绘制特征两两关系图
sns.pairplot(df, hue='species', height=3)
绘制KDE
df.plot(kind='kde')
用KDE绘制两两之间高维的关系图
取出所有为setosa的鸢尾花数据
setosa = df.loc[df.species=='setosa']
取出所有为versicolor的鸢尾花数据
versicolor = df.loc[df.species=='versicolor']
取出所有为virginica的鸢尾花数据
virginica = df.loc[df.species=='virginica']
分别绘制setosa和virginica两种鸢尾花在【花萼长度】【花萼宽度】两个维度的KDE可视化
ax = sns.kdeplot(setosa.sepal_length, setosa.sepal_width, cmap='Reds', shade=True, shade_lowest=False)
ax = sns.kdeplot(virginica.sepal_length, virginica.sepal_width, cmap="Blues", shade=True, shade_lowest=False)
绘制pearson相关系数矩阵
df.corr()
使用热力图绘制pearson相关系数矩阵
sns.heatmap(df.corr(), annot=TRUE, cmap="YlGnBu")
绘制箱型图
df.plot(kind='box')
指定横纵坐标绘制箱型图
sns.boxplot(y=df['petal_length'], x=df['species'])
用子图绘制不同class对应不同特征的boxmap
fig, axes = plt.subplots(2, 2, figsize=(15, 8))
sns.plot(x='species', y='petal_length', data=df, palette="Pastel1", ax=axes[0][0])
sns.plot(x='species', y='petal_width', data=df, palette="Pastel1", ax=axes[0][1])
sns.plot(x='species', y='sepal_length', data=df, palette="Pastel1", ax=axes[1][0])
sns.plot(x='species', y='sepal_width', data=df, palette="Pastel1", ax=axes[1][1])
用子图绘制4列特征各自的boxmap
df.plot(kind='box', subplots=True, layout=(2,2), sharex=False, figsize=(15, 8))
绘制小提琴图
sns.violinplot(y="sepal_length", x="species", data=df)
[小提琴图]按顺序依次显示不同鸢尾花种类对应的花萼长度数据分布
sns.sns.violinplot(x="species", y="sepal_length", data=df, order=["setosa", "virginica", "versicolor"])
绘制平行坐标图(将多维数据映射为折线)
from pandas.plotting import parallel_coordinates
parallel_coordinates(df, "species")
绘制六边形蜂窝图(类似于heatmap)
df.plot.hexbin(x="sepal_length", y="sepal_width", gridsize=25)
绘制雷达图(将多维数据映射为一个点)
from pandas.plotting import radviz
radviz(df, "species")
绘制安德鲁斯曲线(将多维数据映射为二维曲线)
from pandas.plotting import andrews_curves
andrews_curves(df, "species")
|