Hướng dẫn how to plot multiple pie charts in python - cách vẽ nhiều biểu đồ hình tròn trong python

Tôi đang cố gắng hiển thị hai biểu đồ cùng một lúc bằng cách sử dụng matplotlib.

Nhưng tôi phải đóng một biểu đồ sau đó chỉ tôi có thể xem biểu đồ khác. Dù sao thì có cách nào để hiển thị cả biểu đồ hoặc nhiều số đồ thị cùng một lúc.

Đây là mã của tôi

num_pass=np.size[data[0::,1].astype[np.float]]
num_survive=np.sum[data[0::,1].astype[np.float]]
prop=num_survive/num_pass
num_dead=num_pass-num_survive
#print num_dead


labels='Dead','Survived'
sizes=[num_dead,num_survive]
colors=['darkorange','green']
mp.axis['equal']
mp.title['Titanic Survival Chart']
mp.pie[sizes, explode=[0.02,0], labels=labels,colors=colors,autopct='%1.1f%%', shadow=True, startangle=90]
mp.show[]

women_only_stats = data[0::,4] == "female" 
men_only_stats = data[0::,4] != "female" 

# Using the index from above we select the females and males separately
women_onboard = data[women_only_stats,1].astype[np.float]     
men_onboard = data[men_only_stats,1].astype[np.float]

labels='Men','Women'
sizes=[np.sum[women_onboard],np.sum[men_onboard]]
colors=['purple','red']
mp.axis['equal']
mp.title['People on board']
mp.pie[sizes, explode=[0.01,0], labels=labels,colors=colors,autopct='%1.1f%%', shadow=True, startangle=90]
mp.show[]

Làm thế nào tôi có thể hiển thị cả hai biểu đồ cùng một lúc?

Trong hướng dẫn này, chúng tôi sẽ tạo ra các biểu đồ hình tròn với sự trợ giúp của các thư viện gấu trúc và matplotlib.

Điều kiện tiên quyết

Để tạo biểu đồ hình tròn, chúng tôi sẽ cần những điều sau đây:

  • Python được cài đặt trên máy của bạninstalled on your machine
  • PIP: Hệ thống quản lý gói [đi kèm với Python]package management system [it comes with Python]
  • Jupyter Notebook: Một biên tập viên trực tuyến để trực quan hóa dữ liệuan online editor for data visualization
  • Pandas: Một thư viện để tạo khung dữ liệu từ các bộ dữ liệu và chuẩn bị dữ liệu để vẽ đồ thị a library to create data frames from data sets and prepare data for plotting
  • Matplotlib: một thư viện âm mưua plotting library

Bạn có thể tải xuống phiên bản mới nhất của Python cho Windows trên trang web chính thức.

Để có được các công cụ khác, bạn sẽ cần cài đặt các bản phân phối Python khoa học được đề xuất. Nhập cái này vào thiết bị đầu cuối của bạn:

    
        
pip install numpy scipy matplotlib ipython jupyter pandas sympy nose
    

Bắt đầu

Tạo một thư mục sẽ chứa sổ ghi chép của bạn [ví dụ: Matplotlib-pie-biểu đồ] và mở máy tính xách tay Jupyter bằng cách nhập lệnh này vào thiết bị đầu cuối của bạn [đừng quên thay đổi đường dẫn]:

    
        
cd C:\Users\Shark\Documents\code\matplotlib-pie-chart
py -m notebook
    

Điều này sẽ tự động mở trang chủ Jupyter tại // localhost: 8888/cây. Nhấp vào nút Mới mới ở góc trên cùng bên phải, chọn phiên bản Python được cài đặt trên máy của bạn và một cuốn sổ sẽ mở trong cửa sổ trình duyệt mới.

Trong dòng đầu tiên của máy tính xách tay, nhập tất cả các thư viện cần thiết:

    
        
import matplotlib.pyplot as plt
import matplotlib as mpl
import pandas as pd
%matplotlib notebook
    

Bạn sẽ cần dòng cuối cùng [%Matplotlib Notebook] để hiển thị các ô trong các ô đầu vào.

