Seite 1 von 1
3-Dim Graphen plotten
Verfasst: Sonntag 8. Januar 2012, 19:26
von Hanuta
Hallo,
ich bin ein Python-Neueinsteiger.
Ich schreibe ein Programm in dem ich einen 3-dimensionalen Plot machen will.
Im Prinzip möchte ich Werte auf einem Gitter plotten.
Genauer: x soll die Werte 0, 1/n*3, 2/n*3, ..., 3 und y die Werte 0, 1/m*4, 2/m*4, ... , 4 annehmen.
Dann soll eine Funktion z(x,y) geplottet werden.
Ich habe es so versucht:
x = linspace(0,3,n)
y = linspace(0,4,m)
z = 2*x+y
plot(x,y,z)
show()
Leider klappt es so nicht und es erscheint die Fehlermeldung:
ValueError: operands could not be broadcast together with shapes (9) (8)
Vielen Dank.
Mfg, Hanuta
PS: Python macht Spaß :K
Re: 3-Dim Graphen plotten
Verfasst: Sonntag 8. Januar 2012, 19:32
von Hyperion
Vielleicht wäre es sinnvoll die Lib / das Framework oder das Modul anzugeben, welches Du verwendest

Re: 3-Dim Graphen plotten
Verfasst: Montag 9. Januar 2012, 15:39
von Hanuta
Meinst du das folgende?
from __future__ import division
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
from numpy.linalg import solve
from matplotlib import cm
from numpy import array,zeros,pi,sin,cos,exp,arange,meshgrid
from numpy import *
from matplotlib.pyplot import figure, plot, show
from matplotlib.pyplot import plot, title, show, legend
from numpy import linspace, pi, sin
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
n=9
m=8
Re: 3-Dim Graphen plotten
Verfasst: Montag 9. Januar 2012, 16:04
von EyDu
Hallo.
Die Fehlermeldung sagt es doch eigentlich schon: x und y haben verschiedene Größen. Nur weil du einfach multiplizierst wird daraus noch kein Gitter. Schau dir mal
dieses Beispiel an, dort steht wie es richtig gemacht wird.
Deine Importe solltest du dringend aufräumen. Die sehen nicht so aus als wüsstest du was du eigentlich tust.
Sebastian
Re: 3-Dim Graphen plotten
Verfasst: Montag 9. Januar 2012, 16:06
von gkuhl
Hanuta hat geschrieben:Meinst du das folgende?
Nein, die Frage war welche Bibliothek du verwendest: Scheint ja Matplotlib zu sein. Das sind übrigens eindeutig
zu viele ``import``e, folgendes würde es auch tun:
Code: Alles auswählen
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
Ansonsten gibt es für Matplotlib
dieses schöne Sammlung von Beispielen, in der es auch Beispiele für 3d Plots gibt.
Grüße
Gerrit
Re: 3-Dim Graphen plotten
Verfasst: Dienstag 10. Januar 2012, 14:32
von Hanuta
Ok, ich bin mit den beispielen nicht gut zurecht gekommen und formuliere mein Problem nochmal exakter:
Ich habe eine Funktion z(x,y), welche auf einem 2d-Gebiet werte (Temperaturen), also reelle werte annimmt. Und hätte gerne einen Funktionsplotter dazu. Nach Möglichkeit hätte ich gerne eine farbliche Ausgabe auf einem 2d-Gebiet. Ich habe nur Werte an bestimmten x,y-Stellen, wobei es nicht genau so viele x- wie y-werte gibt.
Ansonsten steht mein Programm eigentlich schon komplett. Ich benutze leider zum ersten mal python und brauche es auch nur für dieses eine programm....
LG,
Hanuta.
Re: 3-Dim Graphen plotten
Verfasst: Mittwoch 11. Januar 2012, 03:38
von gkuhl
@Hanuta: In dem Fall würde ich 'pcolormesh' (bzw. 'pcolor'), 'imshow' oder 'countour' (bzw 'countourf') benutzen. Dazu gibt es auch einige Beispiele in den
Matplotlib Beispielen.