如何在Python中画一个简单的Argand图?

How to draw a simple Argand diagram in Python?

A​​rgand 图是笛卡尔 X-Y 网格上复数的简单表示,如下所示:

就是一个单位圆$x^2 + y^2 = 1$;我们通常将其用作复杂代数和分析中的教学和推理工具。这里的关键词是 simpleCartesian -- 极坐标图背后的推理略有不同,所以不会做。

我的问题是如何在 Jupyter notebook Python 中绘制这个? 我觉得 matplotlib API 不是很直观或有用,或者至少不是我见过的示威活动。我假设我见过过于复杂的绘图或者有一个更简单的绘图库可以轻松绘制此图。

看来您可以将 Argand 图分解成一组几何形状,然后使用 Turtle 库或 Pygame,使用 pygame.draw.polygon() 等函数绘制它们。使用这些函数和画线函数来模拟一个Argand图。

您还可以实现一个函数,在该函数中输入一个复数,其系数用于确定图中某些线的长度。祝你好运!

图表的海龟渲染。没什么聪明的乌龟,只是一步一步地绘制图像:

from turtle import Screen, Turtle

FONT = ('Times', 18, 'italic')

def inscribe(text):
    color = turtle.pencolor()
    turtle.pencolor('black')
    turtle.write(text, font=FONT)
    turtle.pencolor(color)

screen = Screen()
screen.setup(500, 500)
screen.setworldcoordinates(-2, -2, 2, 2)  # around the unit circle
screen.tracer(False)

turtle = Turtle('classic', visible=False)
turtle.width(2)

# X Axis Real
turtle.goto(-1.25, 0)
turtle.pendown()
turtle.forward(2.5)
turtle.penup()
turtle.stamp()
inscribe('x')

# Y Axis Imaginary
turtle.goto(0, -1.25)
turtle.setheading(90)
turtle.pendown()
turtle.forward(2.5)
turtle.penup()
turtle.stamp()
inscribe('y')

# Circle
turtle.width(1)
turtle.goto(0, -1)
turtle.color('red')
turtle.setheading(0)

for _ in range(72):
    turtle.pendown()
    turtle.circle(1, 360 / 144)
    turtle.penup()
    turtle.circle(1, 360 / 144)

# Theta
turtle.penup()
turtle.goto(0.1, 0)
inscribe(u"\u03B8")

# Angle
turtle.home()
turtle.setheading(60)
turtle.pendown()
turtle.forward(1)
turtle.dot(8)
inscribe("x + iy")
turtle.sety(0)
turtle.home()

screen.tracer(True)
screen.exitonclick()