python - 如何在一个图中绘制多个参数图?
问题描述
我需要在单个图中为代码中提到的每个 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, 0, 2*pi))
该代码为每个 alpha 值返回一系列 2D 图。相反,我想在一个图中绘制整组图,就像附上这张图片
有什么解决办法吗?
解决方案
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()
推荐阅读
- c# - 多个包与指定模式匹配:%s。请限制搜索模式
- javascript - 如何确保当我在 Web 控制台上看到代码时不乱
- c# - 在 azure 函数中配置令牌
- android - 如何在一个适配器中识别多个类
- node.js - 如何为 Google Compute Instance 设置自动关机?
- c - 如何使用文件处理和 strstr 匹配 C 中的确切单词?
- c# - 如何使用带有 SQL Server 的 Entity Framework Core TPT 继承来实现 CRUD
- macos - 无法使用 XQuartz mac 打开 GUI 应用程序
- ubuntu-18.04 - 在 ubuntu 18.04 中运行 odoo-11 时出现样式错误
- async-await - 我可以使用异步功能从不同的聊天中同时运行相同的命令吗?