Skip to main content
 首页 » 编程设计

Python Repotrlab垂直条形图间距不一致

2025年05月04日12yjmyzz

我正在使用 reportlab 生成简单的条形图。 以下是我的代码。

from reportlab.graphics.shapes import Drawing 
from reportlab.graphics.charts.barcharts import VerticalBarChart 
 
d = Drawing(300, 200) 
chart = VerticalBarChart() 
chart.width = 260 
chart.height = 160 
chart.x = 30 
chart.y = 30 
chart.groupSpacing = 10 
chart.barWidth = 4 
chart.data = [[20.5,0.01],[32.4,0.01]] 
chart.categoryAxis.categoryNames = ['foo','bar'] 
 
d.add(chart) 
d.save(fnRoot='trial',formats=['png',]) 

两个条都显示在 'foo' 下,而一个必须在 'foo' 下,另一个在 'bar' 标签下。

我尝试了 groupSpacing 和 barSpacing,但可以使条形图位于正确的标签下。

你能告诉我如何解决这个问题吗?我是 reportlab 的新手,因此无法解决这个问题,而且 reportlab 的可用文档也很少。

我需要添加更多标签,我该怎么做。

谢谢

请您参考如下方法:

这里有一个误解,您的图表数据按 [[20.5,0.01],[32.4,0.01]] 这样的顺序排列,所以您的第一组有两个条形值 20.5 和 32.4,您的第二组有另外两个条形图值 0.01 和 0.01。第二个系列的值非常小,您看不到它们的条形图。 如果您希望在第一组中显示 32.4 条,在第二组中显示 20.5,那么您可以将数据更改为

chart.data = [(20.5,32.4),(0.01, 0.01)]