簡體   English   中英

具有多個顏色條的子圖

[英]subplots with multiple colorbar

我試圖繪制一個帶有4個子圖和2個顏色條的圖形。 這是我的代碼:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

from matplotlib import rcParams
rcParams["savefig.dpi"] = 100
rcParams["font.size"] = 18

x1 = np.linspace(100, 1000, 10)
y1 = np.linspace(10, 17, 10)
z1 = np.linspace(4, 18, 10)
t1 = np.linspace(-0.3, 0.4, 10)

fig, axes = plt.subplots(2, 2, sharey = True, figsize = (10, 10))

a0 = axes[0][0].scatter(x1, y1, s = 40, c = z1, marker = 'o')
cbar1 = fig.colorbar(a0)
axes[0][0].set_ylabel('y1')
axes[0][0].set_xlabel('x1')
axes[0][0].xaxis.set_major_locator(MaxNLocator(4))

a1 = axes[0][1].scatter(t1, y1, s = 40, c = z1, marker = 'o')
axes[0][1].xaxis.set_major_locator(MaxNLocator(4))
axes[0][1].set_xlabel('t1')
cbar1.ax.set_ylabel('z1', rotation = 270)

x2 = np.linspace(450, 900, 20)
y2 = np.linspace(11, 12.5, 20)
z2 = np.linspace(12, 60, 20)
t2 = np.linspace(-0.3, 0.4, 20)

a0 = axes[1][0].scatter(x2, y2, c = z2, marker = 'o')
cbar2 = fig.colorbar(a0)
axes[1][0].set_ylabel('y2')
axes[1][0].set_xlabel('x2')
axes[1][0].xaxis.set_major_locator(MaxNLocator(4))

a1 = axes[1][1].scatter(t2, y2, c = z2, marker = 'o')
axes[1][0].xaxis.set_major_locator(MaxNLocator(4))
axes[1][1].set_xlabel('t2')
cbar2.ax.set_ylabel('z2', rotation = 270)

plt.show()

如下圖: 在此處輸入圖片說明

我要修復的是:

顏色條位於右側的遠端。 我希望第一行右邊有一個顏色條,第二行右邊有另一個顏色條(基本上就是它所在的位置)。

我怎樣才能做到這一點? 謝謝!

您可以輸入另一個參數來選擇在哪個軸上繪制顏色條。 這是代碼中的更改:

cbar1 = fig.colorbar(a0, ax=axes[0][1])

cbar2 = fig.colorbar(a0, ax=axes[1][1])

產生此圖的地方:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM