2017-12-18 2 views
-1

나는 그대로 유지하고자하는 몇 가지 데이터 포인트가있는 그림이 있습니다.음모의 바이올린 플롯 스타일 막대 그래프

데이터 포인트 중 하나는 값이 올뿐만 아니라 할당 된 확률도 있기 때문에 '더 우수'합니다.

정상적인 데이터 포인트를 플로팅하여 그 확률을 보여주고 싶습니다. 측정 된 PDF가있는 것이 바이올린 플롯을 보여줍니다.

나는 (AN MWE에서) 같은 약간 보이는 플롯을 통해 산포도와 이런 짓을 한 지금까지 :

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가 있습니다. 바이올린 음모처럼 보이는 줄거리를 어떻게 만들 수 있습니까?

+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

관련 문제