Mô-đun matplotlib có thể được sử dụng để tạo tất cả các loại sơ đồ và biểu đồ bằng Python. Biểu đồ hình tròn là một trong những biểu đồ nó có thể tạo, nhưng nó là một trong nhiều biểu đồ
khóa học liên quan. Trực quan hóa dữ liệu với Matplotlib và Python
Biểu đồ hình tròn Matplotlib
Đầu tiên nhập plt từ mô-đun matplotlib với dòng nhập matplotlib. pyplot dưới dạng plt
Sau đó, bạn có thể sử dụng phương pháp plt. pie[] để tạo một cốt truyện.
Đoạn mã dưới đây tạo biểu đồ hình tròn
import matplotlib.pyplot as plt
# Data to plot
labels = 'Python', 'C++', 'Ruby', 'Java'
sizes = [215, 130, 245, 210]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = [0.1, 0, 0, 0] # explode 1st slice
# Plot
plt.pie[sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=140]
plt.axis['equal']
plt.show[]
Đoạn mã trên có đầu ra sau
Bạn có thể xác định kích thước của nó, bộ phận nào sẽ phát nổ [khoảng cách từ trung tâm], nhãn nào nên có và màu nào nên có
Chúng tôi đã tạo một từ điển với nhiều tính năng khác nhau và chúng tôi đã chuyển nó qua pd. DataFrame để tạo tập dữ liệu
Bước 3 - Vẽ đồ thị Pie
Chúng tôi đã tạo một tính năng mới sẽ lưu trữ tổng của tất cả dữ liệu mà chúng tôi muốn tạo Pie Plot. df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
Chúng tôi đã tạo một mảng mã màu và sử dụng nó để vẽ biểu đồ hình tròn. Chúng tôi đã vẽ biểu đồ Pie bằng Pli. pie bằng cách chuyển dữ liệu mà chúng tôi muốn vẽ đồ thị. colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
Cuối cùng, chúng tôi in Biểu đồ hình tròn plt.axis["equal"] plt.tight_layout[]; plt.show[]
startangle
mặc định là 0, sẽ bắt đầu lát cắt "Ếch" trên trục x dương. Ví dụ này đặt startangle = 90
sao cho mọi thứ được xoay ngược chiều kim đồng hồ 90 độ và lát ếch bắt đầu trên trục y dương
matplotlib
4=
from
0matplotlib
7from
2matplotlib
9from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
31from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
33from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
35from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
37matplotlib
3
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
39
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
20=
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
22=
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
24colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
25from
2colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
27colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
28
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
29=
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
31
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
32
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
33
Đầu ra.
Tùy chỉnh biểu đồ hình tròn
Có thể tùy chỉnh biểu đồ hình tròn trên cơ sở một số khía cạnh. Thuộc tính startangle xoay biểu đồ theo các độ đã chỉ định theo hướng ngược chiều kim đồng hồ được thực hiện trên trục x của biểu đồ hình tròn. thuộc tính bóng chấp nhận giá trị boolean, nếu nó đúng thì bóng sẽ xuất hiện bên dưới vành bánh. Các nêm của chiếc bánh có thể được tùy chỉnh bằng cách sử dụng wedgeprop, lấy từ điển Python làm tham số với các cặp giá trị tên biểu thị các thuộc tính nêm như băng thông, màu sắc cạnh, v.v. Bằng cách đặt frame=True axis, khung được vẽ xung quanh biểu đồ hình tròn. autopct kiểm soát cách hiển thị tỷ lệ phần trăm trên các nêm. Hãy để chúng tôi cố gắng sửa đổi cốt truyện trên.
Ví dụ 1.
Python3
plt.axis["equal"] plt.tight_layout[]; plt.show[]
6
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
3 plt.axis["equal"] plt.tight_layout[]; plt.show[]
8
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
3 df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
38
startangle
1
startangle
2=
from
0from
1from
2from
3from
2from
5from
2
from
7from
8______82matplotlib
0from
2matplotlib
2matplotlib
3
matplotlib
4=
from
0matplotlib
7from
2matplotlib
9from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
31from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
33from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
35from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
37matplotlib
3
=
1
=
2__=
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
24=
5from
2=
7from
2=
9from
2from
01from
2=
7from
2=
7from
06
from
07
from
08=
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
24from
11from
2from
13from
2from
15from
2
from
17from
18from
2from
20from
2from
22from
06
from
24
from
25=
from
27from
28 from
29from
30from
2from
32 from
29from
34 from
35
from
36
from
37 from
38
from
39from
40=
from
42from
43from
44 from
45from
46from
47from
48from
49
from
39from
51 from
52____853from
54from
55
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
39
from
57=
from
59=
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
24colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
25from
2colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
27colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
28
from
66=
from
68
from
69from
70=
from
72 from
73
from
69=
2=
from
77
from
69from
79______7 from
81
from
69from
83=
from
85from
2
from
69from
08=
from
90
from
69from
92=
from
94from
2
from
69from
97=
from
99
from
69matplotlib
01=
matplotlib
03matplotlib
04=
matplotlib
06colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
28
matplotlib
08
matplotlib
09
from
17matplotlib
11=
matplotlib
13from
2
from
17matplotlib
16=
matplotlib
18from
2
from
17matplotlib
21=
colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
24from
30from
2matplotlib
26from
2matplotlib
28from
2from
30colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
28
matplotlib
32=
matplotlib
34matplotlib
35=
matplotlib
37from
06
matplotlib
39matplotlib
40from
06
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
32
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
33
Đầu ra.
Ví dụ 2. Tạo biểu đồ hình tròn lồng nhau
Python3
plt.axis["equal"] plt.tight_layout[]; plt.show[]
6
from
matplotlib
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
3 colors = ["#E13F29", "#D69A80", "#D63B59", "#AE5552", "#CB5C3B", "#EB8076", "#96624E"] plt.pie[df["total_arrests"], labels=df["officer_name"], shadow=False, colors=colors, explode=[0, 0, 0, 0, 0.15], startangle=90, autopct="%1.1f%%"]
2
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
3 plt.axis["equal"] plt.tight_layout[]; plt.show[]
8
startangle
1
matplotlib
52=
matplotlib
54
startangle
2=
from
0from
1from
2from
3from
2from
5from
2
from
7from
8______82matplotlib
0from
2matplotlib
2matplotlib
3
matplotlib
4=
matplotlib
73matplotlib
7from
2matplotlib
76matplotlib
77matplotlib
9from
2matplotlib
7matplotlib
81
matplotlib
82______80df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
31from
2matplotlib
86matplotlib
77df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
33from
2matplotlib
90matplotlib
81
matplotlib
82______80df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
35from
2matplotlib
96matplotlib
77df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
37from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
300df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
301
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
302
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
303=
matplotlib
4from
44 from
47from
48df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
309from
46df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
311 from
46 df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
313
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
314
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
315=
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
317matplotlib
26from
2
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
320df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
321____1322from
30df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
324
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
325
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
326=
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
328df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
329from
06
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
331=
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
333____654from
06from
46df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
337from
06
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
339=
df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
341from
30from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
311from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
346from
2matplotlib
54from
2df["total_arrests"] = df["jan_arrests"] + df["feb_arrests"] + df["march_arrests"] print[df]
350from
2