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.