Hướng dẫn how do you plot a frequency distribution in python? - làm thế nào để bạn vẽ biểu đồ phân bố tần số trong python?

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.

Nội dung

  1. Biểu đồ là gì?
  2. Làm thế nào để vẽ một biểu đồ cơ bản trong Python?
  3. Biểu đồ được nhóm theo các danh mục trong cùng một cốt truyện
  4. Biểu đồ được nhóm theo các danh mục trong các ô con riêng biệt
  5. Biểu đồ biển và đường cong mật độ trên cùng một lô
  6. Biểu đồ và đường cong mật độ trong các mặt
  7. Sự khác biệt giữa biểu đồ và biểu đồ thanh
  8. Thực hành tập thể dục
  9. Sự kết luận

1. Biểu đồ là gì?

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ỏ.

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 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 3 numpy và in đẹp như bên dưới.

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)))

Đầu ra của mã trên trông như thế này:

10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * *

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.

2. Làm thế nào để vẽ một biểu đồ cơ bản trong Python?

10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 4 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.

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'); Histogram
Histogram

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() Diamonds
Diamonds Table

Hãy để so sánh phân phối 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 5 cho 3 giá trị khác nhau của 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 6 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(); Multi
Multi Histogram

Vâ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 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 7, nó chiếm ưu thế hơn.

Vì vậy, làm thế nào để khắc phục lớp chiếm ưu thế và vẫn duy trì tính tách biệt của các bản phân phối?

Bạn có thể bình thường hóa nó bằng cách đặt 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 8 và 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 9. Bằng cách này, tổng diện tích trong mỗi phân phối trở thành 1.

# Normalize kwargs = dict(alpha=0.5, bins=100, density=True, stacked=True) # Plot 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='Probability Histogram of Diamond Depths', ylabel='Probability') plt.xlim(50,75) plt.legend(); Multi Biểu đồ 2
Multi Histogram 2

4. Biểu đồ được nhóm theo các danh mục trong các ô con riêng biệt

Biểu đồ có thể được tạo như các khía cạnh sử dụng 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'); 0

Dưới đây tôi vẽ một biểu đồ của 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 5 cho mỗi loại 10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 6. Nó thuận tiện để làm điều đó trong một vòng lặp.

# Import Data df = pd.read_csv('//raw.githubusercontent.com/selva86/datasets/master/diamonds.csv') # Plot fig, axes = plt.subplots(1, 5, figsize=(10,2.5), dpi=100, sharex=True, sharey=True) colors = ['tab:red', 'tab:blue', 'tab:green', 'tab:pink', 'tab:olive'] for i, (ax, cut) in enumerate(zip(axes.flatten(), df.cut.unique())): x = df.loc[df.cut==cut, 'depth'] ax.hist(x, alpha=0.5, bins=100, density=True, stacked=True, label=str(cut), color=colors[i]) ax.set_title(cut) plt.suptitle('Probability Histogram of Diamond Depths', y=1.05, size=16) ax.set_xlim(50, 70); ax.set_ylim(0, 1); plt.tight_layout(); Histograms khía cạnh
Histograms Facets

5. 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 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'); 3) cho phép bạn thực hiện điều đó thông qua 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'); 4. Vì Seaborn được xây dựng trên đỉnh của matplotlib, bạn có thể sử dụng 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'); 3 và 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'); 6 lần lượt.

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ị.

