Zum Inhalt

Daten Visualisieren

Matplotlib

Um mit Python Daten visuell darzustellen, eignet sich die Software-Bibliothek matplotlib. Damit wir matplotlib verwenden können, müssen wir die Bibliothek zuerst importieren:

import matplotlib.pyplot as plt
Danach können wir über die spezielle Variable plt zugreifen und Diagramme zeichnen. Die eigentlichen Funktionen der Bibliothek können wir über diese plt Variable aufrufen, d.h. die plot Funktion von matplotlib erhalten wir durch plt.plot().

Ein unkompliziertes Diagramm erhalten wir, in dem wir ein Feld mit Werten an die plot Funktion übergeben, sowie die show Funktion aufrufen um das Diagramm darzustellen. Dadurch werden die Werte aus dem Feld auf der y-Achse abgebildet, während die x-Achse die Position im Feld anzeigt.

Beispiel: Einfaches Liniendiagramm

Deine Abbildung

Deine Abbildung wird hier erscheinen

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

In diesem Diagramm werden die Werte aus dem Feld als 0.0, 1.0, ... auf der x-Achse abgebildet. Falls die Werte nicht gleichmässig auf der x-Achse verteilt sind, bzw. falls diese Achse eine eigene Bedeutung trägt, dann können wir die x-Werte auch gezielt angeben mit einem zweiten Feld:

Beispiel: Einfaches Liniendiagramm mit x & y Werten

Deine Abbildung

Deine Abbildung wird hier erscheinen

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Für ein gutes Diagramm sind immer die Achsen zu beschriften, andernfalls erkennt man nicht was dargestellt wird. Dies kann mit den Funktione xlabel und ylabel gemacht werden. Um dem Diagramm einen Titel zu geben, kann die Funktion title verwendet werden.

Beispiel: Einfaches Liniendiagramm mit Beschriftung

Deine Abbildung

Deine Abbildung wird hier erscheinen

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Daten können auch in einer anderen Diagramm Form dargestellt werden, mit der Funktion bar kann z.B. ein Säulendiagramm erstellt werden:

Beispiel: Daten darstellen mit Säulendiagramm (Bar plot)

Deine Abbildung

Deine Abbildung wird hier erscheinen

Mit der Bibliothek matplotlib können wir relativ einfach Daten visualisieren.

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

Aufgaben

Würfel Verteilung: absolute Häufigkeit

Question

Stelle die erhobenen Daten aus deinem Würfel experiment hier dar:

Deine Abbildung

Deine Abbildung wird hier erscheinen

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

