Reportlab - 饼图填充颜色

2 投票
2 回答
2742 浏览
提问于 2025-04-16 05:20

我正在使用reportlab制作一个简单的饼图。我在文档中找不到如何更改每个饼块的填充颜色。

pie_chart = Drawing(200, 200)
pc = Pie()
pc.x = 65
pc.y = 15
pc.width = 150
pc.height = 150
pc.data = [65,13,12,9,1]
pc.labels = ['Name','Another','Yet Another','Test','Stack']

pc.slices[1]. // This is where I need the fill color property.

pie_chart.add(pc)
renderPM.drawToFile(pie_chart, '/images/temp/pie_chart.png', 'PNG')
p.drawImage('/images/temp/pie_chart.png', 10, 60, width=150, height=150, mask=None)

2 个回答

0

你可以使用 color.HexColor("#f00") 这个方法。看看下面的例子。

十六进制颜色代码

3

好吧,有几种方法可以做到这一点。

这个属性叫做 .fillColor,但你需要确保正确地提供颜色。下面有两种方法,分别使用CMYK和RGB颜色。

  1. 使用CMYK颜色 catColor = PCMYKColor(0,0,0,100)

    pc.slices[0].fillColor = catColor

    查看这个代码片段

  2. 使用RGB颜色 catColor = Color(0.10,0.26,0.46)

    pc.slices[0].fillColor = catColor

    • 显然,你不需要单独定义CatColor这个变量,可以把这两行代码合在一起。

想了解更多关于颜色的信息,可以在这里查看(reportlab文档,见第23页)

撰写回答