Matplotlib - Lô Bar
Biểu đồ thanh hoặc biểu đồ thanh là một biểu đồ hoặc đồ thị trình bày dữ liệu phân loại với các thanh hình chữ nhật có chiều cao hoặc chiều dài tỷ lệ với các giá trị mà chúng đại diện. Các thanh có thể được vẽ theo chiều dọc hoặc chiều ngang.
Biểu đồ thanh hiển thị so sánh giữa các danh mục rời rạc. Một trục của biểu đồ hiển thị các danh mục cụ thể đang được so sánh và trục còn lại thể hiện giá trị đo được.
API Matplotlib cung cấp bar()có thể được sử dụng trong kiểu MATLAB cũng như API hướng đối tượng. Chữ ký của hàm bar () được sử dụng với đối tượng axis như sau:
ax.bar(x, height, width, bottom, align)
Hàm tạo một biểu đồ thanh với hình chữ nhật giới hạn có kích thước (x − width = 2; x + width = 2; bottom; bottom + height).
Các tham số của hàm là -
x | dãy vô hướng biểu diễn tọa độ x của các thanh. căn chỉnh các điều khiển nếu x là tâm thanh (mặc định) hoặc cạnh trái. |
Chiều cao | vô hướng hoặc chuỗi các đại lượng vô hướng đại diện cho (các) chiều cao của các thanh. |
chiều rộng | vô hướng hoặc dạng mảng, tùy chọn. (các) chiều rộng của các thanh mặc định là 0,8 |
đáy | vô hướng hoặc dạng mảng, tùy chọn. (các) tọa độ y của các thanh mặc định Không có. |
căn chỉnh | {'center', 'edge'}, tùy chọn, mặc định 'center' |
Hàm trả về một đối tượng chứa Matplotlib với tất cả các thanh.
Sau đây là một ví dụ đơn giản về biểu đồ thanh Matplotlib. Nó cho thấy số lượng sinh viên đăng ký cho các khóa học khác nhau được cung cấp tại một viện.
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
plt.show()
Khi so sánh một số đại lượng và khi thay đổi một biến, chúng ta có thể muốn có một biểu đồ thanh trong đó chúng ta có các thanh có một màu cho một giá trị đại lượng.
Chúng ta có thể vẽ nhiều biểu đồ thanh bằng cách chơi với độ dày và vị trí của các thanh. Biến dữ liệu chứa ba chuỗi bốn giá trị. Tập lệnh sau sẽ hiển thị ba biểu đồ thanh gồm bốn thanh. Các thanh sẽ có độ dày 0,25 đơn vị. Mỗi biểu đồ thanh sẽ được dịch chuyển 0,25 đơn vị so với biểu đồ trước đó. Đối tượng dữ liệu là một đa sắc số chứa số lượng sinh viên đã đậu vào ba ngành của một trường cao đẳng kỹ thuật trong bốn năm qua.
import numpy as np
import matplotlib.pyplot as plt
data = [[30, 25, 50, 20],
[40, 23, 51, 17],
[35, 22, 45, 19]]
X = np.arange(4)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)
Biểu đồ thanh xếp chồng xếp chồng các thanh đại diện cho các nhóm khác nhau chồng lên nhau. Chiều cao của thanh kết quả hiển thị kết quả tổng hợp của các nhóm.
Tham số dưới cùng tùy chọn của pyplot.bar()hàm cho phép bạn chỉ định giá trị bắt đầu cho một thanh. Thay vì chạy từ 0 đến một giá trị, nó sẽ đi từ dưới cùng đến giá trị. Lệnh gọi đầu tiên tới pyplot.bar () vẽ các thanh màu xanh lam. Lệnh gọi thứ hai tới pyplot.bar () vẽ các thanh màu đỏ, với đáy của các thanh màu xanh nằm trên cùng của các thanh màu đỏ.
import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N) # the x locations for the groups
width = 0.35
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(ind, menMeans, width, color='r')
ax.bar(ind, womenMeans, width,bottom=menMeans, color='b')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
ax.set_yticks(np.arange(0, 81, 10))
ax.legend(labels=['Men', 'Women'])
plt.show()