.128013öeuh9Tt_l!3HdVcmo(a]:L5D ü2xäs;f1v760gn[Wbpri=)/wyjPz,k.S48050n0c0h0t0T0j0E0z0p0j0t0E0E0U010h0T0R010406050E0d0q0q0t0S0Y040w0b160N0M050W16181a1c140R04051q1j1t0W1q140n0T0I0@0_0{0}0e0T0M0e0j1H0e0h12050/0Q0j0c1C0`0|011G1I1K1I0h1Q1S1O0h0S1r0h0e0@0r0=0R0t0N0}0B011U1E010G0;0c0N0t0q0c1O0E1=0N1{1W1~1S2123120a0z1e1g0M0E0I0r0S0E0p1J0t1i1k271r0W1-2w1*1,1+1P0n290}1K0N200r0E1O1z1B0^1V2G0T2I0N0r2N1O0R0S0c1r261?2w2$0N2#272F012U0S190j120z0H1j2)13152,2P1|2/2;2?0B2_2v142)2-300t2=040z0l342%362}1D1W393b0z0*3f2*3h1?382n313c0x3p2{372~3k3u3a2?0K3y3r283B0}3l2?0J3H2|3s3K2.3D3m0+3P3A3j3L3U2?0f3X3i2Q3T2:3E040H0L3(3R3Z3+3v0H2^2u3g3Q3J3?3M3.333{3q3}3t3,3b0H3e433z3)2 3#3.3o4b3I463^3x4i453S400H3G4n3Y3*4q3O4b1u2Z2w2N2z0n1,2E3S0p2V241r4C1s4A3}2(2v054I0-2+3=3*0%0N120T0q0R2n0h3y0z4o3 4Z04190h0R0j0r0h1K0Q0(0R0Y4=4@4*4,4X120`504u2 4.4=4)4i4j4H0H12030z0y0T0c0E0c0S0z0g0c0;0z0q0d0{0z0E0r0z1R5q0Q200k3;3~4v121~0M3`2`4+561W0r120U554d3k120!0Y2V0T0-0!4?5a2`511|11040s3y5*1W0E5e0402030l0f0F4~0h0i0B5^5`0F5/5O0}5,0V5F385I1H5L4R65015Q040(645U3L120/0S0M0.6k4W5+120s685b5:0}0p5?5g0P5j0z0r0G0h0z0Z0c0-5n0P5m6J6q0X0A0S0G0c0j6J0X0d0S0-694p530N0#0t1J5T6t5P5R6/5G6u040O6s6@1W0q0T12425)6f5,0$6?2-6~126d2%6z0174763S78044a726l7d12754b5N7l7h7j6e7l7e7p7c7h7a2*7c7w5M7y6 04717u6:66120u3H5c3?6B5f5h6F0)5q0h200z5q2I0?0P6U6W0=6(3 126T6V6X7V0T7X7f3?6h5S7x73126`4y6f7z6{2-7D2v7q7K017h7I7b7|047o7E807G7t8b7v7n7@3*7h4h7k87842%866|0}7h4m8q8v7m8d8m1|7h4s8z837M7O7c586Y823S6h6j7 7l4.0Q1a8O3?5,5.8S874.7.7)7;7?8#8A8s2*8u6a041?6,6.8,8I046x2`7P5H04598X3*8Q922 6n7=1S951W8Z9a0}5=12615{0o6Q5q0j0d1h0z2m287%7/0j0X9k0N0v0z0t0Q5x9m0h9h638_3S677+8 919H7^128R8H6)040C0_5C0j9d8B8!9R3?9f5@5_5{9s7)0z8*0c9F9Y9J4t8T129M9#939P9Y4.0Y9V6X9;6v9Y9%9F9A9C0d7X0z0m0D0d5J0%7W9:9N3*9=8}8L9^8Naj1|94aq5V040E0e0r0Xa25-8|351j4T2!4zaG0W4M2x4E1j2AaN9A1S4B1A2{aJ0.0:0=04.
Lösung
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import matplotlib.pyplot as plt

# Dieser Teil muss so bleiben!
fig1 = PyodidePlot('plot_2')
fig1.target()

# Wie oft jeder Wert gewürfelt wurde
anzahl = [2, 1, 3, 3, 1, 2]

# Die Seiten eines Würfels
würfelSeite = [1, 2, 3, 4, 5, 6]

plt.bar(würfelSeite, anzahl)
plt.title('Verteilung von Würfelwerten: absolut')
plt.xlabel('Würfel Seite')
plt.ylabel('absolute Häufigkeit')
plt.show()

Würfel Verteilung: relative Häufigkeit

Question

Stelle die erhobenen Daten aus deinem Würfel experiment hier dar:

Deine Abbildung

Deine Abbildung wird hier erscheinen

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

