Bergervei/Python-Balkendiagramm

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Python</language>
== Balkendiagramm ==

<code id="63ac2383f3774">
canvas = window.Canvas
turtle = window.Turtle

rand = 50
maxbreite = 400 - 2 * rand
maxhoehe = 300 - 2 * rand
        
def minmax(ls):
    erg = [0, 0]
    for i in range(len(ls)):
        if erg[0] > ls[i]: erg[0] = ls[i]
        if erg[1] < ls[i]: erg[1] = ls[i]
    return erg
    
def balken(turtle, hoehe, breite):
    turtle.forward(breite); turtle.left(90)
    turtle.forward(hoehe); turtle.left(90)
    turtle.forward(breite); turtle.left(90)
    turtle.forward(hoehe); turtle.left(90)
    turtle.forward(breite)

def balkendiagramm(turtle, ls):
    breite = maxbreite / len(ls)
    extrem = minmax(ls)
    minwert = extrem[0]; maxwert = extrem[1]
    turtle.penUp()
    turtle.right(90)
    turtle.move(rand, rand + maxwert / (maxwert - minwert) * maxhoehe) 
    turtle.penDown()
    for i in range(len(ls)):
        balken(turtle, ls[i] / (maxwert - minwert) * maxhoehe, breite)
</code>

== Zufallszahlen ==
<code id="63ac2383f37c0">
from random import randint

def zufallsliste(von, bis, anz):
    ls = []
    for i in range(anz):
        ls.append(randint(von, bis))
    return ls
</code>

<canvas w="400" h="300"></canvas>

<run id="63ac2383f3809">
c = canvas.new(1); c.clear()
t = turtle.new(1); t.hide()

ls = zufallsliste(1, 100, 50)
print(ls)
balkendiagramm(t, ls)
</run>