Biểu đồ thanh xếp chồng Python

Biểu diễn dữ liệu bằng đồ họa cho chúng ta ý tưởng tốt hơn về dữ liệu. Biểu đồ thanh là một trong những cách để làm điều đó

Vì vậy, đây là công thức về cách chúng ta có thể tạo biểu đồ BAR xếp chồng lên nhau trong Python

Bước 1 - Nhập thư viện

import pandas as pd import matplotlib.pyplot as plt

Chúng tôi chỉ nhập gấu trúc và matplotlib cần thiết

Bước 2 - Tạo một khung dữ liệu

Chúng tôi đã tạo một từ điển với các giá trị khác nhau và chuyển nó tới pd. DataFrame để tạo một khung dữ liệu. raw_data = {"first_name": ["Jason", "Molly", "Tina", "Jake", "Amy"], "pre_score": [4, 24, 31, 2, 3], "mid_score": [25, 94, 57, 62, 70], "post_score": [5, 43, 23, 23, 51]} df = pd.DataFrame(raw_data, columns = ["first_name", "pre_score", "mid_score", "post_score"]) print(df)

Bước 3 - Tạo biểu đồ thanh

Chúng tôi đã tạo một biểu đồ thanh để chúng tôi phải đặt nhiều thứ khác nhau. Chúng tôi đã cố định chiều rộng thanh, ranh giới thanh và vị trí của chúng. f, ax = plt.subplots(1, figsize=(10,5)) bar_width = 1 bar_l = [i for i in range(len(df["pre_score"]))] tick_pos = [i+(bar_width/2)-0.5 for i in bar_l] Ở đây, chúng tôi đã đặt phân đoạn ngăn xếp của biểu đồ thanh, bằng cách tính toán tổng và tổng riêng lẻ cũng như tỷ lệ phần trăm của chúng. Chúng tôi cũng đã đặt vị trí của thanh. totals = [i+j+k for i,j,k in zip(df["pre_score"], df["mid_score"], df["post_score"])] pre_rel = [i / j * 100 for i,j in zip(df["pre_score"], totals)] mid_rel = [i / j * 100 for i,j in zip(df["mid_score"], totals)] post_rel = [i / j * 100 for i,j in zip(df["post_score"], totals)] ax.bar(bar_l, pre_rel, label="Pre Score", alpha=0.9, width=bar_width, edgecolor="white") ax.bar(bar_l, mid_rel, bottom=pre_rel, label="Mid Score", alpha=0.9, width=bar_width, edgecolor="white") ax.bar(bar_l, post_rel, bottom=[i+j for i,j in zip(pre_rel, mid_rel)], label="Post Score", alpha=0.9, width=bar_width, edgecolor="white") Chúng tôi đang đặt nhãn cho trục x, trục y và các tham số khác của biểu đồ. print(tick_pos) plt.xticks(tick_pos, df["first_name"]) ax.set_ylabel("Percentage") ax.set_xlabel("") plt.xlim([min(tick_pos)-bar_width, max(tick_pos)+bar_width]) plt.ylim(-10, 110) plt.setp(plt.gca().get_xticklabels(), rotation=45) plt.show()

Trong một barplot xếp chồng lên nhau, các nhóm con được hiển thị chồng lên nhau. Đoạn mã này rất giống với bài viết trước #11-grouped barplot. Thay vì chuyển các vị trí trục x khác nhau cho hàm, bạn sẽ chuyển các vị trí giống nhau cho từng biến. Ngoài ra, để vẽ các thanh chồng lên nhau, bạn nên sử dụng tham số bottom của hàm bar(). Tham số này sẽ đặt giá trị dưới cùng (dòng dưới cùng) của thanh

Trong bài viết #13 sau đây, bạn có thể xem cách biến biểu đồ này thành biểu đồ phần trăm xếp chồng một cách dễ dàng

# libraries
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
import pandas as pd
 
# y-axis in bold
rc('font', weight='bold')
 
# Values of each group
bars1 = [12, 28, 1, 8, 22]
bars2 = [28, 7, 16, 4, 10]
bars3 = [25, 3, 23, 25, 17]
 
# Heights of bars1 + bars2
bars = np.add(bars1, bars2).tolist()
 
# The position of the bars on the x-axis
r = [0,1,2,3,4]
 
# Names of group and bar width
names = ['A','B','C','D','E']
barWidth = 1
 
# Create brown bars
plt.bar(r, bars1, color='#7f6d5f', edgecolor='white', width=barWidth)
# Create green bars (middle), on top of the first ones
plt.bar(r, bars2, bottom=bars1, color='#557f2d', edgecolor='white', width=barWidth)
# Create green bars (top)
plt.bar(r, bars3, bottom=bars, color='#2d7f5e', edgecolor='white', width=barWidth)
 
# Custom X axis
plt.xticks(r, names, fontweight='bold')
plt.xlabel("group")
 
# Show graphic
plt.show()

Biểu đồ thanh xếp chồng lên nhau trong Python là gì?

Biểu đồ thanh xếp chồng (còn gọi là biểu đồ thanh xếp chồng) mở rộng biểu đồ thanh tiêu chuẩn từ việc xem xét các giá trị số trên một biến phân loại thành hai . Mỗi thanh trong biểu đồ thanh tiêu chuẩn được chia thành một số thanh con xếp chồng lên nhau từ đầu đến cuối, mỗi thanh tương ứng với một mức của biến phân loại thứ hai.

Sự khác biệt giữa thanh xếp chồng lên nhau và thanh xếp chồng lên nhau 100% là gì?

Biểu đồ thanh xếp chồng 100% khác với biểu đồ thanh xếp chồng phổ biến ở chỗ biểu thị giá trị của các thành phần dưới dạng phần trăm của toàn bộ thanh dưới dạng . Bằng cách này, sự khác biệt giữa các thành phần được thể hiện nhiều hơn; .

Biểu đồ thanh xếp chồng lên nhau tốt cho việc gì?

Còn được gọi là biểu đồ cột hoặc thanh xếp chồng, chúng trông giống như một loạt các cột hoặc thanh được xếp chồng lên nhau. Biểu đồ xếp chồng là một công cụ cực kỳ hiệu quả để so sánh khi được sử dụng đúng cách. Chúng được thiết kế để so sánh tổng giá trị giữa các danh mục .

Nhược điểm của biểu đồ xếp chồng là gì?

Nhược điểm của biểu đồ thanh xếp chồng lên nhau .
Biểu đồ thanh xếp chồng được sử dụng rộng rãi nhưng khó đọc
Khán giả có thể trở nên bối rối nếu xếp chồng có nhiều hơn bốn hoặc năm lớp
Chúng cũng khó đọc khi có quá nhiều thanh hoặc nhiều hơn ba danh mục phụ trong khoảng thời gian cực dài