ReportLab中GridLinePlot()的Y轴缩放问题

时间:2011-11-16 13:17:24

标签: django reportlab

我刚刚在django中发现了GridLinePlot()的一些奇怪的行为 项目。似乎绘制的线的形状是好的,但是那个 y轴标签不合适。我正在使用的代码如下:

class MyLineChartDrawing(Drawing):

  def __init__(self, width=600, height=400, *args, **kw):
    apply(Drawing.__init__,(self,width,height)+args,kw)
    self.add(GridLinePlot(), name='chart')

    self.chart.x = 50 # The x coordinate of the reference point
    self.chart.y = 30 # The y coordinate of the reference point
    self.chart.width = self.width - 150  # The width of the chart
    self.chart.height = self.height - 75 # The height of the chart

    self.chart.data = [[('20110930', 80), ('20111007', 116), ('20111014',139), ('20111021', 163), ('20111028', 105), ('20111104', 97), ('20111111', 112)]]

  def HttpChart (self, title, XLabel, YLabel, data, isPercent=False):
    return (renderSVG.drawToString(self))

要打电话给我,我只是做以下事情:

d = MyLineChartDrawing(width=chartWidth, height=chartHeight)
return HttpResponse(d.HttpChart ("", "", "MyYAxisTitle", edata),'image/svg+xml')

似乎轴上有一些缩放比例未应用于绘制的坐标,当我添加更多数据时,这变得非常显着。例如,这个self.chart.data列表只是将一个点添加到列表的前面,导致缩放从微妙的错误变为大约50%。

self.chart.data = [[('20110923', 32), ('20110930', 80), ('20111007', 116), ('20111014', 139), ('20111021', 163), ('20111028', 105), ('20111104', 97), ('20111111', 112)]]

我正在使用在OSX 10.7.2上运行的ReportLab 2.5,Django 1.3.0,Python 2.7。

提前感谢您的任何帮助或建议。

0 个答案:

没有答案