情节小提琴风格直方图

时间:2017-12-18 10:57:05

标签: python matplotlib

我有一个包含几个数据点的情节,我想保留原样。

其中一个数据点是“更好”,因为它不仅带有值,还带有分配给它的概率。

我想通过绘制正常数据点来显示概率,并且对于具有测量PDF的那个显示小提琴图。

到目前为止,我已经用绘制的散点图做了这个,看起来有点像这样(在M​​WE中):

import numpy as np
import matplotlib.pyplot as plt



def plot():
    x = np.linspace(0,20,20)
    data =  x + np.random.rand(len(x))
    y =  2*x
    histo = np.array([1,2,3,10,20,10,3,1])
    y_better = np.array([9.5,9.8,10,11.5,12,13,15,16])

    ax = plt.subplot()
    ax.plot(x,data,'o')
    ax.scatter(np.ones_like(histo)*x[10],y_better,c=histo,norm=matplotlib.colors.LogNorm(),s=100)
    plt.show()

plot()

看起来像这样:

enter image description here

虽然这有效,但传输信息 - 但看起来并不太酷。

根据@jadsq的建议,我发现了violinplots,它看起来与我想要的完全一样!

我现在遇到的问题是小提琴图功能假设数据然后方便地绘制PDF。在我的情况下,我已经有一个测量PDF(这是我想要绘制的)。我怎么能制作一个看起来像小提琴情节的情节,但是用我的PDF(所以没有估计)?

1 个答案:

答案 0 :(得分:1)

对我而言,它看起来像是指示您的点上的错误栏的方式,因此您可以尝试用box plot来表示它。

关于颜色贴图:只需在散点图调用中添加cmap='inferno',如下所示:

ax.scatter(np.ones_like(histo)*x[10],y_better,c=histo,norm=matplotlib.colors.LogNorm(),s=100,cmap='inferno')