Cassimus

wariancja

Nov 17th, 2025 (edited)
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. #Wariancja
  2. import statistics
  3. import matplotlib.pyplot as plt
  4.  
  5. # Funkcja do obliczania wariancji i średniej
  6. def calculate_variance(group):
  7.     mean = statistics.mean(group)
  8.     variance = sum((x - mean) ** 2 for x in group) / (len(group))
  9.     return variance, mean
  10.  
  11. # Dane punktowe dla czterech drużyn
  12. pajaki = [48, 49, 51, 52]
  13. ender_dragony = [0, 0, 100, 100]
  14. szkielety = [10, 30, 70, 90]
  15. zombie = [49, 50, 50, 51]
  16.  
  17. groups = {
  18.     "Pająki Parkour Masterzy": pajaki,
  19.     "Ender Dragony z Ohio": ender_dragony,
  20.     "Szkielety Beznogi Snajperzy": szkielety,
  21.     "Zombie Ziomby": zombie
  22. }
  23.  
  24. # Obliczanie wariancji i średniej dla każdej grupy
  25. variances = {}
  26. means = {}
  27.  
  28. for name, group in groups.items():
  29.     var, mean = calculate_variance(group)
  30.     variances[name] = var
  31.     means[name] = mean
  32.     print(f"{name} - Średnia: {mean}, Wariancja: {var}")
  33.  
  34. # Tworzenie wykresu
  35. plt.figure(figsize=(10, 5))
  36. markers = ['o', 's', '^', 'D']
  37. colors = ['blue', 'red', 'green', 'purple']
  38.  
  39. for i, (name, group) in enumerate(groups.items()):
  40.     x_values = list(range(len(group)))
  41.     y_values_mean = [means[name]] * len(group)
  42.  
  43.     # Scatter plot wartości rzeczywistych
  44.     plt.scatter(x_values, group, color=colors[i], label=f"{name} - Dane rzeczywiste", marker=markers[i])
  45.  
  46.     # Linia średniej
  47.     plt.plot(x_values, y_values_mean, color=colors[i], linestyle='dashed', label=f"{name} - Średnia")
  48.  
  49. # Opisy osi i tytuł
  50. plt.xlabel("Indeks wartości")
  51. plt.ylabel("Punkty gracza")
  52. plt.title("Średnia i wartości rzeczywiste punktów dla czterech drużyn Minecraft")
  53.  
  54. # Legenda
  55. plt.legend(loc='lower right')
  56. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment