可视化工具
可视化工具有如下几种,seaborn可以看作对matplotlib的高级封装;Plotly可以制作可交互的图片;Bokeh同样也是制作可交互的图片;ggplot是R包ggplot2的python版本,绘制静态图片;Graph visualization with NetworkX用于绘制图数据结构的包。
类别变量可视化
类别变量可视化使用seaborn的catplot函数,可以绘制类别的散点图(stripplot, swarmplot),类别分布图(boxplot, violinplot, boxenplot),类别估计图(pointplot, barplot, countplot)
stripplot
catplot kind参数的默认值就是stripplot1
2
3
4
5
6
7
8
9
10"""
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
"""
tips = sns.load_dataset("tips")
sns.catplot(x="day", y="total_bill", data=tips);
使用jitter参数控制每个类别的宽度。
1 | sns.catplot(x="day", y="total_bill", jitter=False, data=tips); |
swarmplot
swarmplot把数据按树形展开,防止重叠,并体现出了数据的分布。类似于琴图。1
sns.catplot(x="day", y="total_bill", hue="sex", kind="swarm", data=tips);
使用order参数,传入一个list,可以控制类别的先后顺序。
boxplot
关于箱型图,箱型图包括中位数,上四分位数,下四分位数,上限,下限,异常点。分位距IQR=Q3-Q1,异常值是大于Q3+1.5IQR或者小于Q1-1.5IQR范围内的值。1
sns.catplot(x="day", y="total_bill", kind="box", data=tips);
boxenplot
相对于boxplot,boxenplot展示了更多的信息。1
2
3diamonds = sns.load_dataset("diamonds")
sns.catplot(x="color", y="price", kind="boxen",
data=diamonds.sort_values("color"));
violinplot
琴图结合了箱型图和核密度估计1
2sns.catplot(x="total_bill", y="day", hue="time",
kind="violin", data=tips);
barplot
1 | titanic = sns.load_dataset("titanic") |
pointplot
pointplot 在barplot的基础上比较了不同类之间的大小
1 | sns.catplot(x="sex", y="survived", hue="class", kind="point", data=titanic); |