Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo biểu đồ diện tích chồng 100% với Matplotlib

Để tạo biểu đồ diện tích chồng 100% (100% stacked Area Chart) với Matplotlib, thực hiện các bước sau:

  • Thiết lập kích thước figure và padding cho subplots
  • Tạo danh sách năm
  • Tạo dictionary chứa dữ liệu dân số theo năm cho từng châu lục
  • Tạo figure và subplots
  • Vẽ stacked area plot
  • Thêm legend tại vị trí 'upper left'
  • Đặt title, xlabel, ylabel
  • Hiển thị bằng show()

Ví dụ mã nguồn

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

year = [1950, 1960, 1970, 1980, 1990, 2000, 2010, 2018]
population_by_continent = {
    'africa': [228, 284, 365, 477, 631, 814, 1044, 1275],
    'americas': [340, 425, 519, 619, 727, 840, 943, 1006],
    'asia': [1394, 1686, 2120, 2625, 3202, 3714, 4169, 4560],
    'europe': [220, 253, 276, 295, 310, 303, 294, 293],
    'oceania': [12, 15, 19, 22, 26, 31, 36, 39],
}

fig, ax = plt.subplots()
ax.stackplot(year, population_by_continent.values(), labels=population_by_continent.keys())
ax.legend(loc='upper left')
ax.set_title('World population')
ax.set_xlabel('Year')
ax.set_ylabel('Number of people (millions)')
plt.show()

Kết quả

Biểu đồ hiển thị dân số thế giới theo châu lục từ 1950-2018, mỗi khu vực được tô màu khác nhau và chồng lên nhau.

Tạo biểu đồ diện tích chồng 100% với Matplotlib

Giải thích: stackplot tự động tính tỷ lệ phần trăm cho từng lớp tại mỗi điểm thời gian, tạo thành biểu đồ 100% stacked area.