上一篇介绍了绘制不重叠散点图,本文主要介绍用seaborn绘制抖动图(有重叠),其绘制方法也非常简单。
# 利用iris数据集做演示
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 设置seaborn主题
sns.set(style="white", palette="muted", color_codes=True)
iris = sns.load_dataset("iris")
# 原始矩阵
print("原始矩阵:")
print(iris.head())
# 长宽矩阵转换
iris = pd.melt(iris, "species", var_name="measurement")
print("转换后的矩阵:")
print(iris.head())
# 初始化图像
f, ax = plt.subplots()
# 边框设置
# sns.despine(bottom=True, left=True)
# 绘制散点图
sns.stripplot(x="value", y="measurement", hue="species",
data=iris, dodge=True, alpha=.25, zorder=1)
# 添加均值点
sns.pointplot(x="value", y="measurement", hue="species",
data=iris, dodge=.5, join=False, palette="dark",
markers="d", scale=.7, ci=None)
# 图例设置、位置等调整
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles[3:], labels[3:], title="species",
handletextpad=0, columnspacing=0,
loc="upper left", ncol=1, frameon=True)
plt.show()
如此,一张漂亮的散点图就绘制好了。
参考资料:
1.http://seaborn.pydata.org/examples/jitter_stripplot.html