import seaborn as sns sns.set_style("white") # Import data df = pd.read_csv('//raw.githubusercontent.com/selva86/datasets/master/diamonds.csv') x1 = df.loc[df.cut=='Ideal', 'depth'] x2 = df.loc[df.cut=='Fair', 'depth'] x3 = df.loc[df.cut=='Good', 'depth'] # Plot kwargs = dict(hist_kws={'alpha':.6}, kde_kws={'linewidth':2}) plt.figure(figsize=(10,7), dpi= 80) sns.distplot(x1, color="dodgerblue", label="Compact", **kwargs) sns.distplot(x2, color="orange", label="SUV", **kwargs) sns.distplot(x3, color="deeppink", label="minivan", **kwargs) plt.xlim(50,75) plt.legend(); Histograms Mật độ
Histograms Density

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 độ (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'); 7) trong các khía cạnh.

# Import data df = pd.read_csv('//raw.githubusercontent.com/selva86/datasets/master/diamonds.csv') x1 = df.loc[df.cut=='Ideal', ['depth']] x2 = df.loc[df.cut=='Fair', ['depth']] x3 = df.loc[df.cut=='Good', ['depth']] # plot fig, axes = plt.subplots(1, 3, figsize=(10, 3), sharey=True, dpi=100) sns.distplot(x1 , color="dodgerblue", ax=axes[0], axlabel='Ideal') sns.distplot(x2 , color="deeppink", ax=axes[1], axlabel='Fair') sns.distplot(x3 , color="gold", ax=axes[2], axlabel='Good') plt.xlim(50,75); Histogram Mật độ các khía cạnh
Histogram Density Facets

7. 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.

# Groupby: cutwise median price = df[['cut', 'price']].groupby('cut').median().round(2) price Diamonds_Cut10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 0Barplots
Diamonds_Cut10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 0
Barplots

8. Thực hành tập thể dục

Tạo mật độ sau trên 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'); 8 của bộ dữ liệu 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'); 9 trên sổ ghi chép Jupyter của bạn.

10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 1

Hiển thị giải pháp

10.0 * * * * * * * * * 20.0 * * * * * * * * * * * * * 30.0 * * * * * * * * * 40.0 * * * * * * * * * * * * * * * 50.0 * * * * * * * * * 60.0 * * * * * * * * * 70.0 * * * * * * * * * * * * * * * * 80.0 * * * * * 90.0 * * * * * * * * * 100.0 * * * * * * 2

Biểu đồ iris

9. Đ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

  1. Subplotlib Subplots
  2. Top 50 trực quan hóa matplotlib
  3. Hướng dẫn Matplotlib
  4. Matplotlib pyplot
  5. Biểu đồ matplotlib
  6. Biểu đồ thanh trong Python
  7. Biểu đồ hộp trong Python

Làm thế nào để bạn vẽ một âm mưu tần số?

Số lượng danh mục được sử dụng trong biểu đồ phụ thuộc vào cỡ mẫu ...
Tính toán các khoảng với bao gồm toàn bộ phạm vi tập dữ liệu ..
Tìm tần suất xuất hiện của từng điểm dữ liệu theo khoảng thời gian ..
Vẽ biểu đồ thanh bảo tồn số lượng và danh mục ..

Làm thế nào để bạn tìm thấy phân phối tần số trong Python?

Khoa học dữ liệu thực tế sử dụng Python đếm tần suất xuất hiện của một từ trong một cơ thể của văn bản thường là cần thiết trong quá trình xử lý văn bản.Điều này có thể đạt được bằng cách áp dụng hàm word_tokenize () và thêm kết quả vào danh sách để giữ số lượng các từ như trong chương trình bên dưới.applying the word_tokenize() function and appending the result to a list to keep count of the words as shown in the below program.

Làm thế nào để bạn thực hiện một cốt truyện phân phối?

Vẽ sơ đồ phân phối dữ liệu..
Mở tệp hướng dẫn \ tốc độ ánh sáng.xlsx ..
Nhấp vào một ô trong bộ dữ liệu ..
Trên tab Ribbon Phân tích, trong nhóm phân tích thống kê, nhấp vào phân phối và sau đó nhấp vào các khoảnh khắc trung bình và trung tâm.....
Trong hộp danh sách biến Y, chọn Tốc độ ..
Nhấp vào Tính toán ..

Biểu đồ nào nên được sử dụng để hiển thị phân phối tần số của các phần tử trong Python?

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ỏ.

Chủ đề