从KDE图的输出获取密集区域边界值

时间:2019-05-15 07:41:45

标签: python python-3.x matplotlib seaborn kernel-density

此问题是尝试解决此问题(Extracting boundaries of dense regions of 1s in a huge list of 1s and 0s)时的扩展/替代方法

我有一个1和0的庞大列表[总长​​度= 53820]。

列表外观示例-[0,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0, 0,1,1 ...........]

可视化如下所示。

x轴:元素的索引(从0到53820)

y轴:该索引处的值(即1或0)

峰周围的黑线(指示1)是我要提取其边界值(x轴上的开始和结束值)的密集区域。

输入图-> http://i67.tinypic.com/2h5jq5e.pngThe plots

我已经完成了索引(x轴)和1s和0s列表(y轴)的内核密度估计,并获得了如下图:

KDE图-> https://i.stack.imgur.com/psvp2.pngThe plots

我对提取y轴= 1上的x轴(索引编号)的值感兴趣。 即我想提取1s最密集的边界(开始和结束值) ( 用黑线表示

相同的代码如下:

    path='./'+csv_path+'.csv'
    df = pd.read_csv(path)
    mylist = df['Values'] # The huge list with 1s and 0s
    indexes = list(range(len(mylist))) # The corresponding list of indexes of mylist
    ax = sns.jointplot(x=indexes, y=mylist, kind="kde")
    plt.show()

我打印出sns.distplot返回以进行绘图的轴,这给了我<seaborn.axisgrid.JointGrid object at 0x7f09d37d5cf8>

但是我无法从中提取边界值。

我也查看了(https://matplotlib.org/api/collections_api.html),但是在这里找不到解决方法。

任何帮助将不胜感激:)

0 个答案:

没有答案