10 KiB
parent | tags | |
---|---|---|
Lecture |
|
Content
-
Lösungen MatPlotLib, NumPy
-
Ausgabe - SciPy
-
Bernoulli Distributions
-
Binomial Distributions
-
Normal Distributions
-
Regression
Aufgabe - Erster eigener Plot Square Root
Analog zu voheriger Erklärung plotten Sie im folgenden die Funktion Square Root, Mathematisch definiert als f(x) = \sqrt x; \quad x \geq 0
.
Gehen Sie dabei wie folgt vor:
- Definieren Sie einen geeigneten Linespace für die Zahlenraum 0...100. (Tipp: Achten Sie auf die Definition! Die Wurzel ist nur für positive Zahlen definiert.)
- Berechnen Sie mittels der Funktion np.sqrt die Werte für die Wurzel.
- Plotten Sie das Ergebnis
import numpy as np
import matplotlib.pyplot as plt
# geeigneter Linespace für den Zahlenraum 0 bis 100
x = np.linspace (0, 100, 500) # 500 Punkte für eine glatte Darstellung
# Berechnen der Wurzelfunktion
y = np.sqrt(x)
# plotten der Ergebnisse
plt.plot(x, y, label="f(x)= √x")
plt.title("Plot der Wurzelfunktion")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.grid(True)
plt.legend()
plt.show()
Alea Schleier
Aufgabe¶
6 Punkte
Plote die Zufallszahlen eines Permuted Congruent Generators mittels NumPy & MatPlotLib.
- Gegeben ist der Anfangszustand des Generators.
- Nutze die Dokumentation und rufe den
default_rng
aus demnumpy.random
Modul, 20 mal auf speichere die Werte in der variablenpcgs
. (Tipp: Nutze ein NumPy Array) - Sortiere im nächsten Schritt die in
pcgs
gespeicherten Werte und speichere diese inpcgs_sorted
- Plotte sinnvoll beide Array. Gestalte den Plot angemessen.
import numpy as np # Import NumPy
import matplotlib.pyplot as plt # Import Matplotlib for plotting
# 1. Setting the random seed
np.random.seed(42)
# 2. Generate 20 random numbers using the default_rng generator
rng = np.random.default_rng() # Initialize the default random number generator
pcgs = rng.random(20) # Generate 20 random numbers
# 3. Sort the generated numbers and store them in pcgs_sorted
pcgs_sorted = np.sort(pcgs) # Sort the numbers
# 4. Print the generated arrays for verification
print("PCGs:", pcgs)
print("Sorted PCGs:", pcgs_sorted)
# 5. Plot both arrays
plt.figure(figsize=(8, 6))
plt.plot(pcgs, label='PCGs (Unsorted)', linestyle='dashed', marker='o')
plt.plot(pcgs_sorted, label='PCGs (Sorted)', linestyle='solid', marker='x')
plt.title('Permuted Congruent Generator: Unsorted vs Sorted')
plt.xlabel('Index')
plt.ylabel('Value')
plt.legend()
plt.grid(True)
plt.show()
Abdalaziz Abunjaila
np.random.seed(42) # Setting a fixed start Value for the Generator
pcgs: np.array = None
pcgs_sorted: np.array = None
#mycode
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng(seed=42)
pcgs = np.array([rng.random() for _ in range(20)])
pcgs_sorted = np.sort(pcgs)
plt.figure(figsize=(10, 5))
plt.plot(pcgs, label="PCG Zufallszahlen", color='blue', marker='o', linestyle='--')
plt.plot(pcgs_sorted, label="Sortierte PCG Zufallszahlen", color='green', marker='x', linestyle='-')
plt.title("PCG Zufallszahlen und sortierte PCG Zufallszahlen")
plt.xlabel("Index")
plt.ylabel("Wert")
plt.legend()
plt.show()
Donika Nuhiu
np.random.seed(42) # Setting a fixed start Value for the Generator
pcgs: np.array = None
pcgs_sorted: np.array = None
import numpy as np
import matplotlib.pyplot as plt
# Erstellen des Zufallsgenerators und Generation von 20 Zufallszahlen
rng = np.random.default_rng() # Initialisiere den Permuted Congruent Generator
pcgs = rng.random(20) # 20 Zufallszahlen erzeugen und in ein NumPy Array speichern
# Sortieren der Zufallszahlen
pcgs_sorted = np.sort(pcgs)
# Plotten der Ergebnisse
plt.figure(figsize=(10, 6))
# Original Zufallszahlen
plt.plot(pcgs, marker='o', linestyle='-', color='blue', label='Original-Zufallszahlen')
# Sortierte Zufallszahlen
plt.plot(pcgs_sorted, marker='x', linestyle='--', color='red', label='Sortierte Zufallszahlen')
# Gestalte den Plot
plt.title("Vergleich: Original- und sortierte Zufallszahlen")
plt.xlabel("Index")
plt.ylabel("Zufallswert")
plt.grid(True)
plt.legend()
plt.show()
Alea Schleier
np.random.seed(42) # Setting a fixed start Value for the Generator
pcgs: np.array = None
pcgs_sorted: np.array = None
# YOUR CODE HERE
rng = np.random.default_rng(42)
pcgs = rng.random(20)
pcgs_sorted = np.sort(pcgs)
x = np.linspace(0, 20, num=20)
plt.plot(x, pcgs, color='c', label='Zufallszahlen')
plt.plot(x, pcgs_sorted, color='b', label='Zufallszahlen (sortiert)')
plt.title('Zufallszahlen eines PCG')
plt.xlabel('Index')
plt.ylabel('Wert')
plt.xlim(0, 20)
plt.ylim(0, 1.25)
plt.xticks(np.arange(0, 20, step=3))
plt.yticks(np.arange(0, 1.25, step=0.2))
mean_value = np.mean(pcgs)
plt.axhline(y=mean_value, color='r', linestyle="dashed", label=f'Durchschnitt: {mean_value:.2f}')
plt.legend()
plt.show()
Nova Eib
np.random.seed(42) # Setting a fixed start Value for the Generator
pcgs: np.array = None
pcgs_sorted: np.array = None
# YOUR CODE HERE
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng(seed=42)
pcgs = rng.random(20)
pcgs_sorted = np.sort(pcgs)
plt.figure(figsize=(10, 6))
plt.plot(pcgs, 'o-', label='Unsortiert')
plt.plot(pcgs_sorted, 's-', label='Sortiert')
plt.title('Zufallszahlen eines Permuted Congruent Generators')
plt.xlabel('Index')
plt.ylabel('Wert')
plt.grid(True)
plt.legend()
plt.show()
Izabel Mike
Aufgabe¶
5 Punkte
Ihnen ist ein Datenset sec_school
einer Hauptschule gegeben, welches die Klassenstufen von 5 bis 9 auf die Anzahl ihrer Schüler im Jahrgang mappt.
Definieren Sie einen Barplot. Gehen Sie dabei wie folgt vor:
- Definieren Sie ein geeignetes Farbschema zur Darstellung der Daten.
- Extrahieren Sie die Schlüssel und Werte aus dem Datenset und übergeben Sie diese zusammen mit den Farbwerten an die Funktion
plt.bar
. - Setzen Sie geeignete Werte für die X & Y-Achse.
- Setzen Sie einen geeigneten Titel für den Plot.
- Plotten Sie den Werte
import matplotlib.pyplot as plt
sec_school = {
'5. Klasse': 29,
'6. Klasse': 35,
'7. Klasse': 25,
'8. Klasse': 28,
'9. Klasse': 31
}
bar_colors = ["purple", "blue", "green", "orange", "red"]
plt.bar(sec_school.keys(), sec_school.values(), color=bar_colors)
plt.xlabel("Klassenstufen")
plt.ylabel("Anzahl Schüler")
plt.title("Anzahl der Schüler pro Klassenstufe in der Hauptschule")
plt.show()
Donika Nuhiu
import matplotlib.pyplot as plt
sec_school = {
'5. Klasse': 29,
'6. Klasse': 35,
'7. Klasse': 25,
'8. Klasse': 28,
'9. Klasse': 31
}
colors = ['blue', 'green', 'orange', 'purple', 'red']
grades = list(sec_school.keys()) # Klassenstufen
students= list(sec_school.values()) # Schüleranzahl
plt.bar (grades, students, color=colors)
plt.xlabel("Klassenstufen")
plt.ylabel("Anzahl der Schüler")
plt.title("Schüleranzahl pro Klassenstufe in der Hauptschule")
plt.grid(axis='y', linestyle='--', alpha=0.7) # Gitterlinie zur besseren Lesbarkeit
plt.show()
Alea Schleier
bar_colors = ["red", "orangered", "darkorange", "orange", "gold"]
plt.bar(sec_school.keys(), sec_school.values(), color=bar_colors)
plt.title("Klassenverteilung (Hauptschule)")
plt.ylabel("Anzahl Kinder")
plt.xlabel("Klassenstufen")
# Ich finde die Werte der x- und y-Achse schon passend, also mach mich wenn dann für meine Fehleinschätzung und nicht für meinen Analphabetismus fertig, ich habe den Punkt gelesen, danke
mean_value = np.mean(list(sec_school.values()))
plt.axhline(y=mean_value, color='blue', linestyle="dashed", label=f'Durchschnitt: {mean_value:.2f}')
plt.legend()
plt.show()
Nova Eib
Aufgabe¶
5 Punkte
Ihnen ist ein Datenset sec_school
einer Hauptschule gegeben, welches die Klassenstufen von 5 bis 9 auf die Anzahl ihrer Schüler im Jahrgang mappt.
Definieren Sie einen Pieplot. Gehen Sie dabei wie folgt vor:
- Definieren Sie ein geeignetes Farbschema zur Darstellung der Daten.
- Extrahieren Sie die Schlüssel und Werte aus dem Datenset und übergeben Sie diese zusammen mit den Farbwerten an die Funktion
plt.pie
. (Nutzen Sie zum Anzeigen der Prozentwerte) - Lassen Sie die 6. Klasse 25% und die 9. Klasse 40% explodieren.
- Setzen Sie einen geeigneten Titel für den Plot.
- Plotten Sie den Werte.
import matplotlib.pyplot as plt
#geeignetes Farbschema definieren, Kontrastreiche Farben zur einfachen Unterscheidung
colors = ['#ff6f61', '#6b5b95', '#88b04b', '#f7cac9', '#92a8d1']
#extrahieren der Werte und Schlüssel
keys = list (sec_school.keys())
values = list (sec_school.values())
#explodieren der 6. und 9. Klassenstufe
explode = [0, 0.25, 0, 0, 0.4]
plt.pie(values, labels = keys, colors = colors, autopct = '%1.1f%%', startangle = 90, explode = explode)
plt.title ('Verteilung der Schüler*innen auf die unterschiedlichen Klassenstufen')
plt.axis ('equal')
plt.show()
Lara Troschke
pie_colors = ["red", "orangered", "darkorange", "orange", "gold"]
plt.pie(sec_school.values(), labels=sec_school.keys(), autopct='%1.1f%%', explode=[0, 0.25, 0, 0, 0.4], colors=pie_colors)
plt.title("Klassenverteilung (Hauptschule)")
plt.show()
Nova Eib
pie_colors = ["lightpink", "darkseagreen", "mistyrose", "cadetblue", "rosybrown"]
plt.pie(sec_school.values(), labels=sec_school.keys(), autopct='%1.1f%%', explode=[0, 0.25, 0, 0, 0.4], colors=pie_colors)
plt.title("Klassenverteilung einer Hauptschule")
plt.show()
Julia Limbach