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
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?
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('https://raw.githubusercontent.com/selva86/datasets/master/diamonds.csv')
df.head()
Diamonds
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?
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
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?
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
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?
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('https://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
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?
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ị.

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?

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('https://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 độ
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?
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('https://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
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?
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_Cut
10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
0Barplots
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?
Diamonds_Cut
10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
0
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?
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

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