.128013öeuh9Tt_l!3HAdVcFmo(a]:L5D ü2xäs;f1v760gn[Wbpri=)/wyjPz,k.S48050o0c0h0v0V0j0G0B0q0j0v0G0G0W010h0V0T010406050G0d0s0s0v0U0!040y0b180P0O050Y181a1c1e160T04051s1l1v0Y1s160o0V0K0_0{0}0 0e0V0O0e0j1J0e0h14050;0S0j0c1E0|0~011I1K1M1K0h1S1U1Q0h0U1t0h0e0_0t0@0T0v0P0 0D011W1G010I0?0c0P0v0s0c1Q0G1@0P1}1Y201U2325140a0B1g1i0O0G0K0t0U0G0q1L0v1k1m291t0Y1/2y1,1.1-1R0o2b0 1M0P220t0G1Q1B1D0`1X2I0V2K0P0t2P1Q0T0U0c1t281^2y2(0P2%292H012W0U1b0j140B0J1l2+15172.2R1~2;2?2^0D2{2x162+2/320v2@040B0l362)382 1F1Y3b3d0B0,3h2,3j1^3a2p333e0z3r2}39303m3w3c2^0M3A3t2a3D0 3n2^0L3J2~3u3M2:3F3o0-3R3C3l3N3W2^0f3Z3k2S3V2=3G040J0N3*3T3#3-3x0J2`2w3i3S3L3^3O3:353}3s3 3v3.3d0J3g453B3+313%3:3q4d3K483`3z4k473U420J3I4p3!3,4s3Q4v4f3E49140J3Y4A3@4x4h0J3)4H404J4D040D3=4N4m3/0D3|2|4l4r4h0D444Z4q414$4c4)4w4g4Q0D4j4.4B3$4;4o4@4I4:3x0D4u4|4O4~4W4z2|1w2#2y2P2B0o1.2G3U0q2X261t5b1u593 2*2x055h0/2-4}1Y0)0P140V0s0T2p0h3A0B4*4x5y041b0h0T0j0t0h1M0S0*0T0!5N5P5F5H1~0)140|5Y4/3m5J5N5E4k4!3^0q0J14030B0A0V0c0G0c0U0B0g0c0?0B0s0d0}0B0G0t0B1T610S220k3?533m14200O4Y2x5G5)0 0t140W5(4^2:140$0!2X0V0/0$5O5-576p0113040u3A5Z1Y0G5=0402030l0f0H5W0h0i0l6S6U0H6M6H6J0X6g3a6j1J6m2)6N6q140*6(6v5J0;0U0O0:6_5v0 6J0u6+5.5/3,5;5?0B0n0S0B1I5}0x0B0/2U0B0$0U0t0O0U240s3J771~79045@0R5`0B0t0I0h0B0#0c0/5~0R5}7E6~0Z0C0U0I0c0j7E0Z0d0U0/6,4r5$0S680j0d0h0c0n0P0%0v1L6u71016r046t4d6o6v6J0Q706h0 0s0V144(5q6)140(7;8001824E7 2/6J897`6=8c83044-867|888a2/8d8n8f3U8h8s3U8u6:2,8k8y8j6H8u856;87040w7t8k7w5@5_1V0+617*2a612K0^0R7P7R0@7Z41147O7Q7S8U0V7*8z3^7@7_2|7{7=7}8w3^8B8}3,8F8_8k8I901~926n948m8o8K8q048i938H8m4?8p8{8r8G6v8u4{9l8b982)8`8b8u519s8g148N5.8P6Q8R5`5|0^0r7S2G7%0j7i7A2#0{110K1V0m0F0d6k0)8V6a8Y0e3c8W8)4x149S0v9U0c9X9Z1J9#8:8=3,8@9{97140Q9D4Z7u6i040h5P3c9~1Y9}9o7=0P0S141n961Y73aj3N7#7%7)7+7-7/0jam6I1475522/5#040I2paaan040EaF7?0Z5z0PaJ5J0v7$1=aq7,7.7:4d8E140x3J0Ba$9w6-049/9;9?9!8Vav7@6^aX6HaP0T0T220oavala?6`14aIad8b7@0YaO14a70;aua 9m04ay37a4aG5,a:6@av5J0S1ca}146Lbc8b5J8,8%8/8;bt9B9fb7a*7S9:1C9=9Ya.9`bA8xax9,3114bjbM8?blbT9-a68:1Ubq6Kav6P146#6V8#8-9P0p7L617(1jb*6%bW9 bebPa5bS6G6va;bmb10{6dbbb bdbsc78bb(6R6Tb+8$7S0Bby0cb@b#bf3~a@bR7Tbk04a=caa)0!c47Sb#c99A3Uccb@a+bH0Ba-9^8Vclb_akbO4U7!04b~cCbUctc2040G0e0t0ZcAcn460Y5s2$58c,0Y5l2z5d1l2Cc?aQ1U5a1C2}c/0:0=0@04.
Lösung
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import matplotlib.pyplot as plt

# Dieser Teil muss so bleiben!
fig1 = PyodidePlot('plot_3')
fig1.target()


# Ab hier: dein Programm

# Wie oft jeder Wert gewürfelt wurde
absoluteAnzahl = [2, 1, 3, 3, 1, 2]

# Die Seiten eines Würfels
würfelSeite = [1, 2, 3, 4, 5, 6]

# Dieses Feld soll die relative Häufigkeit beinhalten
relativeHäufigkeit = []

total = sum(absoluteAnzahl)
for x in absoluteAnzahl:
    relativeHäufigkeit.append(x / total)

plt.bar(würfelSeite, relativeHäufigkeit)
plt.title('Würfel Verteilung')
plt.xlabel('Würfel Seite')
plt.ylabel('relative Häufigkeit')
plt.show()

Würfel Verteilung 3: Mit Programm würfeln

Question

Würfle nun mit einem Programm 100, 1000 und 10,000 mal und erstelle ein Diagramm der relativen Häufigkeiten. Was fällt dir dabei auf?

Deine Abbildung

Deine Abbildung wird hier erscheinen

