Czy jest jakiś sposób na zrobienie tego? Nie mogę wydawać się łatwym sposobem na połączenie serii pand z planowaniem CDF.Wykreślanie CDF z serii pand w pytonie
Odpowiedz
wierzę funkcjonalność szukasz jest w metodzie hist obiektu Serii który owija funkcji hist() w matplotlib
Oto odpowiednia dokumentacja
In [10]: import matplotlib.pyplot as plt
In [11]: plt.hist?
...
Plot a histogram.
Compute and draw the histogram of *x*. The return value is a
tuple (*n*, *bins*, *patches*) or ([*n0*, *n1*, ...], *bins*,
[*patches0*, *patches1*,...]) if the input contains multiple
data.
...
cumulative : boolean, optional, default : True
If `True`, then a histogram is computed where each bin gives the
counts in that bin plus all bins for smaller values. The last bin
gives the total number of datapoints. If `normed` is also `True`
then the histogram is normalized such that the last bin equals 1.
If `cumulative` evaluates to less than 0 (e.g., -1), the direction
of accumulation is reversed. In this case, if `normed` is also
`True`, then the histogram is normalized such that the first bin
equals 1.
...
Na przykład
In [12]: import pandas as pd
In [13]: import numpy as np
In [14]: ser = pd.Series(np.random.normal(size=1000))
In [15]: ser.hist(cumulative=True, normed=1, bins=100)
Out[15]: <matplotlib.axes.AxesSubplot at 0x11469a590>
In [16]: plt.show()
proszę spróbować dodać opis i linki do tworzenia kopii zapasowych kodu, jeśli to możliwe – Ram
Czy istnieje sposób, aby po prostu uzyskać funkcja krokowa i nie masz wypełnionych pasków? – robertevansanders
To byłoby 'histtype = 'step'', które również znajduje się w dokumentacji' pyplot.hist' skróconej powyżej –
Wykres funkcji dystrybucji CDF lub skumulowanego rozkładu jest po prostu wykresem, na osi X posortowane wartości, a na osi Y skumulowanym rozkładem. Tak więc, utworzyłbym nową serię z posortowanymi wartościami jako indeks i skumulowaną dystrybucją jako wartościami.
Najpierw utwórz przykładową serie:
import pandas as pd
import numpy as np
ser = pd.Series(np.random.normal(size=100))
posortować serii:
ser = ser.sort_values()
Teraz przed postępowaniem, dołącz raz ostatni (i) wartość największą. Ten krok jest ważny zwłaszcza dla małych rozmiarach próbki w celu uzyskania obiektywnej CDF:
ser[len(ser)] = ser.iloc[-1]
Utwórz nową serię z posortowanych wartości jako wskaźnika i dystrybuantę jak wartości:
cum_dist = np.linspace(0.,1.,len(ser))
ser_cdf = pd.Series(cum_dist, index=ser)
Wreszcie, wykreślić funkcję jak etapów:
ser_cdf.plot(drawstyle='steps')
do mnie, to wydawało się, że po prostu sposób, aby to zrobić:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
heights = pd.Series(np.random.normal(size=100))
# empirical CDF
def F(x,data):
return float(len(data[data <= x]))/len(data)
vF = np.vectorize(F, excluded=['data'])
plt.plot(np.sort(heights),vF(x=np.sort(heights), data=heights))
To jest najprostszy sposób.
import pandas as pd
df = pd.Series([i for i in range(100)])
df.hist(cumulative='True')
To powinna być zaakceptowana odpowiedź! –
- 1. Wykreślanie widma mocy w pytonie
- 2. wykreślanie wypełnionych wielokątów w pytonie
- 3. Zmiana kształtu serii pand?
- 4. Konwersja pływaka w serii do serii całkowitą w pand
- 5. kreślenie słupki błędów na barplots z wielu serii w pand
- 6. Konwertuj ramkę danych pand do serii
- 7. Zastosuj funkcję na zbiorczych wartościach serii pand
- 8. Wybierz z pand dataframe użyciu logiczną serii/tablicę
- 9. Konwersja serii pand ze stringów na unikalne int
- 10. Wykreślanie strzałek z gnuplotem
- 11. Dołączanie do serii Pand z hierarchicznym indeksem powrót do źródła DataFrame
- 12. Czy istnieje metoda, aby pominąć nieprzyłączalne wiersze podczas rzucania serii pand z str do float?
- 13. Wykres CDF + histogram skumulowany przy użyciu Seaborn Python
- 14. ekstrapolacja pand z wielomianu
- 15. Wykreślanie wielomianu w Pythonie
- 16. obchodzić zastępcze z pand
- 17. Niestandardowe sortowanie z Pand
- 18. Wykreślanie półokręgów w R
- 19. Wykreślanie "Hi" w MATLAB
- 20. Bokeh - Wykreślanie danych z przerwami
- 21. wieloczynnikowa normalny CDF Pythona pomocą scipy
- 22. DataFrame z DataFrames z pand
- 23. Get min i max dla 2 elementy odpowiadające serii w pand
- 24. Wykreślanie krzywych przeżycia w R z ggplot2
- 25. Wykres konturowy w pytonie
- 26. Klasyfikacja obrazu w pytonie
- 27. danych munging w pand
- 28. Powolna rekursja w pytonie
- 29. Filtr dolnoprzepustowy w pytonie
- 30. Formatowanie nanowłókniny w pytonie
można zdefiniować problemu? Jakie jest wejście i wyjście? scipy.stats mają funkcje cdf, które mogą Cię zainteresować. –
Wystąpiła prośba o dodanie funkcji, ale jest to domena poza domeną pand. Użyj "seaborn" (http://web.stanford.edu/~mwaskom/software/seaborn/tutorial/plotting_distributions.html#basic-visualization-with-histograms) z 'kdeplot' z' cumulative = True' – TomAugspurger
seria, wyjście to wykres funkcji CDF. – robertevansanders