【问题标题】:Area Line Plot in Python using Report Lab使用 Report Lab 在 Python 中绘制面积线图
【发布时间】:2012-01-30 03:44:00
【问题描述】:

我正在使用 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 轴,“% of NAV”作为 Y 轴。

【问题讨论】:

    标签: python plot line reportlab


    【解决方案1】:

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

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

    【讨论】:

    • 感谢 jCollado 修改问题。
    • 里卡多:感谢您的回复!除了线条的颜色之外,我还希望更改绘图背景颜色(描绘线条下方区域的颜色)。你会建议我将红色更改为其他颜色吗?再次感谢你们帮助我。
    • @GulshanM:关键是直接在AreaLinePlot 上设置属性将进行全局更改。 lp.strokeColor = colors.black 使黑色矩形边框出现,关闭轴区域,lp.fillColor = colors.grey 使绘图使用灰色作为整个事物的背景色。要修改线条及其下方区域的颜色,您必须使用lp.lines 访问每一行,正如答案中指出的那样。对于没有fillColor 的行:如果为that 行设置了inFill 属性,则使用strokeColor 代替填充。
    • Ricardo:我尝试从代码中删除 strokeColor,它确实删除了黑色边框。但是当我使用灰色代替时,我仍然无法理解如何在线条下方的区域中获得红色。您是否有机会查看我发布的图像(jcollado 修改了我的问题并重新发布)在我的图表中,我在不属于数据行的区域中获得了灰色。如果你有,你能给我发一个这样的图表的例子吗?提前致谢!
    • 你得到的是红色而不是灰色因为你没有设置线条颜色。请阅读我的解释。您需要了解一些事情:“在不属于数据线的区域中”您没有得到灰色。您将整个情节的灰色设置为 BACKGROUND COLOR。如果没有要绘制的数据,您会看到周围都是灰色的,没有红色。为什么画线下的区域是红色的?我猜红色是线条的默认颜色。您需要更改 plotted linestrokeColor 以更改线条下方的颜色,然后按照我在答案中告诉您的方式进行操作
    【解决方案2】:

    改变

    lp = AreaLinePlot()
    

    lp = LinePlot()
    

    试试看

    lp.lines[0].strokeColor = colors.red
    lp.lines[0].inFill = True
    

    但填充颜色将与线条颜色相同。

    感谢@Ricardo Cárdenes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 2021-06-04
      相关资源
      最近更新 更多