为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2022-12-20 14:39:04
我想绘制原始数据的简单线性图,由第一列的数学函数组成。在第一行,我想绘制基函数,由不同正弦函数的线性图组成。在后续的每一行中,我都想绘制流图,包括每个函数在每个基函数上的投影,所以最后我基本上有一个 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 个子图:

//img1.sycdn.imooc.com//63a158b900019db903050229.jpg

for i in range(3):
    axs[i+6].plot(x, x**2, c='r')

然后我可以在最后 3 个子图中绘制另一个函数:

//img1.sycdn.imooc.com//63a158c300015e8402990224.jpg

希望对您的问题有所帮助。



查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信