2

Pandas 数据框有“user_fair, user_good, rating”这 3 列。

sns.swarmplot用来绘制“user_fair vs rating”和“user_good vs rating”。

“user_fair vs rating”工作正常,但是当尝试绘制“user_good vs rating”时,代码会永远运行并且不会打印任何情节。我正在使用Python3Jupyter Notebook

这是我正在使用的代码:

fig, ax = plt.subplots(figsize=(15, 15))
ax = sns.swarmplot(y="user_good", x="rating", data=data)
ax.set_xlabel("Rating",size = 20,alpha=0.8)
ax.set_ylabel("Goodness of User who got Rated",size = 20,alpha=0.8)
ax.set_title("Distributin of Rating and How are Goodness Score of ratee",size=20)
4

2 回答 2

6

所以问题不在于您的代码,而在于如何创建 swarmplots。Swarmplots 创建点并确保“点已调整(仅沿分类轴),以便它们不重叠”。当你有很多数据并且很多点重叠时,它会很困难,并且大多数 rating/user_good 值重叠。

我强烈建议使用小提琴情节。它将为您提供与您尝试使用 swarmplot 识别的相同信息,并且工作速度会大大加快。

fig, ax = plt.subplots(figsize=(15, 15))
ax = sns.violinplot(x="rating", y="user_good",  data=df, cut = 0)
ax.set_xlabel("Rating",size = 20,alpha=0.8)
ax.set_ylabel("Goodness of User who got Rated",size = 20,alpha=0.8)
ax.set_title("Distributin of Rating and How are Goodness Score of ratee",size=20)

在此处输入图像描述

在此处输入图像描述

于 2019-05-03T17:55:32.400 回答
0

大多数时候尝试小提琴图,但是当数据有更多异常值时,您也可以使用散点图。

fig, ax = plt.subplots(figsize=(15, 15))
ax = sns.scatterplot(y="user_good", x="rating", data=data)
ax.set_xlabel("Rating",size = 20,alpha=0.8)
ax.set_ylabel("Goodness of User who got Rated",size = 20,alpha=0.8)
ax.set_title("Distributin of Rating and How are Goodness Score of ratee",size=20)

散点图

于 2020-07-08T02:47:45.017 回答