Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为具有不同比例数据的不同类别显示单个小提琴图?_Python_Seaborn_Data Visualization_Violin Plot - Fatal编程技术网

Python 如何为具有不同比例数据的不同类别显示单个小提琴图?

Python 如何为具有不同比例数据的不同类别显示单个小提琴图?,python,seaborn,data-visualization,violin-plot,Python,Seaborn,Data Visualization,Violin Plot,我正在使用Python的Seaborn库来可视化我的数据集。当我在一个绘图中绘制所有类的数据时,绘图显示不正确,这可能是因为所有类可能没有相同比例的数据(如下所示) 但是,当我绘制单个类的数据时,它会正确显示(如图所示) 我应该在相同的尺度上标准化所有类的数据,然后再次绘图,还是有其他方法来实现所有类的单一小提琴绘图 谢谢你的帮助 编辑: 按照@warlax56的要求,我在代码中做了如下操作: import seaborn as sb import pandas as pd import m

我正在使用Python的Seaborn库来可视化我的数据集。当我在一个绘图中绘制所有类的数据时,绘图显示不正确,这可能是因为所有类可能没有相同比例的数据(如下所示)

但是,当我绘制单个类的数据时,它会正确显示(如图所示)

我应该在相同的尺度上标准化所有类的数据,然后再次绘图,还是有其他方法来实现所有类的单一小提琴绘图

谢谢你的帮助

编辑:

按照@warlax56的要求,我在代码中做了如下操作:

import seaborn as sb
import pandas as pd
import matplotlib.pyplot as plt

# Global settings for Seaborn library
sb.set_style("whitegrid", {
    "grid.linestyle": '--'
})


def main():
    # The location of Gaussian Pre-processing data for both age and BMI
    # that gives the highest accuracy for 0.56s and 0.36s SD respectively
    age_feats_file = '../Data/SVM-RFE-N36-gaussian-age-sigma100.csv'

    # Load the Age csv file
    age_data = pd.read_csv(age_feats_file)

    # plotting only f50 for checking
    vplot = sb.violinplot(x='age_class', y='f50', data=age_data, inner="box")
    vplot.set_xticklabels(vplot.get_xticklabels(), rotation=20)
    plt.show()
SVM-RFE-N36-gaussian-age-sigma100.csv是包含下图所示数据的数据集csv文件:


该类别的
青年人
值似乎比其他类别大3个数量级。这是预期的吗?你确定你的数据没有问题吗?你能提供可重复性最低的代码吗?i、 e.制作一个手动定义的小数据集,执行相同的操作,并向我们显示结果?“如果我们看不到引擎盖下发生的事情,就很难提供帮助。”DizietAsahi显然,我的数据就是这样的。我是否应该在绘制小提琴图之前对相同比例的数据进行标准化处理?@warax56,我已经编辑了这个问题。让我知道这是否对你有帮助。嗯,看来你在年轻人中可能有一个异常值。尝试一个预处理步骤,删除不在平均值2个标准偏差范围内的数据。或者简单地限制最小值和最大值。如果这两项都不起作用,那么标准化可能是一个好的举措。