Chuẩn bị dữ liệu

Chúng tôi sẽ tạo ra một loạt các bảng xếp hạng hình tròn cho thấy tội ác ở các quận London. Chúng tôi sẽ sử dụng tệp .csv để vẽ đồ thị. Bạn có thể tải xuống dữ liệu tội phạm của London London, bộ dữ liệu 200820162016 trên Kaggle [London_CRIME_BY_LSOA.CSV].

Trên dòng thứ hai trong sổ ghi chép Jupyter của bạn, hãy nhập mã này để đọc tệp:

    
        
df = pd.read_csv['london_crime_by_lsoa.csv']
df.head[]
    

Điều này sẽ hiển thị 5 dòng đầu tiên của tệp .csv:

Tiếp theo, chuẩn bị dữ liệu cho âm mưu. Để đơn giản, chúng tôi đã giành chiến thắng sử dụng cột giá trị của người Viking và sẽ tập trung vào các cột của Bor Borough và Major Major_carget.

    
        
# Select columns you need
df = df[['borough', 'major_category']]
# Group boroughs and crimes and count numbers
df_grouped = df.groupby[['borough', 'major_category']].size[].reset_index[]
# Create a pivot table
table = pd.pivot_table[df_grouped, index=['borough'], columns=['major_category']]
# Delete columns with Nan values and convert to integers
table = table.dropna[axis=1].astype[int]
table
    

Ở đây, đầu ra:

Âm mưu một biểu đồ hình tròn

Để bắt đầu, hãy để Lôi tạo một biểu đồ hình tròn matplotlib duy nhất.

Dưới đây là các biến chúng tôi sẽ cần [màu sắc biểu đồ Matplotlib, tiêu đề, nhãn, v.v.]:

    
        
row_num = [5] # No. of the row
font_color = '#525252'
colors = ['#f7ecb0', '#ffb3e6', '#99ff99', '#66b3ff', '#c7b3fb','#ff6666', '#f9c3b7']
values = table.iloc[row_num].values.tolist[][0] # crime numbers
labels = [x[1] for x in table.columns] # crime names
title = table.iloc[row_num].index.values.tolist[][0] # borough
    

Plotting:

    
        
# Create subplots and a pie chart
fig, ax = plt.subplots[figsize=[10, 7], facecolor='#e8f4f0']
ax.pie[values, labels=labels, colors=colors, startangle=30, textprops={'color':font_color}]
# Set title, its position, and font size
title = plt.title[title, fontsize=16, color=font_color]
title.set_position[[.5, 1.02]]
mpl.rcParams['font.size'] = 16.0
    

Đây là kết quả:

Lưu các tập tin:

    
        
filename = 'pie-chart-single'
plt.savefig[filename+'.png', facecolor=['#e8f4f0']]
    

Bạn có thể cần lặp lại facecolor trong savefig []. Nếu không, plt.savefig có thể bỏ qua nó.

Âm mưu nhiều biểu đồ bánh rán

Bây giờ chúng tôi sẽ tạo ra nhiều biểu đồ Matplotlib Pie [Donut] với một huyền thoại. Chúng tôi sẽ vẽ nhiều biểu đồ trong một hình với một vòng lặp, trong một tập lệnh.

Tất cả các đoạn mã bên dưới nên được đặt bên trong một ô trong sổ ghi chép Jupyter của bạn.

1. Đặt các biến phông chữ và màu

    
        
font_color = '#525252'
colors = ['#f7ecb0', '#ffb3e6', '#99ff99', '#66b3ff', '#c7b3fb','#ff6666', '#f9c3b7']
    

2. Tạo một con số và các ô phụ

    
        
pip install numpy scipy matplotlib ipython jupyter pandas sympy nose
    
0

Các ô phụ [3, 3] sẽ tạo 9 ô con, với 3 hàng và 3 cột. Giá trị đầu tiên là số lượng hàng và cái thứ hai là số lượng cột.

FIGSIZE = [10, 10] sẽ tạo ra hình 1000 × 1000 pixel.

