gpt4 book ai didi

python - matplotlib 子图中的 "SuperAxis"

转载 作者:行者123 更新时间:2023-11-28 21:42:08 25 4
gpt4 key购买 nike

我正在使用 subplot 来评估一些条件,例如,我用我的测试条件创建了两个数组:

A=[ -2, -.1, .1, 2 ]
B=[ -4, -.2, .2, 4 ]

然后我在循环中评估它:

for i,a in enumerate(A):
for j,b in enumerate(B):
U_E[i][j]=u(t,b,a)

最后我绘制了它:

f, axarr = plt.subplots(len(A),len(B), sharex=True, sharey='row')
for i in range(len(A)):
for j in range(len(B)):
axarr[i, j].plot(t, U_E[i][j])

这很好,我对此几乎感到满意。 :-) 是这样的:

Matplotlib comparative matrix

但我想将 AB 的值添加为“超轴”以快速查看 B A 代表每个地 block 。

类似于:

Something like this

最佳答案

我建议使用 axarr[i,j].text 在每个子图中写入 A 和 B 参数:

for i in range(len(A)):
for j in range(len(B)):
axarr[i,j].plot(x, y*j) # just to make my subplots look different
axarr[i,j].text(.5,.9,"A="+str(A[j])+";B="+str(B[i]), horizontalalignment='center', transform=axarr[i,j].transAxes)

plt.subplots_adjust(hspace=0,wspace=0)
plt.show()

transform=axarr[i,j].transAxes 确保我们将坐标视为相对于每个轴的坐标:enter image description here

当然,如果您不认为解耦子图对您的案例的可视化来说是一个大问题:

for i in range(len(A)):
for j in range(len(B)):
axarr[i,j].plot(x, y*j)
axarr[i,j].set_title("A="+str(A[i])+";B="+str(B[j]))

#plt.subplots_adjust(hspace=0,wspace=0)
plt.show()

enter image description here

关于python - matplotlib 子图中的 "SuperAxis",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com