python - 如何使用 python sumpy plot implicit 在同一个图中绘制不同的隐式方程
问题描述
我想使用 python sympy plot_implicit 在同一个图中绘制不同的方程。
下面是我的示例代码,但这不能正常工作。现在隐函数只是圆,但我想在不久的将来处理更复杂的方程。
此外,我也想在同一张图中绘制坐标点(在示例代码中作为“点”给出)。
任何人都可以解决这个问题吗?
import math
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
from sympy.plotting import plot
from sympy.plotting import plot_implicit
points = np.array([[10,20], [20, 75], [45, 15], [70, 53], [90, 30]])
weights = np.array([5, 5.1, 5.2, 4.9, 4.8])
x, y = symbols("x y")
for i in range(len(points)):
G = (x-points[i][0])**2 + (y-points[i][1])**2 - weights[i]**2
p2 = plot_implicit(G, (x,-50,100), (y,-50,100), show=False, line_color='r')
p2.extend(p2)
p2.show()
解决方案
p2.extend(p2)
错了,你永远不想自己扩展情节。此外,您p2
在循环的一次运行中所做的任何事情都会被下一次运行清除,因为您是在循环内分配的p2
。
您需要一个单独的变量,例如p
,作为图的累加器。让我们在循环之前用 None 对其进行初始化,然后将 p2 分配给它(在初始运行时),或者将其扩展为 p2 (在后续运行中)。该条件if p
适用于这个目的:None
是假的,但对象,包括 Plot 对象,是真的。
p = None
for i in range(len(points)):
G = (x-points[i][0])**2 + (y-points[i][1])**2 - weights[i]**2
p2 = plot_implicit(G, (x,-50,100), (y,-50,100), show=False, line_color='r')
if p:
p.extend(p2)
else:
p = p2
p.show()
推荐阅读
- r - knitr 无法编织 html,编织 pdf “在资源路径中找不到文件”,并带有文件名可能所在的空格
- angular - 安装软件包时无法解决对等依赖项
- flutter - Flutter - 自定义交错网格视图
- r - 获取通向特定文件的所有路径
- azure-logic-apps - 天蓝色逻辑应用程序 - 检查存储过程结果是否为空
- python - 如何从您对相机一无所知的相机获取二维地平面坐标?
- c# - CrystalReport - 对 SQL Server 的查询不包含架构
- c# - 项目只能由指定的解决方案使用
- apache-kafka - __consumer_offsets 和日志压缩不起作用
- r - R中的矩阵组合