在Python中更改条形图颜色

2024-04-19 00:57:33 发布

您现在位置: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(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()

这就是我目前所拥有的。你知道吗

谢谢你的帮助!你知道吗


Tags: rightifis颜色barleftfillcolor
1条回答
网友
1楼 · 发布于 2024-04-19 00:57:33

我想你需要在开始填充之前指定一个颜色。因为电脑是这样的:“好吧,我来填这个盒子,但是我没有颜色”,所以它使用默认的黑色。你知道吗

您提供的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()

相关问题 更多 >