Hallo Community,
ich hab mal wieder ein Problem und finde die Lösung einfach nicht...
Ich erzeuge mit savefig png-files die anders sind als mit plt.show() ?! Zum Beispiel rechne ich eine Trajektoie im 3d-Raum, deren zuletzt berechnete Position mit einem Punkt in der xy-Ebene über eine Linie verbunden ist... das soll so nicht sein...
kann ich savefig an show anpassen, dass beide exakt gleich aussehen ?
Danke euch !
savefig anders als plt.show() ?
@Grizzly: Eigentlich sollten die mehr oder weniger gleich sein. Es werden halt verschiedene Backends verwendet um die selben Daten darzustellen. Jetzt ist die Frage welche Darstellung hier das Problem hat. Du könntest ja mal andere Formate wählen, bei denen andere Backends verwendet werden. Also zum Beispiel PostScript, PDF, und SVG. Und da schauen ob die Linie auch gezeichnet wird.
Ansonsten wäre ein kleines, selbstständig laufendes Beispiel praktisch, damit man das selbst mal nachvollziehen kann.
Ansonsten wäre ein kleines, selbstständig laufendes Beispiel praktisch, damit man das selbst mal nachvollziehen kann.
Komischerweise taucht der strich jetzt auch bei plt.show() auf ?
Vielleicht liegt das Problem doch innerhalb meines Codes...
Hier mein Lieblingsbeispiel:
Auch sind im rechten subplot die unberechneten Werte um Null, wo eigentlich keine seien sollten ?
Ich bitte um eure Hilfe
Vielleicht liegt das Problem doch innerhalb meines Codes...
Hier mein Lieblingsbeispiel:
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
delta = 10.
r = 28.
b = 8./3.
dt = 1e-3
Nt = 4e4
x = np.zeros(Nt+1)
y = np.zeros(Nt+1)
z = np.zeros(Nt+1)
x[0] = 1.
y[0] = 1.
z[0] = 1.
for i in range(int(Nt)):
x[i+1] = (delta * (y[i]-x[i])) * dt + x[i]
y[i+1] = (-x[i]*z[i] + r*x[i] - y[i]) * dt + y[i]
z[i+1] = (x[i] * y[i] - b * z[i]) * dt + z[i]
if i in range(0,int(Nt)+10000,10000):
fig = plt.figure(facecolor='white', figsize=(12,5))
ax = fig.add_subplot(1,2,2)
plt.ticklabel_format(style='sci', axis='x', scilimits=(0,4))
h1, = ax.plot(x,'b', lw='1.')
h2, = ax.plot(y,'r', lw='1.')
h3, = ax.plot(z,'g', lw='1.')
plt.xlim(0, Nt)
plt.ylim(-30, 50)
plt.legend([h1, h2, h3], ['x', 'y', 'z'])
plt.xlabel('number of timesteps')
plt.ylabel('values')
ax.grid()
ax = fig.add_subplot(1,2,1,projection='3d')
ax.plot(x,y,z,'b')
ax.set_xlim(-20, 20)
ax.set_ylim(-25, 25)
ax.set_zlim(0, 50)
ax.set_xlabel("X Axis")
ax.set_ylabel("Y Axis")
ax.set_zlabel("Z Axis")
plt.show()
#fig.savefig('/XX/YY/lorenz_%05d.png' % i)
Ich bitte um eure Hilfe
Zuletzt geändert von Anonymous am Freitag 31. Mai 2013, 12:43, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Grund: Quelltext in Python-Code-Tags gesetzt.
Ach ich Idiot... hab den Fehler gefunden.
Einfach in den plot Befehlen nach den Variablen die Indizes einfügen: x[:i],y[:i],z[:i] und schon passts !
Wie immer, erst posten und danach das Denken anfangen...
Trotzdem Danke !
Einfach in den plot Befehlen nach den Variablen die Indizes einfügen: x[:i],y[:i],z[:i] und schon passts !
Wie immer, erst posten und danach das Denken anfangen...
Trotzdem Danke !