如果条颜色等于紫色,如何在条内插入文本

2024-09-25 08:32:45 发布

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

所以我有这样一幅图像: alt text

如果我只把“H37Rv”留在紫色的酒吧里,我会怎么做。在

我的代码如下:

rects = ax.bar(ind, num, width, color=colors)

    for rect in rects:
        height = int(rect.get_height())

        if height < 5:
            yloc = height + 2
            clr = '#182866'
        else:
            yloc = height / 2.0
            clr = '#182866'

        p = 'H37Rv'
        xloc = rect.get_x() + (rect.get_width() / 2.0)
        ax.text(xloc, yloc, p, horizontalalignment='center', verticalalignment='center', color=clr, weight='bold')

我也试过了:

^{pr2}$

但我得到一个错误,说颜色没有定义。在

有人知道怎么解决这个问题吗?在

非常感谢!在


Tags: rect图像getaxwidthcolor酒吧center
2条回答

您可以使用rect.get_facecolor()获得矩形的颜色,这允许您按您想要的方式放置标签。在

另外,由于您知道绘制条形图时使用的颜色,并且如果它们是由列表表示的,那么您确实可以轻松地获得紫色矩形的列表。在

如果您将第一个示例的最后三行移动到一个缩进级别,那么它们是将颜色设置为紫色的“else”子句的一部分,那么应该可以这样做。在

[编辑:对不起,我读错了。这也会将文本留在第二栏。据我所知,没有办法得到矩形的颜色,但你可以:

rects = ax.bar(ind, num, width, color=colors)

rect = rects[-1]
height = int(rect.get_height())

if height < 5:
    yloc = height + 2
else:
    yloc = height / 2.0

clr = '#182866'
p = 'H37Rv'
xloc = rect.get_x() + (rect.get_width() / 2.0)
ax.text(xloc, yloc, p, horizontalalignment='center', verticalalignment='center', color=clr, weight='bold')

这将只设置最后一个栏中的文本。在

如果它可能是紫色的,不一定是最后一个,那么,你已经得到了初始化矩形的颜色列表,所以:

^{pr2}$

相关问题 更多 >