2017-12-18 299 views
-1

我有一個情節,有幾個數據點,我想保持原樣。劇情中的小提琴曲風格直方圖

其中一個數據點是'更好',因爲它不僅帶有值,而且帶有分配給它的概率。

我想通過繪製正常數據點來顯示概率,並且用測量的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

您也可以考慮一個''seaborn' swarmplot':https://seaborn.pydata.org/generated/ seaborn.swarmplot.html#seaborn.swarmplot – tom

回答

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') 
+0

謝謝。 按照你對盒子情節的建議,我發現了小提琴,看起來很神奇。現在我仍然有一個問題,並已更新我的問題! – Sebastiano1991