我和seaborn一起制作了一个小品,但是我似乎找不到使点彼此重叠的选项。
它们彼此重叠,但仅在侧面重叠。
我希望它们在无法容纳时在各处重叠,但现在它们仅在侧面重叠。
data = sns.load_dataset('iris')
sns.swarmplot(data=data, y="sepal_length", x="species", edgecolor="black",alpha=.5, s=15,linewidth=1.0)
答案 0 :(得分:2)
我认为不可能让标记与swarmplot故意重叠。当然,如果需要的话,较小的标记根本不会重叠。
否则,一个容易破解的说法就是利用seaborn对特定图形尺寸的标记之间的距离进行硬编码这一事实。因此,当在一个巨大的图形上绘制时,没有重叠发生,但随后使图形变小之后, ,overlapp应该会很高。
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('iris')
fig, ax = plt.subplots(figsize=(19,4.8))
sns.swarmplot(data=data, y="sepal_length", x="species",
edgecolor="black",alpha=.5, s=15,linewidth=1.0, ax=ax)
fig.set_size_inches(6.4,4.8)
plt.show()
在这里,您需要为figsize
找到合适的值,以便对结果感到满意。
答案 1 :(得分:1)
您也可以使用stripplot
代替swarmplot
。据我所知,swarmplot
的全部要点类似于stripplot
的输出,但要点不要重叠。
data = sns.load_dataset('iris')
sns.stripplot(data=data, y="sepal_length", x="species", edgecolor="black",alpha=.5, s=15,linewidth=1.0)
此外,您可以使用the jitter=
keyword