猿问

生成多个列表的多个不同子图

我想绘制原始数据的简单线性图,由第一列的数学函数组成。在第一行,我想绘制基函数,由不同正弦函数的线性图组成。在后续的每一行中,我都想绘制流图,包括每个函数在每个基函数上的投影,所以最后我基本上有一个 12x6 的子图矩阵。我还想为每个子图添加标题。


我遇到的问题是流图和线性图来自不同的数据,我想用 for 循环解决它。


我希望这不会太混乱。


到目前为止我得到了这个:


functions = [c_f, l_f, pa_f, po_f,n_, log_f, sin, series_vl12, series_apr12, series_mlr202, ex_pn]


base_func = [sin1, sin2, sin3, sin4, sin5]



U = []

V = []

for i in sums_phi:

    U.append(r * np.cos(i))

    V.append(r * np.sin(i))


Y, X = np.mgrid[:101:1,:101:1]


plt.figure(figsize=(15,40))


for x, (i, j) in enumerate(zip(U, V)):

    plt.subplot(11, 5, x+1)

    #function(a, b)

    plt.streamplot(X,Y,i,j, density = 1 )


plt.show()

这给了我没有原始数据线性子图的流图。


守着星空守着你
浏览 107回答 1
1回答

呼如林

您可以在子图的定义中再添加一行,将问题一分为二。首先绘制流线图,然后绘制线性图。这里制作了一小段代码,您可以根据自己的情况进行调整:import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0, 10, 100)fig, axs = plt.subplots(3, 3)axs = axs.ravel()for i in range(6):    axs[i].plot(x, x**0.5)给我前 6 个子图:for i in range(3):     axs[i+6].plot(x, x**2, c='r')然后我可以在最后 3 个子图中绘制另一个函数:希望对您的问题有所帮助。
随时随地看视频慕课网APP

相关分类

Python
我要回答