我正在使用 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)]
关于Python Repotrlab垂直条形图间距不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767592/