###(De-)Aktiviert den Code nach der Zeile # Tests (Groß-/Kleinschreibung wird nicht beachtet)
(Ctrl+I)
Ein- oder Ausstieg aus dem "Split-Screen"-Modus
(Alt+: ; Ctrl, um die Spalten zu vertauschen)
Ein- oder Ausstieg aus dem "Vollbildmodus"
(Esc)
Kürzen/nicht kürzen der Rückmeldungen im Terminal (Standardausgabe & Stacktrace / Starte das Programm erneut zum Anwenden)
Wenn aktiviert, wird der aus dem Terminal kopierte Text in eine Zeile umgewandelt, bevor er in die Zwischenablage kopiert wird.

.128013öeuh9Tt_l!3HAdIVcFmo(a]?Z:L{5D ü2xäs;f1v760}gn[Wb+pri=)/wyNjPz,k.S48050o0c0h0w0#0j0K0F0r0j0w0K0K0$010h0#0Z010406050K0d0t0t0w0!0*040B0b1f0U0T050(1f1h1j1l1d0Z04051z1s1C0(1z1d0o0#0O101214160e0#0T0e0j1Q0e0h1b050{0X0j0c1L1315011P1R1T1R0h1Z1#1X0h0!1A0h0e100u0~0Z0w0U160H011%1N010M0}0c0U0w0t0c1X0K1~0U241)271#2a2c1b0a0F1n1p0T0K0O0u0!0K0r1S0w1r1t2g1A0(1_2F1?1^1@1Y0o2i161T0U290u0K1X1I1K111(2P0#2R0U0u2W1X0Z0!0c1A2f1 2F2/0U2.2g2O012%0!1i0j1b0F0N1s2=1c1e2^2Y252{2}2 0H322E1d2=2_390w2~040F0l3d2:3f361M1)3i3k0F0?3o2?3q1 3h2w3a3l0D3y343g373t3D3j2 0Q3H3A2h3K163u2 0P3Q353B3T2`3M3v0@3Y3J3s3U3%2 0f3*3r2Z3$2|3N040N0R3;3!3,3@3E0N312D3p3Z3S3 3V3`3c443z463C3^3k0N3n4c3I3=383.3`3x4k3R4f413G4r4e3#490N3P4w3+3?4z3X4C4m3L4g1b0N3)4H3~4E4o0N3:4O474Q4K040H3|4U4t3_0H43334s4y4o0H4b4*4x484-4j4:4D4n4X0H4q4^4I3-4{4v4~4P4`3E0H4B534V554%4G594$3k0H4N5e4,4{4T5j4=4X0l4!5n4W3E0l4)3e4;5t3_0l4/5x4_4J5u4@5D4 405A4}5I545F5A525N5a5P3k0l585S5f1b0l5d5Y5k5u5i5%5o5u5m5+5z3k0?5r5/5b5;5w455E503E0?5C5{5J490?5H615O5}3_0?5M665T685;5R6c5Z040?5X6h5(695$6m5,695*6q5:1b0?5.2:1D2,2F2W2I0o1^2N3#0r2(2d1A6D1B6B462;2E056J0_2@67010:0U1b0#0t0Z2w0h3H0F5y386!041i0h0Z0j0u0h1T0X0;0Z0*6?6^6+6-1)0:1b13715|2`6/6?6*4#3#6Z6#6%6)77626/0!1 0o0u0t3Q4+3 0r0N1b030F0E0#0c0K0c0!0F0g0c0}0F0t0d140F0K0u0F1!7H0X290k3}6d2`1b270T5`2?6,780u1b0$7j6X6/0-0*2(0#0_0-6@7c3372161a040v3H7|010K7v0402030l0f0L6 0h0i0?87890L81787~0%7W3h7Z1Q7$6W7X7*040;8j621b0{0!0T0`8x6X7~0v8m4r7s3?7u7w0F0+0A0F0W7A0O7A0j7J3j0F0)0G0!0M0c0j0U0y8n4y1b0+7-8t7+8:2_0t0#4L0R5?3p8K258M047x0p2h1I7B0c0t0F0s8(0_7N0Z7H2z7D2h0)0#0!0/8Z7A0F0u0M0h0F0,0c0)7H0~0F7H2R0F0z0w1S8,7t857x8C8!8$8(9s0)0d0!0_9G4E750X7O0j0d0h0c0n0U0.9E0j8?3#8u7,4k7(5J7~0V8E7X8^1b8|2?827~0/9+3 9_049{8s2_9~a03?a2a49}1b9 9/82aa9@a6ada825ah4kac04ae339:6Xan7{8k1b0x7r8274040M2wal3t1b0iaG160u0)6#0UaK2`0X1b7m1q0cai3#8GaX488.a!3?8l0A3Q0Fa,at7X6/9P8$aQ9-aQ7l7n7pa%258u8wao78a_0U1I0U7`6Sax7 a|1)a28rapar2Ea.8@8_046l9|b88I4*a-bh7e6#0Ma^1ba;buaf7)7+9.asagbjbdb8a*4rbqbq826/0w9W1|9Z9#9%9)ba7}1b9?b05Javb79;aya?1b0YbCbgbE4L7rbL78aC0#bybDb1bw9Qb^b-bA040$b,2:bra1bj60bmb%04bIbpbKa,bM9V9XbR9$9(9FbZ8FbXbV01bccp7~azbz5J8ub+aQcr8Jb;5Jb?b}c3cf04bxb)c0c27%b.0465c8cncaa+cdc49U04bOch9!cjbUcm7X9=cpa2c7a5aYb(cv6XcxcM3lcO8r0606cC6XcEbvcIb|cKc1czbj6bcRc)1bcb3ecVcW38cgbQc#bTclawc9bYdlaubjcQc.3 ctcKcyc;9^bFb:a-aBbtd0cJdx2_9-c@debbbj6gd8ajcTbJcVcHcZdhbSck9*c(dPdnb$dp6wcsc:b_cwb*dJc_dAceb=dDdG8-d1a=d@3 dId51bbldsa(dacUcddTbP9YdidXd)04d#6z78a2dNe125dud{3?c?d~3`aA78907x7z1$0=7H9!2h9A7B8R8#8%0~9TdfcIeD8(ew0#9!d3aQc*dZ3#cAdod9aqeoc-beeodreZelamd6ebbfcGefdMe*eoe0apcu4*8~1)es7y7A7C0 9a0j2N9X8W950F2,12180O1$0m0J0d7!0:ex7Q9A0e3jeyeGaH04f60wf80cfbfd1QffeMeOe%1)9=e?3ee^3U8z6^3jfyd+7.aS041ueb80eRa#cYe7cidjdYeUdPbo5@737ZaFfzfF040Ia?aN042#d0dUe8dWc%fYc/dQccd;8yfo8(fq1Jfsfcfeexcpa~cpbN0Z9eb3fPg91bf,f)018u0(d00hfHfXd$eVf!8}cH7bg71ba f_fS0X1jgefRcX9LeEeLeNgEejakgi7lg0frftg5fxgKfA1bgs4db`04gvgUaLgxgf04186_aWg$01aZg.0K0w7Zcp841b8g8a0WeJ8W0q7D9!0}0d1q8Qg^bj0Cg)8/g;bj0Sg^850F0.fd0J0j1-1$g}9Mg{8ig.8lfmf*g#gzemg(g.6/0I127Tgpeec9fQhx25g_8688g|g~0FgI0chqebgX4l7.1bhwgqdHhzhJfn0*hD8(gDh%16hLhqfpfr0FgRfvexhThsgWhu7Yg!0jb6hGc=h$h!d^0K0eaMfPhV1d0(6U2-6Aif0(6N2G6F1s2JimbO1#6C1J34ii0`0|0~04.
Lösung
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import matplotlib.pyplot as plt
import random

