Importe für colorbar() aus matplotlib

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
F.S.
User
Beiträge: 7
Registriert: Donnerstag 17. Juni 2010, 09:51

Um 2D-Plots zu "beschriften" nutze ich die Funktion colorbar() aus der matplotlib,
in etwa wie hier:
http://matplotlib.sourceforge.net/examp ... _demo.html

Allerdings möchte ich gerne den häßlichen Sternimport

Code: Alles auswählen

from pylab import *
vermeiden und importiere die Funktionen einzeln.
Dabei bekommen ich allerdings von der colorbar die Fehlermeldung
TypeError: 'module' object is not callable
die mit komplett importiertem Pylab nicht auftritt.
Die Farbleiste schweigt sich allerdings aus, was ihr für Elemente fehlen.

Weiterhelfen würden mir:

1. Eine Möglichkeit, eine einzelne Funktion aus dem Sternimport auszunehmen (die Funktion fmin, die den kleinsten Wert eines Arrays sucht und gerne Fehler verursacht, da sie genauso heißt wie die von mir ebenfalls verwendete Funktion fmin aus scipy.optimize).
2. Die Information, was ich für die colorbar noch explizit importieren muss.
3. Eine Möglichkeit 2 herauszufinden - Ausschlussverfahren ist bei dem Riesenhaufen den Pylab zusammensammelt kaum eine Lösung.


Danke schonmal. :)
(Achja, ich arbeite mit Python 2.6 in eclipse)
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

1. "Namespaces are one honking great idea -- let's do more of those!" (from the Zen of Python)

Code: Alles auswählen

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
2.

Code: Alles auswählen

from matplotlib.pyplot import colorbar
3. "from pylab import *" sollte man nur im interaktiven Modus verwenden, wenn man sich die Schreibarbeit sparen möchte. In Skripten oder bei komplexeren Dingen sollte man *-Importe general verzichten, da sie unangenehme Nebeneffekte auslösen können:

Code: Alles auswählen

In [1]: import random

In [2]: random.randint(0,10)
Out[2]: 4

In [3]: from pylab import *

In [4]: random.randint(0,10)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/gerrit/<ipython console> in <module>()

AttributeError: 'builtin_function_or_method' object has no attribute 'randint'
Grüße
Gerrit
F.S.
User
Beiträge: 7
Registriert: Donnerstag 17. Juni 2010, 09:51

Hi,


Habe mal die ganze Importliste umgeschrieben, jetzt geht's, auch wenn ich mir nicht 100% erklären kann, warum es bei der alten Import-Liste in dem Stil hier nicht geklappt hat:

Code: Alles auswählen

from numpy import arange, meshgrid, zeros
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import colorbar, cm
from matplotlib.pyplot import pcolor, axis, grid, show, xlabel, ylabel, title,\
                                plot, figure
import time
(...)
Dankeschön für deine Antwort!
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Du importierst hier das Modul 'colorbar' und eben nicht die High-Level Funktion 'colorbar' aus dem pyplot Modul. Deswegen auch der TypeError.
Antworten