Tôi có danh sách các số nguyên và muốn có được tần suất của mỗi số nguyên. Điều này đã được thảo luận ở đây
Vấn đề là cách tiếp cận tôi sử dụng cho tôi tần suất của các số nổi khi tập dữ liệu của tôi chỉ bao gồm các số nguyên. Tại sao điều đó xảy ra và làm thế nào tôi có thể nhận được tần suất số nguyên từ dữ liệu của mình?
Tôi đang sử dụng pyplot.histogram để vẽ biểu đồ với tần suất xuất hiện
import numpy as np
import matplotlib.pyplot as plt
from numpy import *
data = loadtxt['data.txt',dtype=int,usecols=[4,]] #loading 5th column of csv file into array named data.
plt.hist[data] #plotting the column as histogram
Tôi đang nhận được biểu đồ, nhưng tôi đã nhận thấy rằng nếu tôi "in" hist [dữ liệu]
hist=np.histogram[data]
print hist[data]
Tôi nhận được cái này:
[array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
Trong đó mảng thứ hai biểu thị các giá trị và mảng thứ nhất biểu thị số lần xuất hiện.
Trong tập dữ liệu của tôi, tất cả các giá trị là số nguyên, làm thế nào điều đó xảy ra rằng mảng thứ hai có số nổi và làm thế nào tôi nên lấy tần số của số nguyên?
CẬP NHẬT:
Điều này giải quyết vấn đề, cảm ơn bạn Lev đã trả lời.
plt.hist[data, bins=np.arange[data.min[], data.max[]+1]]
Để tránh tạo một câu hỏi mới làm thế nào tôi có thể vẽ các cột "ở giữa" cho mỗi số nguyên? Giả sử, tôi muốn cột cho số nguyên 3 chiếm khoảng cách giữa 2,5 đến 3,5 không phải trong khoảng từ 3 đến 4.
Biểu đồ matplotlib được sử dụng để trực quan hóa sự phân bố tần số của mảng số bằng cách chia nó thành các thùng có kích thước bằng nhau nhỏ. Trong bài viết này, chúng tôi khám phá các kỹ thuật thực tế cực kỳ hữu ích trong phân tích dữ liệu ban đầu của bạn.
Biểu đồ tần số được sử dụng để làm gì?
- Một biểu đồ tần số là một kỹ thuật phân tích dữ liệu đồ họa để tóm tắt thông tin phân phối của một biến. Biến phản ứng được chia thành các khoảng [hoặc thùng] có kích thước bằng nhau. Số lần xuất hiện của biến phản hồi được tính cho mỗi thùng.
- Nội dung
- Biểu đồ là gì?
- Làm thế nào để vẽ một biểu đồ cơ bản trong Python?
- Biểu đồ được nhóm theo các danh mục trong cùng một cốt truyện
- Biểu đồ được nhóm theo các danh mục trong các ô con riêng biệt
- Biểu đồ biển và đường cong mật độ trên cùng một lô
- Biểu đồ và đường cong mật độ trong các mặt
- Sự khác biệt giữa biểu đồ và biểu đồ thanh
Thực hành tập thể dục
Sự kết luận
1. Biểu đồ là gì?
import numpy as np
x = np.random.randint[low=0, high=100, size=100]
# Compute frequency and bins
frequency, bins = np.histogram[x, bins=10, range=[0, 100]]
# Pretty Print
for b, f in zip[bins[1:], frequency]:
print[round[b, 1], ' '.join[np.repeat['*', f]]]
Biểu đồ là một biểu đồ phân phối tần số của mảng số bằng cách chia nó thành các thùng có kích thước bằng nhỏ.
10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
Nếu bạn muốn phân chia toán học một mảng nhất định thành các thùng và tần số, hãy sử dụng phương pháp
hist=np.histogram[data]
print hist[data]
7 numpy và in đẹp như bên dưới.Đầu ra của mã trên trông như thế này:
Tuy nhiên, đại diện trên, won đã thực tế trên các mảng lớn, trong trường hợp đó, bạn có thể sử dụng biểu đồ matplotlib.
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update[{'figure.figsize':[7,5], 'figure.dpi':100}]
# Plot Histogram on x
x = np.random.normal[size = 1000]
plt.hist[x, bins=50]
plt.gca[].set[title='Frequency Histogram', ylabel='Frequency'];
Histogram2. Làm thế nào để vẽ một biểu đồ cơ bản trong Python?
hist=np.histogram[data]
print hist[data]
8 trong matplotlib cho phép bạn vẽ biểu đồ. Nó yêu cầu mảng là đầu vào cần thiết và bạn có thể chỉ định số lượng thùng cần thiết.3. Biểu đồ được nhóm theo các danh mục trong cùng một cốt truyện
Bạn có thể vẽ đồ thị nhiều biểu đồ trong cùng một cốt truyện. Điều này có thể hữu ích nếu bạn muốn so sánh phân phối của một biến liên tục được nhóm theo các danh mục khác nhau.Hãy để sử dụng bộ dữ liệu kim cương từ gói RTHER GGPLOT2.
import pandas as pd
df = pd.read_csv['//raw.githubusercontent.com/selva86/datasets/master/diamonds.csv']
df.head[]
DiamondsHãy để so sánh phân phối
hist=np.histogram[data]
print hist[data]
9 cho 3 giá trị khác nhau của [array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
0 trong cùng một lô.Biểu đồ
x1 = df.loc[df.cut=='Ideal', 'depth']
x2 = df.loc[df.cut=='Fair', 'depth']
x3 = df.loc[df.cut=='Good', 'depth']
kwargs = dict[alpha=0.5, bins=100]
plt.hist[x1, **kwargs, color='g', label='Ideal']
plt.hist[x2, **kwargs, color='b', label='Fair']
plt.hist[x3, **kwargs, color='r', label='Good']
plt.gca[].set[title='Frequency Histogram of Diamond Depths', ylabel='Frequency']
plt.xlim[50,75]
plt.legend[];
MultiVâng, các phân phối cho 3 vết cắt khác nhau là khác nhau khác nhau. Nhưng vì, số lượng các dữ liệu được cắt giảm nhiều hơn cho
[array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
1, nó chiếm ưu thế hơn.Bạn có thể bình thường hóa nó bằng cách đặt [array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
2 và [array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
3. Bằng cách này, tổng diện tích trong mỗi phân phối trở thành 1.
[array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
[array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
Biểu đồ có thể được tạo như các mặt bằng cách sử dụng
[array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
4Dưới đây tôi vẽ một biểu đồ của
hist=np.histogram[data]
print hist[data]
9 cho mỗi loại [array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
0. Nó thuận tiện để làm điều đó trong một vòng lặp.hist=np.histogram[data]
print hist[data]
0Histograms khía cạnh5. Biểu đồ biển và đường cong mật độ trên cùng một lô
Nếu bạn muốn có cả biểu đồ và mật độ trong cùng một lô, gói Seaborn [được nhập dưới dạng
[array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
7] cho phép bạn thực hiện điều đó thông qua [array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
8. Vì Seaborn được xây dựng trên đỉnh của matplotlib, bạn có thể sử dụng [array[[ 2323, 16338, 1587, 212, 26, 14, 3, 2, 2, 2]],
array[[ 1. , 2.8, 4.6, 6.4, 8.2, 10. , 11.8, 13.6, 15.4,
17.2, 19. ]]]
7 và plt.hist[data, bins=np.arange[data.min[], data.max[]+1]]
0 này đến lần khác.Nhận khóa học Python hoàn thành miễn phí
Đối mặt với tình huống tương tự như mọi người khác?
Xây dựng sự nghiệp khoa học dữ liệu của bạn với trình độ được công nhận trên toàn cầu, được công nghiệp phê duyệt. Có được suy nghĩ, sự tự tin và các kỹ năng làm cho nhà khoa học dữ liệu trở nên có giá trị.
Nhận khóa học Python hoàn thành miễn phí
Xây dựng sự nghiệp khoa học dữ liệu của bạn với trình độ được công nhận trên toàn cầu, được công nghiệp phê duyệt. Có được suy nghĩ, sự tự tin và các kỹ năng làm cho nhà khoa học dữ liệu trở nên có giá trị.
hist=np.histogram[data]
print hist[data]
1Histograms Mật độ6. Biểu đồ và đường cong mật độ trong các mặt
Ví dụ dưới đây cho thấy cách vẽ biểu đồ và mật độ [
plt.hist[data, bins=np.arange[data.min[], data.max[]+1]]
1] trong các khía cạnh.hist=np.histogram[data]
print hist[data]
2Histogram Mật độ các khía cạnh7. Sự khác biệt giữa biểu đồ và biểu đồ thanh
Một biểu đồ được vẽ trên các mảng lớn. Nó tính toán phân phối tần số trên một mảng và tạo ra một biểu đồ từ nó.
Mặt khác, biểu đồ thanh được sử dụng khi bạn có cả X và Y đã cho và có số lượng điểm dữ liệu hạn chế có thể được hiển thị dưới dạng thanh.
hist=np.histogram[data]
print hist[data]
3Diamonds_Cuthist=np.histogram[data]
print hist[data]
4Barplotshist=np.histogram[data]
print hist[data]
48. Thực hành tập thể dục
Tạo mật độ sau trên
plt.hist[data, bins=np.arange[data.min[], data.max[]+1]]
2 của bộ dữ liệu plt.hist[data, bins=np.arange[data.min[], data.max[]+1]]
3 trên sổ ghi chép Jupyter của bạn.hist=np.histogram[data]
print hist[data]
5Hiển thị giải pháp
hist=np.histogram[data]
print hist[data]
69. Điều gì tiếp theo
Xin chúc mừng nếu bạn có thể tái tạo cốt truyện.
Bạn có thể quan tâm đến hướng dẫn Matplotlib, 50 lô hàng đầu matplotlib và các hướng dẫn âm mưu khác.
Bài viết liên quan
- Subplotlib Subplots
- Top 50 trực quan hóa matplotlib
- Hướng dẫn Matplotlib
- Matplotlib pyplot
- Biểu đồ matplotlib
- Biểu đồ thanh trong Python
- Biểu đồ hộp trong Python