Biểu đồ Matplotlib được sử dụng để trực quan hóa phân bố tần số của mảng số bằng cách chia nó thành các thùng nhỏ có kích thước bằng nhau. 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 việc phân tích và vẽ sơ đồ dữ liệu ban đầu của bạn.
Nội dung
- một biểu đồ là gì?
- Làm cách nào để vẽ biểu đồ cơ bản trong python?
- Biểu đồ được nhóm theo danh mục trong cùng một cốt truyện
- Biểu đồ được nhóm theo danh mục trong các ô con riêng biệt
- Seaborn Histogram và Density Curve trên cùng một biểu đồ
- Biểu đồ và Đường cong mật độ trong các khía cạnh
- Sự khác biệt giữa Biểu đồ và Biểu đồ thanh
- Thực hành tập thể dục
- Phần kết luận
1. Biểu đồ là gì?
Biểu đồ là biểu đồ phân bố tần số của mảng số bằng cách chia nó thành các ngăn nhỏ có kích thước bằng nhau
Nếu bạn muốn phân chia toán học một mảng đã cho thành các thùng và tần số, hãy sử dụng phương thức numpy
10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
3 và in đẹp như bên dướiimport 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 đoạn 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, biểu diễn ở trên sẽ không 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 cách nào để vẽ 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 bắt buộc 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'];
3. Biểu đồ được nhóm theo danh mục trong cùng một cốt truyện
Bạn có thể vẽ nhiều biểu đồ trong cùng một ô. Đ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 ggplot2 của R
import pandas as pd
df = pd.read_csv['//raw.githubusercontent.com/selva86/datasets/master/diamonds.csv']
df.head[]
Hãy so sánh phân phối của
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 ô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[];
Chà, các bản phân phối cho 3 lần cắt khác nhau là khác nhau rõ rệt. Nhưng kể từ đó, số lượng điểm dữ liệu nhiều hơn đối với việc cắt giảm
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ơnVậy, làm thế nào để vừa chấn chỉnh giai cấp thống trị mà vẫn giữ được tính riêng biệt của các bản phân phối?
Bạn có thể chuẩn hóa nó bằng cách thiết lập
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 dưới mỗi phân phối trở thành 1import 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]]]
24. Biểu đồ được nhóm theo danh mục trong các ô con riêng biệt
Các biểu đồ có thể được tạo dưới dạng các khía cạnh bằng cách 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'];
0Dướ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 của 10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
6. Thật thuận tiện để làm điều đó trong một vòng lặp forimport 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]]]
65. Seaborn Histogram và Density Curve trên cùng một biểu đồ
Nếu bạn muốn có cả biểu đồ và mật độ trong cùng một ô, 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 matplotlib, nên bạn có thể sử dụng lần lượ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'];
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'];
6Nhận khóa học Python hoàn chỉnh miễn phí
Đối mặt với tình huống tương tự như những người khác?
Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị
Nhận khóa học Python hoàn chỉnh miễn phí
Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị
10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
16. Biểu đồ và Đường cong mật độ trong các khía cạnh
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ạnh10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
37. 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 biểu đồ từ nó
Mặt khác, biểu đồ thanh được sử dụng khi bạn đã cho cả X và Y và có số điểm dữ liệu hạn chế có thể được hiển thị dưới dạng thanh
10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
410.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
08. Thực hành tập thể dục
Tạo mật độ sau trên tập 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'];
8 của 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 Jupyter Notebook của bạn10.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áp10.0 * * * * * * * * *
20.0 * * * * * * * * * * * * *
30.0 * * * * * * * * *
40.0 * * * * * * * * * * * * * * *
50.0 * * * * * * * * *
60.0 * * * * * * * * *
70.0 * * * * * * * * * * * * * * * *
80.0 * * * * *
90.0 * * * * * * * * *
100.0 * * * * * *
29. Tiếp theo là gì
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 biểu đồ matplotlib hàng đầu và các hướng dẫn vẽ biểu đồ khác
bài viết liên quan
- Ô con Matplotlib
- 50 trực quan hóa Matplotlib hàng đầu
- Hướng dẫn Matplotlib
- Matplotlib Pyplot
- Biểu đồ Matplotlib
- Biểu đồ thanh trong Python
- Biểu đồ hộp trong Python
Selva Prabhakaran
Selva là Tác giả chính và Biên tập viên của Machine Learning Plus, với hơn 4 triệu độc giả. Anh ấy là tác giả của các khóa học và sách với hơn 100 nghìn sinh viên và là Nhà khoa học dữ liệu chính của một công ty toàn cầu