Ich habe ein Diagramm mit mehreren Datenpunkten, die ich behalten möchte, wie es ist.Violinplot Stil Histogramm in Plot
Einer der Datenpunkte ist "besser", weil es nicht nur einen Wert, sondern auch eine zugewiesene Wahrscheinlichkeit enthält.
Ich möchte diese Wahrscheinlichkeit zeigen, indem Sie die normalen Datenpunkte aufzeichnen, und für den mit der gemessenen PDF zeigen Sie einen Violinplot.
Bisher habe ich diese über aufgetragen mit einem Streudiagramm durchgeführt, die etwa so aussieht (in einem 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()
, die wie folgt aussieht:
Während das funktioniert und transportiert die Botschaft - sieht aber nicht cool aus.
Nach dem Vorschlag von @ jadsq, entdeckte ich violinplots, die genau so aussehen, was ich will!
Ich habe jetzt das Problem, dass die Violinplot-Funktion Daten annimmt und dann bequem das PDF zeichnet. In meinem Fall habe ich bereits ein gemessenes PDF (was ich grafisch darstellen möchte). Wie könnte ich eine Handlung machen, die dem Violin-Plot ähnelt, aber mit meinem PDF (also ohne die Schätzung)?
Sie auch '' seaborn' swarmplot' betrachten könnte: https://seaborn.pydata.org/generated/ seaborn.swarmplot.html # seaborn.swarmplot – tom