Seaborn使您可以使用点创建分类图
import seaborn as sns
tips = sns.load_dataste('tips')
sns.catplot(x='tip', y='sex', data=tips, jitter=False)
有没有办法将点与同性别的线连接起来?
我的目标是创建一个与下图相似的图(在R's ggplot2中完成)。读seaborn documentation时,我发现没有任何东西与该情节相似。 lineplot仅接受数字值。当前是否有一种明显的方法可以使这种分类图成为我所缺少的?
答案 0 :(得分:2)
按类别分组,并分别绘制每条线。
import numpy as np
import matplotlib.pyplot as plt
def cat_horizontal_plot(data, category, numeric, ax=None):
ax = ax or plt.gca()
for cat, num in data.groupby(category):
ax.plot(np.sort(num[numeric].values), [cat]*len(num),
marker="o", mec="k", mfc="none", linestyle="-", color="k")
ax.set_xlabel(numeric)
ax.set_ylabel(category)
ax.margins(y=0.4)
ax.figure.tight_layout()
用作
import seaborn as sns
tips = sns.load_dataset('tips')
cat_horizontal_plot(tips, "sex", "tip")
plt.show()