如何在python中为条形图中的每个条的最大值和最小值着色?

2024-05-15 09:49:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个函数,将绘制条形图时,每个长度的酒吧数组。当我用给定的数组运行函数时,它将绘制条形图,所有的条形图都用蓝色着色。我已经完成了那部分 下面是该部分的代码。 我遇到的问题是,我一直在寻找一种方法,以不同的颜色最大和最小的条形图中

def drawgraph2(volumes):
   maxLength = maxValue2(volumes)
   pict = makeEmptyPicture(700,(700/4)*3)
   w = getWidth(pict)
   h = getHeight(pict)
   grey = makeColor(220,220,220)

   x = 10
   for n in range (0, len(volumes)):
     addRectFilled(pict, x+100, (h-(maxLength/10))-volumes[n], 30, volumes[n], blue)
     x = x+50
   repaint(pict)

def maxValue2(trainsList):
  max = trainsList[0]
  for n in range(1, len(trainsList)):
    if trainsList[n]>max:
       max = trainsList[n]
    return max

Tags: 函数inforlendef绘制range数组
1条回答
网友
1楼 · 发布于 2024-05-15 09:49:56

我建议获得max和min(How to get min and max ids of a list)的id

minId = volumes.index(min(volumes))
maxId = volumes.index(max(volumes))

然后你可以用你的默认颜色填充一个向量

myColourList = ["blue" for i in range(len(volumes))]

并根据索引进行修改

myColourList[minId] = "red"
myColourList[maxId] = "green"

最后,在循环中,可以替换行:

addRectFilled(pict, x+100, (h-(maxLength/10))-volumes[n], 30, volumes[n], blue)

签署人:

addRectFilled(pict, x+100, (h-(maxLength/10))-volumes[n], 30, volumes[n], myColourList[n])

相关问题 更多 >