一、变量中常用的图表选择以及代码缩写
变量个数 | 数据类型 | 使用的绘图方式 | 使用命令 |
单变量 | 分类变量 | 简单条数 | 1、DataFrame.plot.bar() 2、matplotlib.pyplot.bar() 3、seaborn.barplot() 4、seaborn.countplot() |
饼图 | 1、DataFrame.plot.pie() 2、matplotlib.pyplot.pie() |
||
数值变量 | 条带图 | 1、seaborn.stripplot() 2、seaborn.swarmplot() #效果较上更好一点 |
|
直方图 | 1、DataFrame.plot.hist() 2、matplotlib.pyplot.hist() 3、seaborn.histplot() #如果报错检查seaborn版本 4、seaborn.displot() |
||
KDE图 | seaborn.kdeplot() | ||
箱图 | 1、DataFrame.plot.box() 2、matplotlib.pyplot.boxplot() 3、seanborn.boxplot() |
||
增强箱图 (可以表示8、16...32分位图形) |
seaborn.boxenplot() | ||
提琴图 | seaborn.violinplot() | ||
P-P图 | |||
Q-Q图 | |||
双变量 | 分类vs分类 | 分组图 | |
面板图(行、列) | 1、seaborn.catplot() |
||
分段条图(累积条图) | |||
树状图 | |||
复杂饼图 | |||
数值vs分类 | 分组条带图 分组箱图 分组提琴图 同类图形组合 |
||
数值vs数值 | 散点图 | 1、DataFrame.plot.scatter() 2、matplotlib.pyplot.scatter() 3、seanborn.scatterplot() |
二、常用图表展示
2.1 直方图
DataFrame.plot.hist() #DataFrame数据中一列值
2.2 KDE图
import seaborn as sns
sns.kdeplot(DataFrame, bw = .5, label = "bw: 0.5") # DataFrame数据中一列值
sns.kdeplot(DataFrame, bw = 1, label = "bw: 1")
sns.kdeplot(DataFrame, bw = 2, label = "bw: 2")
2.3 箱图
sns.boxplot(y = DataFrame, saturation = 0.3,
width = 0.5, linewidth = 3, fliersize = 10)# DataFrame数据中一列值
2.4 增强箱图
sns.boxenplot(x = ccss.time, y = ccss.index1,
scale = 'area', outlier_prop = 0.1) # x横轴序列 Y数据中的一列值
2.5 提琴图
#violinplot 提琴图相关参数
seaborn.violinplot(
x=None, y=None, hue=None, data=None, order=None, hue_order=None
bw = 'scott' #: KDE图的具体计算方法或者核宽度 {‘scott’, ‘silverman’, float}, optional
cut = 2 #: 绘图时是否超越两端的极值,设为0时严格限定在观测值范围内
scale = 'area' #: 各KDE图形设置为相同面积/按照频数设定宽度/相同宽度{“area”, “count”, “width”}, optional
gridsize = 100 #: 用于形成KDE曲线的散点数,越多越光滑
width = 0.8 #: 图形占的宽度比例
inner = 'box' #: 提琴图内部呈现的图形种类,箱图/分位数/原始数据。
# {“box”, “quartile”, “point”, “stick”, None}, optional
saturation = 0.75 #: 图形色彩饱和度。
)
#使用seaborn画图
sns.violinplot(y =DataFrame, inner = "box")
2.6 散点图
mu_vec1 = np.array([0,0])
cov_mat1 = np.array([[2,0],[0,2]])
x1_samples = np.random.multivariate_normal(mu_vec1, cov_mat1, 100)
x2_samples = np.random.multivariate_normal(mu_vec1+0.2, cov_mat1+0.2, 100)
x3_samples = np.random.multivariate_normal(mu_vec1+0.4, cov_mat1+0.4, 100)
plt.figure(figsize = (8,6))
plt.scatter(x1_samples[:,0],x1_samples[:,1],marker ='x',color='blue',alpha=0.6,label='x1')
plt.scatter(x2_samples[:,0],x2_samples[:,1],marker ='o',color='red',alpha=0.6,label='x2')
plt.scatter(x3_samples[:,0],x3_samples[:,1],marker ='^',color='green',alpha=0.6,label='x3')
plt.legend(loc='best')
plt.show()
2.7 面板图
sns.catplot(x = 'time', y = 'index1', col = 's0', data = ccss,
kind = "box")