如何在单个图中绘制多个参数图?

问题描述

我需要为代码中提到的每个 alpha 值在单个图中绘制一系列参数曲线

import numpy as np
from sympy import *  
from sympy.plotting import plot_parametric
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


a=45
t = symbols('t')
for alpha in np.arange(0.5,3,.1):
    M=a*sqrt(cos(2*t)+sqrt(pow(alpha,4)+pow(sin(2*t),2)))
    x = M*cos(t)
    y = M*sin(t)
    plot_parametric(x,y,(t,2*pi))

代码为每个 alpha 值返回一系列 2D 图。相反,我想在一个图中绘制整个图集,就像附上这张图片

enter image description here

有什么解决办法吗?

解决方法

enter image description here

from numpy import arange,cos,linspace,pi,sin,sqrt
from matplotlib.pyplot import colorbar,Normalize,show,subplots
from matplotlib.cm import ScalarMappable,viridis

a=45
t= linspace(0,2*pi,2001)

norm = Normalize(vmin=0.5,vmax=3)
cmap = viridis
sm = ScalarMappable(cmap=cmap,norm=norm)

fig,(ax_xy,ax_tM) = subplots(1,2,figsize=(10,4),constrained_layout=1)

for alpha in arange(0.5,3,.1):
    color = cmap(norm(alpha))
    M=a*sqrt(cos(2*t)+sqrt(pow(alpha,4)+pow(sin(2*t),2)))
    x = M*cos(t)
    y = M*sin(t)
    ax_tM.plot(t,M,color=color)
    ax_xy.plot(x,y,color=color)
colorbar(sm,aspect=40)
show()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...