我可以在不与Matplotlib重叠的情况下进行抖动/分散的点图吗?

时间:2018-06-26 07:24:01

标签: matplotlib plot

我想展示类似于箱形图的单个数据点(假设在两个类别中进行多个实验的NMSE值),我想显示所有单个数据点。假设数据的主要方向是上下颠倒的,则抖动(或分散)的点图是将数据点稍微横向移动以避免重叠点的一种好方法。有关此想法的可视化,请选中Google Image Searchthis article

我已经找到并阅读了Adding a scatter of points to a boxplot using matplotlib,但是这些解决方案涉及添加随机噪声,而与数据无关,因此,人们必须微调参数,并可能反复重申,直到找到一个好的解决方案为止。然后您尝试在几个月后重现这些内容;)

因此,我想要一个自动化的解决方案,该解决方案可以创建诸如here所示的图形。有没有使用Matplotlib做到这一点的解决方案?

1 个答案:

答案 0 :(得分:1)

您正在寻找一个“ swarmplot”,很好implemented in seaborn

import pandas as pd
import seaborn as sns
sns.set(style="whitegrid", palette="muted")

# Load the example iris dataset
iris = sns.load_dataset("iris")

# "Melt" the dataset to "long-form" or "tidy" representation
iris = pd.melt(iris, "species", var_name="measurement")

# Draw a categorical scatterplot to show each observation
sns.swarmplot(x="measurement", y="value", hue="species", data=iris)

enter image description here