【问题标题】:Draw log base 2 graph using Python turtle graphics使用 Python 乌龟图形绘制 log base 2 图形
【发布时间】:2017-09-26 22:55:19
【问题描述】:
我试过了:
if wave_type == "log":
emily.up ()
emily.goto(0,1)
emily.down ()
for x in range(100):
y = math.log( x ) / math.log( 2 )
elaine.goto(x, y)
但它没有用。请帮忙
【问题讨论】:
标签:
python
turtle-graphics
【解决方案1】:
这是一个粗略的开始——因为range() 无法处理浮点数,所以我们使用 10 倍范围,然后在使用该值时除以 10。 (查看 numpy 中的arange() 作为解决此问题的一种方法。)我还在绘制一个较小的区域,并使用setworldcoordinates() 来强制执行,所以我们可以看到图中有趣的部分它穿过 X 轴的位置:
import math
from turtle import Turtle, Screen
screen = Screen()
screen.setworldcoordinates(0, -5, 10, 5)
emily = Turtle(visible=False)
emily.forward(10)
emily.penup()
for x in range(1, 100):
y = math.log(x / 10) / math.log(2)
emily.goto(x / 10, y)
emily.pendown()
screen.exitonclick()
您可以根据需要填写 Y 轴、添加刻度线、标记轴、增加分辨率等:
【解决方案2】:
Log(0) 未定义。因此,您的代码将在 for 循环的第一次迭代时出错(x 将为 0)。
也许你想要 range(1, 100)?或者甚至更好地在 1 附近设置更多 x 值,因为这是图形变化最大的地方,以获得更平滑的图。