Skip to main content
 首页 » 编程设计

python之使用 Report Lab 在 Python 中绘制区域线图

2025年05月04日8wayfarer

我正在使用 Reportlab 在我的 PDF 报告中创建一些图表。我在创建区域线图时卡住了,我无法理解为什么我没有得到我想要看到的输出。

这是我为输出编写的代码:

def standardLinePlot(data, width=200, height=200): 
 
    d = Drawing(width, height) 
    lp = AreaLinePlot() 
    lp.data=data 
    lp.width, lp.height = width, height 
    lp.xValueAxis.valueMin = 0 
    lp.xValueAxis.valueMax =36 
    lp.xValueAxis.valueSteps = [0,6,12,18,24,30,36] 
 
    lp.yValueAxis.valueMin = 0 
    lp.yValueAxis.valueMax =100 
 
    lp.strokeColor=colors.black 
    lp.fillColor=colors.grey 
 
    lp.reversePlotOrder = False 
 
    lp.joinedLines=1 
 
    d.add(lp) 
 
    return d 

我得到的输出是:

我的预期输出是灰色应该代替红色,这是线图下方的区域。另一个问题是如何将轴标题添加到该图表中。例如,我需要“月”作为我的 X 轴,“ Assets 净值的百分比”作为我的 Y 轴。

请您参考如下方法:

要定义线条的颜色,您似乎需要访问...好吧,线条 :)。所以,lp.lines[0].strokeColor = colors.grey 而不是 lp.strokeColor = colors.grey,因为它用于绘图背景颜色!

关于标签的问题有点棘手,不过......ScatterPlot 包括为 X 和 Y 轴设置标签的功能,但 AreaLinePlot。当然,如果您要经常使用它,您可以从复制该功能的 AreaLinePlot 派生一个类。