import numpy as np
import matplotlib.pyplot as plt
# theta goes from 0 to 2pi
theta = np.linspace(0, 2*np.pi, 100)
# the radius of the circle
r = np.sqrt(0.6)
# compute x1 and x2
x1 = r*np.cos(theta)
x2 = r*np.sin(theta)
# create the figure
fig, ax = plt.subplots(1)
ax.plot(x1, x2)
ax.set_aspect(1)
plt.show()
5条答案
按热度按时间nc1teljy1#
您可以使用等值线图,如下所示(基于http://matplotlib.org/examples/pylab_examples/contour_demo.html的示例):
字符串
这将产生下图
的数据
最后是一些一般性发言:
x^2
并不意味着你认为它在python中是什么,你必须使用x**2
。x1
和x2
(对我来说)是非常误导的,特别是如果你说x2
必须在y轴上。1.(感谢Dux)您可以添加
plt.gca().set_aspect('equal')
,通过使轴相等,使图形实际上看起来是圆形的。pgpifvop2#
@BasJansen的解决方案当然能让你达到目的,它要么效率很低(如果你使用很多网格点),要么不准确(如果你只使用很少的网格点)。
你可以很容易地直接画出圆。给定
0 = x1**2 + x**2 - 0.6
,就可以得出x2 = sqrt(0.6 - x1**2)
(正如Dux所说)。但你真正想做的是,把你的笛卡尔坐标,转换成极坐标。
字符串
如果你在圆的等式中使用这些替换,你会看到
r=sqrt(0.6)
。所以现在你可以用它来绘制你的图:
型
测试结果:
x1c 0d1x的数据
p1iqtdky3#
如何绘制x值并计算相应的y值?
字符串
产生
的数据
很明显,这可以做得更好,但这只是为了演示...
92dk7w1h4#
字符串
生产:
的数据
4dc9hkyq5#
使用复数绘制圆
思想:将一个点乘以复指数(
)会旋转圆上的点
字符串
的