Frage

Ich habe eine Follow-up-Frage zu dieser Frage .

Ist es möglich, die Zahl Generation zu optimieren, indem mehrere Python-Skripte, die die auf den verschiedenen Teilen der Figur arbeiten?

Zum Beispiel, wenn ich habe folgende Funktionen:

  

functiona: Zeichnen Sie ein Histogramm von etwas
  FunktionD: Zeichnen Sie ein Feld mit einem Text in ihm
  FunctionC: Zeichnen Sie ein Grundstück von etwas C
  FunctionD: Zeichnen Sie ein Grundstück von etwas D

Wie gehe ich über die oben genannten Funktionen in verschiedenen Schriften Wiederverwendung? Wenn ich wollte, zum Beispiel, eine Figur mit einem Histogramm mit einem Grundstück von etwas C zu schaffen, würde ich rufen irgendwie functiona und FunctionC von meinem Skript. Oder, wenn ich eine Figur mit den beiden Plots wollte, würde ich nennen FunctionC und FunctionD.

Ich bin mir nicht sicher, ob ich mich klar bin zu erklären, aber eine andere Möglichkeit, diese Frage zu stellen ist: Wie kann ich eine Figur Objekt an eine Funktion und haben dann die Funktion etwas zu dem übergebenen Figur Objekt zeichnen und dann die Rückgabe an das Hauptskript wieder auf andere Dinge wie Titel oder etwas hinzufügen?

War es hilfreich?

Lösung

Hier wollen Sie die Künstler Objekte , und sie passieren nach Bedarf Funktionen:

import numpy as np
import matplotlib.pyplot as plt

def myhist(ax, color):
    ax.hist(np.log(np.arange(1, 10, .1)), facecolor=color)

def say_something(ax, words):
    t = ax.text(.2, 20., words)
    make_a_dim_yellow_bbox(t)

def make_a_dim_yellow_bbox(txt):
    txt.set_bbox(dict(facecolor='yellow', alpha=.2))

fig = plt.figure()
ax0 = fig.add_subplot(1,2,1)
ax1 = fig.add_subplot(1,2,2)

myhist(ax0, 'blue')
myhist(ax1, 'green')

say_something(ax0, 'this is the blue plot')
say_something(ax1, 'this is the green plot')

plt.show()

Andere Tipps

Okey, ich habe herausgefunden, wie dies zu tun. Es war viel einfacher als das, was ich mir vorgestellt hatte. Es bedurfte nur ein bisschen Lesen hier mit der Abbildung und Achsen Klassen.

In Ihrem Haupt-Skript:

import pylab as plt  
import DrawFns  
fig = plt.figure()  
(do something with fig)  
DrawFns.WriteText(fig, 'Testing')  
plt.show()

In Ihrem DrawFns.py:

def WriteText(_fig, _text):  
[indent]_fig.text(0, 0, _text)

Und das ist es! Und ich kann mehr Funktionen in DrawFns.py hinzufügen und sie von jedem Skript aufrufen, solange sie mit import Anruf enthalten sind. : D

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top