Hướng dẫn stacked multiple bar chart python - Python nhiều biểu đồ thanh xếp chồng lên nhau

Điều này sẽ hoạt động theo cách bạn muốn:

import pandas as pd

df = pd.DataFrame[dict[
    A=[1, 2, 3, 4],
    B=[2, 3, 4, 5],
    C=[3, 4, 5, 6],
    D=[4, 5, 6, 7]]]

import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure[figsize=[20, 10]]

ab_bar_list = [plt.bar[[0, 1, 2, 3], df.B, align='edge', width= 0.2],
               plt.bar[[0, 1, 2, 3], df.A, align='edge', width= 0.2]]

cd_bar_list = [plt.bar[[0, 1, 2, 3], df.D, align='edge',width= -0.2],
               plt.bar[[0, 1, 2, 3], df.C, align='edge',width= -0.2]]

Chỉ cần ghi nhớ, giá trị width cho một nhóm phải là tích cực và tiêu cực cho nhóm thứ hai. Sử dụng align bằng edge là tốt. Bạn phải đặt thanh với các giá trị lớn nhất trước thanh với các giá trị thấp nhất và nếu bạn muốn các thanh xuất hiện xếp chồng lên nhau chứ không phải là một giá trị khác, hãy thay đổi df.Bdf.D thành df.B + df.Adf.D + df.C, tương ứng. Nếu không có mẫu rõ ràng hoặc bao gồm, hãy sử dụng phương thức align bằng phương thức edgewidth với phương pháp được đề xuất bởi @pirsquared. Một giải pháp khác là truy cập từng giá trị từ thanh màu xanh lá cây và so sánh nó với giá trị tương ứng từ thanh màu đỏ và vẽ đồ thị phù hợp [quá nhiều công việc không cần thiết trong cái này].
You have to place the bar with the biggest values before the bar with the lowest values, and if you want the bars to appear stacked above one another rather than one in front of another, change df.B and df.D to df.B + df.A and df.D + df.C, respectively. If there's no apparent or consisting pattern, use the align by edge and width method with the one suggested by @piRSquared.
Another alternative would be to access each value from a green bar and compare it to the corresponding value from the red bar, and plot accordingly [too much unnecessary work in this one].

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    • Bàn luận
    • Trong bài viết này, chúng tôi sẽ học cách tạo ra một cốt truyện xếp chồng lên nhau trong matplotlib. Hãy để thảo luận về một số khái niệm:
    • Matplotlib là một thư viện trực quan to lớn trong Python cho các lô 2D của mảng. Matplotlib có thể là một thư viện trực quan hóa dữ liệu đa nền tảng được xây dựng trên các mảng numpy và được thiết kế để tìm ra ngăn xếp Scipy rộng hơn.

    Approach:

    1. Biểu đồ thanh hoặc biểu đồ thanh có thể là một biểu đồ đại diện cho danh mục kiến ​​thức với các thanh hình chữ nhật có độ dài và độ cao mà tỷ lệ thuận với các giá trị mà chúng đại diện. Các ô thanh thường được vẽ theo chiều ngang hoặc chiều dọc.
    2. Các ô thanh xếp chồng lên nhau đại diện cho các nhóm khác nhau ở mức cao nhất trong số 1 người khác. Đỉnh của thanh phụ thuộc vào chiều cao kết quả của hỗn hợp kết quả của các nhóm. Nó đi từ đáy đá đến giá trị thay vì đi từ 0 đến giá trị.
    3. Thư viện nhập [Matplotlib]

    Nhập / tạo dữ liệu.

    Python3

    Vẽ các thanh theo cách ngăn xếp.

    Ví dụ 1: [lô thanh xếp chồng đơn giản]

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    2
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    3

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    4
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    7
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    9
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width1
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width3width4

    edge7

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5edge9df.B0

    df.B1

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5df.B3
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5df.B5df.B0

    df.B7

    Đầu ra:

    width5

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6width8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8align0
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8align4width4

    Python3

    Vẽ các thanh theo cách ngăn xếp.

    Ví dụ 1: [lô thanh xếp chồng đơn giản]

    Ví dụ 1: [lô thanh xếp chồng đơn giản]

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    2
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    3

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    4
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    7
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    9
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width1
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width3width4

    width5

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6width8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8align0
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8align4width4

    align6

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6align0
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8edge1
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8edge3
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8edge1width4

    edge7

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5edge9df.B0

    df.B1

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5df.B3
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5df.B5df.B0

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    27
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    29
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    30
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    31
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    33df.B0

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    35
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    29
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    30
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    39
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    30
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    41
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    43df.B0

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    45
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    46df.B0

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    48
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    49df.B0

    Ví dụ 2: [Biểu đồ thanh xếp chồng với hơn 2 dữ liệu]

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    60
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    61df.B0

    df.B7

    Đầu ra:

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    2 df.D1dataframe plot]

    Python3

    Vẽ các thanh theo cách ngăn xếp.

    Ví dụ 1: [lô thanh xếp chồng đơn giản]

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    2
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    3

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    4
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    7
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    9
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width1
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width3width4

    width03

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    6width3
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width09
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8width11
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    8
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    02width14

    Các

    width29width30

    width31

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5width19width34
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5width36width37
      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5width39width40

    width41width42

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19
    5width44df.B0

    df.B7

    Đầu ra:

      Team  Round 1  Round 2  Round 3  Round 4
    0    A       10       20       10       26
    1    B       20       25       15       21
    2    C       12       15       19        6
    3    D       10       18       11       19


    Có thể tạo nhiều biểu đồ thanh trong Python không?

    Bằng cách sử dụng PLT. Phương thức Subplot [] Chúng tôi tạo hai bên cạnh nhau. Phương thức plt.bar [] được sử dụng để tạo nhiều biểu đồ biểu đồ thanh.plt. bar[] method is used to create multiple bar chart graphs.

    Làm thế nào để tôi vẽ hai biểu đồ thanh cạnh nhau trong Python?

    Nhận hoặc đặt các vị trí và nhãn hiệu hiện tại của trục X bằng phương thức set_xticks [].Đặt nhãn đánh dấu trục x của lưới bằng phương thức set_xtickLabels [].Đặt một huyền thoại trên hình bằng phương thức Legend [].Chú thích các thanh được tạo [Rect1 và orth2] với một số nhãn bằng phương thức autolabel [] [phương thức do người dùng xác định].

    Làm thế nào để bạn vẽ 3 cột trong Python?

    Để vẽ nhiều cột dữ liệu trong khung đơn, chúng tôi chỉ cần chuyển danh sách các cột cho đối số y của hàm âm mưu ...
    Nhập mô -đun ..
    Tạo hoặc tải dữ liệu ..
    Chuyển đổi sang DataFrame ..
    Sử dụng phương thức Plot [], chỉ định một cột duy nhất dọc theo trục x và nhiều cột dưới dạng một mảng dọc theo trục y ..
    Hiển thị đồ thị ..

    Làm thế nào để bạn vẽ một biểu đồ thanh được nhóm trong Python?

    Bước 1 - Nhập thư viện.Nhập Pandas dưới dạng nhập PD matplotlib.pyplot dưới dạng plt.....
    Bước 2 - Thiết lập dữ liệu.....
    Bước 3 - Đặt vị trí và chiều rộng của các thanh trong đồ thị.....
    Bước 5 - Tạo thanh cho dữ liệu ..

    Bài Viết Liên Quan

    Chủ Đề