在Python中更改条形图颜色
我是Python新手,我正在努力学习我们书中的一节课,我们必须改变条形图中的颜色。我不确定我做错了什么。没有错误消息,颜色只是打印黑色在Python中更改条形图颜色,python,Python,我是Python新手,我正在努力学习我们书中的一节课,我们必须改变条形图中的颜色。我不确定我做错了什么。没有错误消息,颜色只是打印黑色 import turtle tess = turtle.Turtle() def draw_bar(t, height): t.begin_fill() t.left(90) t.forward(height) t.write(" "+ str(height)) t.right(90) t.forward(
import turtle
tess = turtle.Turtle()
def draw_bar(t, height):
t.begin_fill()
t.left(90)
t.forward(height)
t.write(" "+ str(height))
t.right(90)
t.forward(40)
t.right(90)
t.forward(height)
t.penup()
t.left(90)
t.end_fill()
t.forward(10)
t.pendown()
tess.pensize(3)
if xs is 48:
tess.color("blue")
if xs is 117:
tess.color("yellow")
wn = turtle.Screen()
wn.bgcolor("lightgreen")
xs = [48,117,200,240,160,260,220]
for a in xs:
draw_bar(tess, a)
wn.mainloop()
这就是我目前所拥有的
谢谢你的帮助 我认为您需要在开始填充之前指定颜色()。因为计算机是这样的:“好吧,我会填满这个盒子,但是我没有颜色”,所以它使用默认的黑色 您提供的if语句没有意义,因此我在函数中将其上移,并在可以检查函数内高度的位置对其进行了修改。我建议使用字典,而不是if/else 这一新准则的作用是:
import turtle
tess = turtle.Turtle()
def draw_bar(t, height):
# Select Color
if height is 48:
color = "blue"
elif height is 117:
color = "yellow"
else:
color = "black"
# Assign color
t.color(color)
# The rest of your code
t.begin_fill()
t.left(90)
t.forward(height)
t.write(" "+ str(height))
t.right(90)
t.forward(40)
t.right(90)
t.forward(height)
t.penup()
t.left(90)
t.end_fill()
t.forward(10)
t.pendown()
tess.pensize(3)
wn = turtle.Screen()
wn.bgcolor("lightgreen")
xs = [48,117,200,240,160,260,220]
for a in xs:
draw_bar(tess, a)
wn.mainloop()
我想你必须在开始之前确定酒吧的颜色。请在您的帖子中设置代码的格式。这是我以前使用过的,它可以为整个条形图着色,但我需要根据数字的值为各个条形图着色,而我尝试过的任何操作都不起作用。@DMondi查看最新的编辑。基本上,我在函数中向上移动了您的“if”语句,并放置了if-else条件来处理不同的块。@DMondi那么……发生了什么事?