Xin chào @Bee, có lẽ hai ô con của bạn có mỗi ô màu và hai ô này thực sự chồng lên nhau. Bạn có thể sử dụng một coloraxis phổ biến thay vì như mô tả Show Tôi có 2 bảng dữ liệu với kích thước Với số lượng lớn các cột, tôi nghĩ tốt nhất nên biểu diễn điều này bằng cách sử dụng
Tuy nhiên, tôi không chắc làm cách nào để kết hợp hai bảng dữ liệu vào cùng một bản đồ nhiệt. Cách duy nhất tôi có thể nghĩ ra là chỉ cần tạo một
Bất kỳ trợ giúp với các vấn đề trên sẽ rất hữu ích Ghi chú. Tôi không muốn biểu diễn dữ liệu như tôi đã đề xuất ở trên hoặc thậm chí sử dụng bản đồ nhiệt. Nếu có những gợi ý khác cho âm mưu, xin vui lòng cho tôi biết Matplotlib là thư viện Python phổ biến nhất để vẽ biểu đồ và trực quan hóa dữ liệu của chúng tôi. Trong Matplotlib, chúng ta có thể tạo nhiều ô bằng cách gọi chúng một lần. Để tạo nhiều ô ta sử dụng hàm subplot của module pyplot trong Matplotlib
Tiếp cận
ví dụ 1 Python3
tạo một hình và một lưới các ô con chỉ bằng một lệnh gọi, đồng thời cung cấp quyền kiểm soát hợp lý đối với cách các ô riêng lẻ được tạo. Đối với các trường hợp sử dụng nâng cao hơn, bạn có thể sử dụng để bố trí ô con tổng quát hơn hoặc để thêm các ô con tại các vị trí tùy ý trong hình import matplotlib.pyplot as plt import numpy as np # Some example data to display x = np.linspace(0, 2 * np.pi, 400) y = np.sin(x ** 2) Một hình chỉ với một subplotfig, ax = plt.subplots() ax.plot(x, y) ax.set_title('A single plot')8 không có đối số trả về a và một Đây thực sự là cách đơn giản nhất và được khuyên dùng để tạo một Hình và Trục fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('A single plot') Xếp chồng các ô con theo một hướngHai đối số tùy chọn đầu tiên xác định số lượng hàng và cột của lưới ô con Khi chỉ xếp chồng theo một hướng, fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)2 được trả về là một mảng numpy 1D chứa danh sách các Trục đã tạo fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y) Nếu bạn chỉ đang tạo một vài Trục, bạn có thể giải nén chúng ngay lập tức thành các biến chuyên dụng cho từng Trục. Bằng cách đó, chúng ta có thể sử dụng fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)3 thay vì dài dòng hơn fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)4 fig, (ax1, ax2) = plt.subplots(2) fig.suptitle('Vertically stacked subplots') ax1.plot(x, y) ax2.plot(x, -y) Để có được các ô con cạnh nhau, hãy truyền tham số fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)5 cho một hàng và hai cột fig, (ax1, ax2) = plt.subplots(1, 2) fig.suptitle('Horizontally stacked subplots') ax1.plot(x, y) ax2.plot(x, -y) Xếp chồng các ô con theo hai hướngKhi xếp chồng theo hai hướng, fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)2 được trả về là một mảng NumPy 2D Nếu bạn phải đặt tham số cho từng ô con, sẽ rất hữu ích khi lặp lại tất cả các ô con trong lưới 2D bằng cách sử dụng fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)7 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(x, y) axs[0, 0].set_title('Axis [0, 0]') axs[0, 1].plot(x, y, 'tab:orange') axs[0, 1].set_title('Axis [0, 1]') axs[1, 0].plot(x, -y, 'tab:green') axs[1, 0].set_title('Axis [1, 0]') axs[1, 1].plot(x, -y, 'tab:red') axs[1, 1].set_title('Axis [1, 1]') for ax in axs.flat: ax.set(xlabel='x-label', ylabel='y-label') # Hide x labels and tick labels for top plots and y ticks for right plots. for ax in axs.flat: ax.label_outer() Bạn cũng có thể sử dụng giải nén bộ trong 2D để gán tất cả các ô con cho các biến chuyên dụng fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2) fig.suptitle('Sharing x per column, y per row') ax1.plot(x, y) ax2.plot(x, y**2, 'tab:orange') ax3.plot(x, -y, 'tab:green') ax4.plot(x, -y**2, 'tab:red') for ax in fig.get_axes(): ax.label_outer() Trục chia sẻTheo mặc định, mỗi Trục được chia tỷ lệ riêng lẻ. Do đó, nếu các phạm vi khác nhau, các giá trị đánh dấu của các ô con không thẳng hàng fig, (ax1, ax2) = plt.subplots(2) fig.suptitle('Axes values are scaled individually by default') ax1.plot(x, y) ax2.plot(x + 1, -y) Bạn có thể dùng sharex hoặc sharey để căn chỉnh trục ngang hoặc trục dọc fig, (ax1, ax2) = plt.subplots(2, sharex=True) fig.suptitle('Aligning x-axis using sharex') ax1.plot(x, y) ax2.plot(x + 1, -y) Đặt sharex hoặc sharey thành fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)8 cho phép chia sẻ toàn cầu trên toàn bộ lưới, tôi. e. đồng thời trục y của các ô con xếp chồng lên nhau theo chiều dọc có cùng tỷ lệ khi sử dụng fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)9 fig, axs = plt.subplots(3, sharex=True, sharey=True) fig.suptitle('Sharing both axes') axs[0].plot(x, y ** 2) axs[1].plot(x, 0.3 * y, 'o') axs[2].plot(x, y, '+') Đối với các ô con đang chia sẻ trục, một bộ nhãn đánh dấu là đủ. Nhãn đánh dấu của các Trục bên trong sẽ tự động bị xóa bởi sharex và sharey. Vẫn còn một khoảng trống chưa sử dụng giữa các ô con Để kiểm soát chính xác vị trí của các ô con, người ta có thể tạo rõ ràng một with và sau đó gọi phương thức của nó. Ví dụ: chúng ta có thể giảm chiều cao giữa các ô con dọc bằng cách sử dụng fig, (ax1, ax2) = plt.subplots(2) fig.suptitle('Vertically stacked subplots') ax1.plot(x, y) ax2.plot(x, -y)3 là một phương pháp tiện dụng để xóa nhãn và dấu tích khỏi các ô con không nằm ở rìa của lưới fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('A single plot')0 Ngoài fig, axs = plt.subplots(2) fig.suptitle('Vertically stacked subplots') axs[0].plot(x, y) axs[1].plot(x, -y)8 và fig, (ax1, ax2) = plt.subplots(2) fig.suptitle('Vertically stacked subplots') ax1.plot(x, y) ax2.plot(x, -y)6, cả sharex và sharey đều chấp nhận các giá trị 'hàng' và 'col' để chỉ chia sẻ các giá trị trên mỗi hàng hoặc cột fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('A single plot')1 Nếu bạn muốn có một cấu trúc chia sẻ phức tạp hơn, trước tiên bạn có thể tạo lưới các trục không có chia sẻ, sau đó gọi hoặc thêm thông tin chia sẻ vào sau fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('A single plot')2 trục cựcTham số subplot_kw của điều khiển các thuộc tính của subplot (xem thêm). Đặc biệt, điều này có thể được sử dụng để tạo một lưới các trục cực |