画一个吸引人注意的图表相当重要。当你探索一个数据集,需要画图表,图表看起来令人愉悦是件很高兴的事。在与你的观众交流观点时,可视化同样重要,同时,也很有必要去让图表吸引注意力和印入脑海里。Matplotlib自动化程度非常高,但是,掌握如何设置系统以便获得一个吸引人的图是相当困难的事。为了控制matplotlib图表的外观,Seaborn模块自带许多定制的主题和高级的接口。
我们用ipython notebook
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
np.random.seed(sum(map(ord,"aesthetics")))
让我们定以一个函数来画正弦函数,这将帮助我们了解我们可以控制的不同风格的参数。
def sinplot(flip=1):
x =np.linspace(0,14,100)
for i in range(1,7):
plt.plot(x,np.sin(x+i*0.5)*(7-i)*flip)
import seaborn as sns
sinplot()
2 图形分类
因变量绘图
1 线箱图boxplot
2 小提琴图violinplot
3 散点图striplot
4 带分布的散点图swarmplot
5 直方图barplot
6 计数直方图countplot
7 两变量关系图factorplot
回归图
回归图只要探讨两连续数值变量的变化趋势情况,绘制x-y的散点图和回归曲线。
1 线性回归图implot
2 线性回归图regplot
分布图
包括单变量核密度曲线,直方图,双变量多变量的联合直方图,和密度图
热力图
1 热力图heatmap
聚类图
1 聚类图clustermap
时间序列图
1 时间序列图tsplot
2我的时间序列图plot_ts_d,plot_ts_m
3 因子变量绘图
3.1 boxplot线箱图
import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
# 绘制箱线图
ax = sns.boxplot(x=tips["total_bill"])
# 竖着放的箱线图,也就是将x换成y
ax = sns.boxplot(y=tips["total_bill"])
# 分组绘制箱线图,分组因子是day,在x轴不同位置绘制
ax = sns.boxplot(x="day", y="total_bill", data=tips)
#分组箱线图,分子因子是smoker,不同的因子用颜色区分
#相当于分组之后又分组
ax =sns.boxplot(x="day",y="total_bill",hue="smoker",data=tips, palette="Set3")
# 改变线宽,linewidth参数
ax = sns.boxplot(x="day", y="total_bill",hue="time",data=tips, linewidth=2.5)
#改变x轴顺序,order参数
ax = sns.boxplot(x="time", y="tip", data=tips,order=["Dinner", "Lunch"])
# 对dataframe的每个变量都绘制一个箱线图,水平放置
iris = sns.load_dataset("iris")
ax = sns.boxplot(data=iris, orient="h", palette="Set2"
# 箱线图+有分布趋势的散点图
# 图形组合也就是两条绘图语句一起运行就可以了,相当于图形覆盖了
ax = sns.boxplot(x="day", y="total_bill", data=tips)