我使用子图来评估某些条件,我用我的测试条件创建了两个数组,例如:
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])
很好,我对此很满意。 :-)它类似于:
但我希望将A
和B
的值添加为" superaxis"快速查看每个情节B
和A
。
类似的东西:
答案 0 :(得分:3)
我建议使用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
确保我们将坐标作为相对于每个轴的坐标:
当然,如果你不认为解耦子图是你案例中可视化的一个大问题:
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()
答案 1 :(得分:2)
似乎你只想标记轴。这可以使用.set_xlabel()
和.set_ylabel()
完成。
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = 10,7
t = np.linspace(0,1)
u = lambda t, b,a : b*np.exp(-a*t)
A=[ -2, -.1, .1, 2 ]
B=[ -4, -.2, .2, 4 ]
f, axarr = plt.subplots(len(A),len(B), sharex=True, sharey='row')
plt.subplots_adjust(hspace=0,wspace=0)
for i in range(len(A)):
axarr[i, 0].set_ylabel(A[i], fontsize=20, fontweight="bold")
for j in range(len(B)):
axarr[i, j].plot(t, u(t,B[j],A[i]))
axarr[-1, j].set_xlabel(B[j], fontsize=20,fontweight="bold")
plt.show()