gpt4 book ai didi

python-3.x - Python matplotlib 无法在椭圆曲线 y^2+x^3+x^2=0 上绘制 Acnode(孤立点)

转载 作者:行者123 更新时间:2023-12-04 08:25:32 24 4
gpt4 key购买 nike

我正在使用下面的代码来绘制 ECC 曲线 y^2+x^3+x^2 =0

import numpy as np
import matplotlib.pyplot as plt
import math
def main():

fig = plt.figure()
ax = fig.add_subplot(111)

y, x = np.ogrid[-2:2:1000j, -2:2:1000j]
ax.contour(x.ravel(), y.ravel(), pow(y, 2) + pow(x, 3) + pow(x, 2) , [0],colors='red')

ax.grid()
plt.show()

if __name__ == '__main__':
main()
输出是
enter image description here
然而,预期的图像是这样的
enter image description here
正如我们所看到的,(0,0) 处的孤立点没有被绘制。有什么建议可以解决这个问题吗?

最佳答案

正如评论中已经提到的,似乎单个点没有显示为轮廓。最好的解决方案是应用程序本身以某种方式指示这些点。也许图书馆允许这样做,但我还没有找到一种方法,因此在这里展示了两种解决方法:
选项 1:
可以明确标记 (0,0) 处的孤立点:

ax.plot(0, 0, color="red", marker = "o", markersize = 2.5, zorder = 10)
在多个点的情况下,掩码数组是一个不错的选择, here .
enter image description here
选项 2:
该图可以在 z = 0 附近略有变化,例如z = 0.0002:
z = pow(y,2) + pow(x, 2) + pow(x, 3)
ax.contour(x.ravel(), y.ravel(), z, [0.0002], colors='red', zorder=10)
这将移动整个情节。或者,可以单独移动孤立点周围的区域(通过添加第二个 contour 调用,并在 (0,0) 处的孤立点周围添加一个小的 x,y 网格)。这不会改变其余部分。
enter image description here

关于python-3.x - Python matplotlib 无法在椭圆曲线 y^2+x^3+x^2=0 上绘制 Acnode(孤立点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65280140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com