Hình.Delaxes [AX = AXES [2,2]] sẽ loại bỏ các ô phụ cuối cùng để xóa một không gian cho truyền thuyết. Do đó, chúng tôi sẽ tạo ra 9 ô con với 8 biểu đồ.

3. Vẽ biểu đồ hình tròn với một huyền thoại

Chúng tôi sẽ sử dụng vòng lặp để lặp lại các hàng và tạo biểu đồ hình tròn cho mỗi người trong số chúng. Chúng tôi chỉ lặp lại 8 hàng trong ví dụ này vì vậy chúng tôi sử dụng bảng.head [8] thay vì bảng.

wedgeprops = dict [width = .5] sẽ tạo ra bánh rán [biểu đồ hình tròn có lỗ ở trung tâm]. Don Tiết sử dụng đối số này, và bạn sẽ nhận được biểu đồ hình tròn thay vì biểu đồ bánh rán.

Nhãn = row.values ​​sẽ hiển thị các giá trị [số tội phạm] và nhãn = [x [1] cho x in row.index] sẽ hiển thị tên tội phạm. Để tạo một huyền thoại, chúng tôi sử dụng [x [1] cho x trong hàng.index] [và không phải row.index] vì chúng tôi muốn truy cập giá trị thứ hai trong danh sách các bộ dữ liệu, là row.index.

    
        
pip install numpy scipy matplotlib ipython jupyter pandas sympy nose
    
1

Ở đây, kết quả cuối cùng:

4. Lưu biểu đồ dưới dạng hình ảnh

    
        
pip install numpy scipy matplotlib ipython jupyter pandas sympy nose
    
2

Đó là nó, các biểu đồ hình tròn matplotlib của chúng tôi đã sẵn sàng. Bạn có thể tải xuống sổ ghi chép trên GitHub để có được mã đầy đủ.You can download the notebook on GitHub to get the full code.

Đọc thêm:

→ matplotlib: biểu đồ thanh lỗi

→ matplotlib: đồ thị thanh đôi

Bạn có thể kết hợp 2 biểu đồ hình tròn?

Không giống như biểu đồ thanh và biểu đồ dòng, hai hoặc nhiều biểu đồ hình tròn không dễ dàng kết hợp, vì chúng chỉ có thể sử dụng hai loại dữ liệu.Chìa khóa để kết hợp các biểu đồ hình tròn là tạo một bộ dữ liệu hoàn toàn mới được biên dịch từ các bộ dữ liệu gốc của bạn và xây dựng một biểu đồ từ đó.two or more pie charts do not combine easily, because they can only use two data categories. The key to combining pie charts is creating a completely new data set compiled from your original data sets and building a chart from that.

Biểu đồ nhiều hình tròn là gì?

Biểu đồ nhiều bánh là một hình ảnh trong đó nhiều chiếc bánh được vẽ cùng nhau, cạnh nhau.Mặc dù một biểu đồ hình tròn duy nhất được sử dụng để trực quan hóa mối quan hệ một phần trong một nhóm, nhưng nhiều chiếc bánh chủ yếu được sử dụng để trực quan hóa và so sánh dữ liệu của một danh mục giữa các nhóm khác nhau.a visualization in which multiple pies are plotted together, side by side. While a single pie chart is used to visualize the part-to-whole relationship within one group, the multiple pies are mostly used to visualize and compare data of a category across different groups.

Autopct Python là gì?

Autopct.Chuỗi, được sử dụng để dán nhãn nêm với giá trị số của chúng.Nhãn sẽ được đặt bên trong nêm.Chuỗi định dạng sẽ là FMT%PCT.Mã sau sử dụng hàm pie [] để hiển thị biểu đồ hình tròn của danh sách các sinh viên đăng ký cho các khóa học ngôn ngữ máy tính khác nhau.used to label the wedges with their numeric value. The label will be placed inside the wedge. The format string will be fmt%pct. Following code uses the pie[] function to display the pie chart of the list of students enrolled for various computer language courses.

Bài Viết Liên Quan

Chủ Đề