Jak dodać słupki błędów do wykresów w pythonie
Często możesz chcieć dodać słupki błędów do wykresów w Pythonie, aby uchwycić niepewność dotyczącą pomiarów lub obliczonych wartości. Na szczęście można to łatwo zrobić, korzystając z biblioteki matplotlib.
W tym samouczku wyjaśniono, jak dodawać słupki błędów do wykresów słupkowych i wykresów liniowych w języku Python.
Słupki błędów na wykresach słupkowych
Załóżmy, że w Pythonie mamy następujący zestaw danych składający się z 10 wartości:
import numpy as np import matplotlib.pyplot as plt #define dataset data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20]
Aby utworzyć wykres słupkowy ze słupkami błędów dla tego zestawu danych, możemy ustawić szerokość słupków błędów jako błąd standardowy , który jest obliczany
Błąd standardowy = s / √n
Złoto:
- s: odchylenie standardowe próbki
- n: wielkość próbki
Poniższy kod pokazuje, jak obliczyć błąd standardowy w tym przykładzie:
#calculate standard error std_error = np.std(data, ddof=1) / np.sqrt(len(data)) #view standard error std_error 1.78
Na koniec możemy utworzyć wykres słupkowy, korzystając ze słupków błędów o szerokości równej błędowi standardowemu:
#define chart fig, ax = plt.subplots() #create chart ax.bar(x=np.arange(len(data)), #x-coordinates of bars height=data, #height of bars yerr=std_error, #error bar width capsize=4) #length of error bar caps
Błąd standardowy okazał się 1,78 . Jest to szerokość słupka błędu rozciągającego się w dowolnym kierunku od szacunków punktowych na wykresie. Na przykład wartość pierwszego słupka na wykresie wynosi 4, zatem słupek błędu rozciąga się od:
- Dolny koniec: 4 – 178 = 2,22
- Górny koniec: 4 + 1,78 = 5,78
Każdy słupek błędu na wykresie ma tę samą szerokość.
Słupki błędów na wykresach liniowych
Poniższy kod pokazuje, jak utworzyć wykres liniowy ze słupkami błędów dla tego samego zestawu danych:
import numpy as np import matplotlib.pyplot as plt #define data data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20] #define x and y coordinates x = np.arange(len(data)) y = data #create line chart with error bars fig, ax = plt.subplots() ax.errorbar(x, y, yerr=std_error, capsize=4)
Zauważ, że argument yerr mówi Pythonowi, aby utworzył pionowe słupki błędów. Zamiast tego moglibyśmy użyć poziomych pionowych pasków, używając argumentu xerr :
#create line chart with horizontal error bars fig, ax = plt.subplots() ax.errorbar(x, y, xerr =std_error, capsize=4)
Więcej samouczków dotyczących Pythona znajdziesz tutaj .