2
我有一個包含2x2 3-D圖的子圖。在這個圖表中,我想放置一個文本框,以提供一些附加信息。 爲此,我找到了matplotlib.pyplot.text函數。 但是,此函數使用數據座標作爲輸入。由於我的四個小插圖都具有不同的z值範圍,因此將文本放置在單個z座標上會給他們其他相對位置。將文本標籤放置在不依賴於數據的3D座標中
MWE
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
def randrange(n, vmin, vmax):
return (vmax-vmin)*np.random.rand(n) + vmin
fig = plt.figure()
for plotnr in [1,2,3,4]:
ax = fig.add_subplot(2, 2, plotnr, projection='3d')
n = 10
for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
xs = randrange(n, 23, 32)
ys = randrange(n, 0, 100)
zs = np.divide(randrange(n, zl, zh),1000/(10**(plotnr-1)))
ax.scatter(xs, ys, zs, c=c, marker=m)
ax.text(27, 60,3,'matplotlib', ha='center', va='center',transform=ax.transAxes)
plt.show()
你可以從圖像中看到「matplotlib」到處移動,或者甚至沒有出現在所有。我有這樣的想法,這是因爲z的變化值。
是否可以將文本框放置在相對於圖像的座標上,而不是相對於數據的座標?