Có cách nào để thực hiện việc này không? Tôi không thể có vẻ là một cách dễ dàng để giao diện hàng loạt gấu trúc với âm mưu một CDF.Vẽ CDF của một loạt gấu trúc trong python
Trả lời
Tôi tin rằng các chức năng bạn đang tìm kiếm là trong phương pháp hist của một đối tượng dòng mà kết thúc tốt đẹp các chức năng hist() trong matplotlib
Dưới đây là các tài liệu có liên quan
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.
...
Ví dụ
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()
vui lòng thêm một số mô tả và liên kết để sao lưu mã nếu có thể – Ram
Có cách nào để có được chức năng bước và không có các thanh được điền vào? – robertevansanders
Đó là 'histtype = 'step'' cũng nằm trong tài liệu' pyplot.hist' bị cắt bớt ở trên –
Một ô hàm phân phối CDF hoặc tích lũy về cơ bản là biểu đồ có trục X giá trị được sắp xếp và trên trục Y phân phối tích lũy. Vì vậy, tôi sẽ tạo một chuỗi mới với các giá trị được sắp xếp làm chỉ mục và phân phối tích lũy làm giá trị.
Đầu tiên tạo ra một loạt ví dụ:
import pandas as pd
import numpy as np
ser = pd.Series(np.random.normal(size=100))
Sắp xếp series:
ser = ser.sort_values()
Bây giờ, trước khi tiếp tục, thêm một lần nữa (và lớn nhất) giá trị cuối cùng. Bước này rất quan trọng đặc biệt đối với các kích cỡ mẫu nhỏ để có được một CDF không thiên vị:
ser[len(ser)] = ser.iloc[-1]
Tạo một loạt mới với các giá trị được sắp xếp như chỉ số và phân phối tích lũy như các giá trị:
cum_dist = np.linspace(0.,1.,len(ser))
ser_cdf = pd.Series(cum_dist, index=ser)
Cuối cùng, vẽ đồ thị hàm số như bước sau:
ser_cdf.plot(drawstyle='steps')
Đối với tôi, điều này dường như là một cách đơn giản để làm điều đó:
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))
Đây là cách dễ nhất.
import pandas as pd
df = pd.Series([i for i in range(100)])
df.hist(cumulative='True')
Đây phải là câu trả lời được chấp nhận! –
- 1. datetime để chuỗi với hàng loạt trong gấu trúc python
- 2. Vẽ thanh lỗi trên barplots với nhiều loạt trong gấu trúc
- 3. Vẽ hình gấu trúc timedelta
- 4. Làm thế nào để vẽ cdf trong matplotlib bằng Python?
- 5. Con gấu trúc Python, Tùy chọn vẽ cho nhiều dòng
- 6. Cách thêm một mục vào một Loạt gấu trúc
- 7. Lỗi lặp qua loạt gấu trúc
- 8. Sử dụng các giá trị của một hàng "trước" trong loạt gấu trúc
- 9. gán tên cột để một loạt gấu trúc
- 10. Vẽ nhiều dòng với gấu trúc dataframe
- 11. "Chống hợp nhất" trong gấu trúc (Python)
- 12. Chọn từ gấu trúc dataframe sử dụng boolean loạt/mảng
- 13. Sử dụng gấu trúc để vẽ với barplots thanh lỗi
- 14. Vẽ toàn bộ gấu trúc DataFrame với Bokeh
- 15. python gấu trúc groupby() kết quả
- 16. Vẽ nhiều đường với Bokeh và gấu trúc
- 17. Python: gấu trúc hợp nhất nhiều dataframes
- 18. binning cột với gấu trúc python
- 19. tách một cột bằng cách delimiter gấu trúc python
- 20. Chuyển đổi gấu trúc đa-index để gấu trúc timestamp
- 21. liệu munging trong gấu trúc
- 22. Boxplot phân tầng theo cột ở gấu trúc python
- 23. Làm phẳng một mảng trong gấu trúc
- 24. nhận chuỗi từ gấu trúc Series và DataFrames trong python?
- 25. R dcast tương đương trong gấu trúc python
- 26. Cài đặt gấu trúc mô-đun Python trong Cloud9
- 27. gấu trúc python read_csv delimiter trong dữ liệu cột
- 28. Nhập tệp CSV trong gấu trúc thành một dataframe gấu trúc
- 29. Làm một nhóm trong dataframe trong gấu trúc
- 30. cách hiểu trục = 0 hoặc 1 trong gấu trúc (Python)?
bạn có thể xác định vấn đề của bạn? Đầu vào và đầu ra là gì? scipy.stats có các chức năng cdf mà bạn có thể quan tâm. –
Có một yêu cầu tính năng cho điều này, nhưng nó nằm ngoài miền của gấu trúc. Sử dụng 'kdeplot' của [seaborn] (http://web.stanford.edu/~mwaskom/software/seaborn/tutorial/plotting_distributions.html#basic-visualization-with-histograms) với' tích lũy = True' – TomAugspurger
Đầu vào là một chuỗi, đầu ra là một âm mưu của một hàm CDF. – robertevansanders