我想绘制原始数据的简单线性图,由第一列的数学函数组成。在第一行,我想绘制基函数,由不同正弦函数的线性图组成。在后续的每一行中,我都想绘制流图,包括每个函数在每个基函数上的投影,所以最后我基本上有一个 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()这给了我没有原始数据线性子图的流图。
1 回答
呼如林
TA贡献1798条经验 获得超3个赞
您可以在子图的定义中再添加一行,将问题一分为二。首先绘制流线图,然后绘制线性图。
这里制作了一小段代码,您可以根据自己的情况进行调整:
import numpy as np
import matplotlib.pyplot as plt
x = 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 个子图中绘制另一个函数:
希望对您的问题有所帮助。
添加回答
举报
0/150
提交
取消