我正在使用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
我得到的输出是:
我的预期输出是灰色应该代替红色,这是线图下面的区域。另一个问题是如何将轴标题添加到此图表中。例如,我需要将“Months”作为我的X轴,将“%of NAV”作为我的Y轴。
答案 0 :(得分:1)
要定义线条的颜色,您似乎需要访问...好吧,线条:)。所以,lp.lines[0].strokeColor = colors.grey
代替lp.strokeColor = colors.grey
,因为那个是情节背景颜色!
关于标签的问题有点棘手,但是...... ScatterPlot
包括为X和Y轴设置标签的功能,但AreaLinePlot
不是这种情况。当然,如果您要经常使用它,可以从AreaLinePlot
复制该功能派生一个类。
答案 1 :(得分:0)
更改
lp = AreaLinePlot()
到
lp = LinePlot()
并尝试
lp.lines[0].strokeColor = colors.red
lp.lines[0].inFill = True
但填充颜色与线条颜色相同。
归功于@RicardoCárdenes