Python中的Turtles模块:
我想用基于高度的颜色填充条形。下面的代码正确绘制了条形图,但颜色与if语句不匹配。怎么了?
它正在填补: [黑色,绿色,黄色,红色,红色,黄色,红色]
它应该是: [绿色,黄色,红色,红色,黄色,红色,红色]
import turtle
def drawBar(t, height):
""" Get turtle t to draw one bar, of height. """
t.begin_fill() # start filling this shape
t.left(90)
t.forward(height)
t.write(str(height))
t.right(90)
t.forward(40)
t.right(90)
t.forward(height)
t.left(90)
t.end_fill() # stop filling this shape
def fillColor(t,height):
drawBar(t,height)
if height >=200:
t.fillcolor("red")
elif height >= 100 and height < 200:
t.fillcolor("yellow")
else:
t.fillcolor("green")
xs = [48,117,200,240,160,260,220] # here is the data
maxheight = max(xs)
numbars = len(xs)
border = 10
tess = turtle.Turtle() # create tess and set some attributes
#tess.color("blue")
#tess.fillcolor("red")
tess.pensize(3)
wn = turtle.Screen() # Set up the window and its attributes
wn.bgcolor("lightgreen")
wn.setworldcoordinates(0-border,0-border,40*numbars+border,maxheight+border)
for i in xs:
fillColor(tess,i)
wn.exitonclick()
答案 0 :(得分:0)
您需要在选择颜色后绘制列:
def fillColor(t,height):
if height >=200:
t.fillcolor("red")
elif height >= 100 and height < 200:
t.fillcolor("yellow")
else:
t.fillcolor("green")
drawBar(t,height)
(第一列是黑色的,因为这是默认的填充颜色。)