# Dieser Teil muss so bleiben!
fig1 = PyodidePlot('plot_4')
fig1.target()

# N: Wieviel mal würfeln?
N = 100

# In diesem Felde speichern wir, wie oft jeweils eine Zahl
# gewürfelt wurde
absoluteAnzahl = [0, 0, 0, 0, 0, 0]

for _ in range(N):
    wurf = random.randint(1, 6)
    if wurf == 1:
        absoluteAnzahl[0] += 1

    if wurf == 2:
        absoluteAnzahl[1] += 1

    if wurf == 3:
        absoluteAnzahl[2] += 1

    if wurf == 4:
        absoluteAnzahl[3] += 1

    if wurf == 5:
        absoluteAnzahl[4] += 1

    if wurf == 6:
        absoluteAnzahl[5] += 1

# Die Seiten eines Würfels
würfelSeite = [1, 2, 3, 4, 5, 6]

# Dieses Feld soll die relative Häufigkeit beinhalten
relativeHäufigkeit = []

total = sum(absoluteAnzahl)
for x in absoluteAnzahl:
    relativeHäufigkeit.append(x / total)

plt.bar(würfelSeite, relativeHäufigkeit)
plt.title(f'Würfel Verteilung: {N} zufällige Würfe')
plt.xlabel('Würfel Seite')
plt.ylabel('relative Häufigkeit')
plt.show()