Ich habe ein Problem, wo ich versuche, ein Diagramm der Gibbs-Verteilung P = exp (-E/kT) in 3D (P vs E vs T) zu machen) und setze Gitterlinien darauf. Ich möchte im Prinzip den einen hier http://arxiv.org/pdf/0803.0217.pdf oben auf Seite 3 reproduzieren, aber wenn ich Gitterlinien einfüge, wird der Durchschnitt über zu viele Daten und mein Plot sieht einfach fast flach aus (es hat nicht den scharfen Abfall bei T-> 0) weil es über zu viele Daten mittelt). Könnte mir jemand dabei helfen? TyGnuplot: Stoppt Gitterlinien im Durchschnitt über Daten im 3D-Plot
Antwort
Wenn Sie versuchen, diese Funktion mit den Standardbereichen grafisch darstellen, werden Sie ein Bild erhalten, die fast flach ist
# Arbitrary value for k.
# I am not familiar with the physics here, so this may or may not be a reasonable value.
k = 2
P(E,T) = exp(-E/(k*T))
set xlab "Energy"
set ylab "Temperature"
splot P(x,y)
Hinweis, dass es Spitzen bei y = 0 (y Temperatur) und diese Spitzen nähern sich signifikanten z-Werten (3,5 x 10^21). Da der Rest der Werte nie 1 überschreitet (was eine Wahrscheinlichkeit ist), überwältigen diese Spitzen alles andere, so dass der Graph anderswo flach erscheint. Das Anpassen der Iso-Samples, wie in Kommentaren vorgeschlagen, wird dabei nicht helfen.
Es ist nicht schön, aber wir können sehen, wo dies passiert, wenn wir den z-Bereich auf ein kleines Intervall mit set zrange[0:2]
beschränken.
Das Problem hierbei ist, dass die Funktion für niedrigen Temperaturen mit negativen positiven Energien (und vice versa) gegen unendlich geht. Niedrige positive Temperaturen (mit positiven Energien) haben dieses Problem nicht (die Funktion ist bei T = 0 undefiniert, aber die Grenze, wenn T von oben auf 0 zugeht, ist gut definiert als 0, wenn E> 0 ist). Im Kontext macht es keinen Sinn, dass x oder y sowieso negative Werte haben.
Um dies zu beheben, lassen Sie uns die x gesetzt und y im Bereich von 0 bis 8 (passend zum verknüpften Bild) zu sein, und drehen Sie die isosamples bis
set xrange[0:8]
set yrange[0:8]
set isosamples 100
Jetzt mit Plotten (ein feineres Netz zu geben) splot P(x,y)
erzeugt ein Bild, wie die gewünschten
oder mit einer etwas gröberen Masche (set isosamples 30
)
Beachten Sie, dass hier die Zeile bei Temperatur = 0 fehlt. Dies liegt auch daran, dass die Funktion dort nicht definiert ist. Wir können einen Bereich sehr nahe bei 0 setzen, aber weg von 0, um dies zu kompensieren (im feineren Mesh-Gnuplot haben wir entweder gar keine Zeile versucht, oder die fehlende Zeile war zu dicht, um es zu bemerken) mit set yrange[0.001:8]
.
- 1. "Über der Falte" Fenstergröße im Durchschnitt
- 2. Durchschnitt und Konfidenzintervall mit gnuplot
- 3. Durchschnitt der Werte in Spalten im Dataframe?
- 4. Gnuplot: Leistung plotten Daten über eine Leitung
- 5. R ggplot2 - keine Hintergrund- oder Gitterlinien im Plot mit RGui
- 6. Gnuplot Farbe der Balken im Histogramm ändern
- 7. Wie im Laufe der Zeit im Matlab Fints Zeitreihe Objekt im Durchschnitt?
- 8. Gruppierung von 2D-Numpy-Arrays im Durchschnitt
- 9. Schiebefenster Durchschnitt über Zeitachsen
- 10. Code VBA stoppt Zelle im ersten Raum
- 11. gnuplot plot beschriftet Daten
- 12. NSTimer stoppt nach einiger Zeit im Hintergrund
- 13. Signifikante Standortänderungen Überwachung stoppt im Hintergrund
- 14. Tableau Durchschnitt von "über dem Durchschnitt"
- 15. Schleife über Array in gnuplot
- 16. in einem Bereich für jedes Datum min Werte von Zeit und bekommen im Durchschnitt im Orakel
- 17. Gnuplot: Zweite Legende im Multiplot hinter dem Gitter
- 18. Ändern der Randausrichtung in gnuplot im Multiplot-Modus
- 19. Einstellen des Ursprungs in Gnuplot, wenn im polaren/parametrischen Modus
- 20. Daten im Matrixformat anzeigen?
- 21. Daten im Vordergrund?
- 22. Keine Daten im Flächendiagramm
- 23. Andere Daten im Verzeichnis
- 24. ENUM im Frühjahr Daten
- 25. Wie man im Vordergrund den dockerisierten Nginx von Überflutungsprotokollen stoppt?
- 26. Durchschnitt über harte Partition definieren
- 27. Gnuplot - Splot-Matrix CSV-Daten
- 28. Gitterlinien überlappen sich
- 29. Wie kann der Durchschnitt im laufenden Betrieb effizient berechnet werden (gleitender Durchschnitt)?
- 30. Durchschnitt aller geraden Zahlen im Array mit For/While-Schleife?
Wie sieht Ihr nicht funktionierendes Skript aus? – Christoph
check 'help isosamples' – bibi
@bibi Isosamples wird das nicht beheben. Dies liegt nicht an der "Mittelwertbildung über zu viele Daten", wie das OP vorgeschlagen hat, sondern daran, dass die Funktion eine Singularität bei T = 0 hat. – Matthew