Seite 1 von 1

Verfasst: Dienstag 23. September 2008, 12:26
von CM
Goswin hat geschrieben:@CM:
Wie auf den scipy-Webseiten über die scipy-Packages bereits geschrieben steht: "unfortunately very few are currently documented". Unter anderem ist scipy.stat nicht auf den Webseiten dokumentiert. Ich habe die vielleicht dumme Angewohnheit, undokumentierten Code unbeachtet zu lassen. Wenn ich es herunterlade, kann ich am Code sehen was das Paket enthält?
Natürlich:

Code: Alles auswählen

dir(namespace)
sagt Dir, was im Namespace so drinne ist. Im Übrigen kann ich Dir die scipy-Mailingliste ans Herz legen. Dort kannst Du bei spezifischen, mathematisch geprägten Fragen rund um Python (fast) sicher brauchbare Information erhalten - auch zu Aspekten neben scipy.

HTH
Christian

Verfasst: Dienstag 23. September 2008, 17:42
von Goswin
@CM: Mach ich. Danke für die Info.

Verfasst: Mittwoch 24. September 2008, 17:08
von abgdf
@Goswin:
In meinem Beispiel oben hatte ich "Pygame" zum Zeichnen verwendet.
Für den Fall, daß Du "Pygame" nicht verwenden kannst, hab' ich's hier nochmal in Tkinter gemacht. Das geht dann mit den "included batteries":

Code: Alles auswählen

#!/usr/bin/env python

import math

import Tkinter
from Tkconstants import *
 
# Screen resolution:

RESX = 800
RESY = 600

class GaussWindow:

    def __init__(self):

        self.mw = Tkinter.Tk()
        self.mw.option_add("*font", ("Arial", 12, "normal"))
        self.mw.title("Gauss")
        self.mw.geometry("+90+45")

        self.cv = Tkinter.Canvas(self.mw,
                                 bg = "white",
                                 width = RESX,
                                 height = RESY)

        self.cv.pack()

        self.drawGauss()

        self.btn = Tkinter.Button(self.mw,
                                  text = "Ok",
                                  command = self.mw.destroy)

        self.btn.bind(sequence = "<Return>", func = self.bindFunc)
        self.btn.focus()

        self.btn.pack(side = RIGHT,
                      padx = 10,
                      pady = 10)

        self.mw.mainloop()


    def bindFunc(self, a):
        self.mw.destroy()


    def drawGauss(self):

        b = 0.3
        ULIM = 100.
        UDIV = 1.8

        for u in range(0, int(ULIM), 1):

            # Some mathematical, Gaussian calculations:

            a = float(u) / (ULIM / UDIV)

            if u > ULIM / 2:
                a = UDIV - (float(u) / (ULIM / UDIV))

            m = u / 16.

            for x in range(50, RESX - 50):

                c = x / (RESX / 16.) - 5.
                y = a * math.exp(-b * (c - m) * (c - m))

                # down:
                y = RESY / 10 + (y * RESY / 1.5 + u * 3)

                # up:
                # y = RESY * 9 / 10 - (y * RESY / 1.5 + u * 3)

                self.cv.create_line(x, y, x + 1, y + 1)

 
if __name__ == "__main__":
   app = GaussWindow()
Viele Grüße