Re: Fwd: reportlab-users Digest, Vol 122, Issue 10

Robin Becker <[email protected]>
Newsgroups gmane.comp.python.reportlab.user
Message-ID <[email protected]>
On 17/02/2014 09:21, Helga Peters wrote:
> Dear Robin,
>
> My excusses for not providing you with a runnable example.
> I try to be clearer.
>
> ##############################
> if __name__=='__main__':
>          from reportlab.graphics.shapes import Drawing
>          from reportlab.graphics.charts.barcharts import VerticalBarChart
>          from reportlab.graphics.charts.linecharts import HorizontalLineChart
>          from reportlab.lib import colors
>          drawing = Drawing(250, 175)
the above makes little sense the height should be >= lc.y + lc.width and the 
width >= lx.x + lc.height

>          data = [ (3,3,3,10,14,1,1,1,11,13,12,7)  ]
>
>          lc = HorizontalLineChart()
>          lc.x = 40
>          lc.y = -175

for me the above makes no sense. It moves things below the bottom of the image. 
I assume you are using this in some larger art board or a translated canvas 
where this still allows the image to be seen.

>          lc.height = 225
>          lc.width = 610
>          lc.data = data
>          lc.joinedLines = 1
>          lc.inFill = 0
>
>          lc.categoryAxis.categoryNames = ['0:00','2:00','4:00',
> '6:00','8:00','10:00','12:00','14:00','16:00',  '18:00','20:00','22:00']
>          lc.valueAxis.valueMin = 0
>          lc.valueAxis.valueMax = 15
>          lc.lineLabelFormat = '%0.0f'
>          lc.lineLabelNudge = 5
>          lc.lines[0].strokeColor= colors.beige
>
>          data3=[ (0,0,0,2,7,0,1,1,7,5,6,2),
>                       (0,0,0,5,5,0,0,0,0,0,0,1),
>                       (0,0,0,0,0,0,0,0,2,6,4,1),
>                       (1,1,1,1,1,0,0,0,1,1,1,1),
>                       (1,1,1,1,1,0,0,0,1,1,0,1),
>                       (0,1,1,0,0,0,0,0,0,0,0,1),
>                       (0,0,0,1,0,1,0,0,0,0,1,0)
>                    ]
>          bc = VerticalBarChart()
>          bc.x = lc.x
>          bc.y = lc.y
>          bc.height = lc.height
>          bc.width = lc.width
>          bc.data = data3
>          bc.categoryAxis.style = 'stacked'
>          bc.valueAxis.valueMin = 0
>          bc.valueAxis.valueMax = lc.valueAxis.valueMax
>          bc.categoryAxis.visibleAxis =0
>          bc.categoryAxis.categoryNames = None
>          drawing.add(bc)

I added
            drawing.add(lc)



>          drawing.save(formats=['pdf'],fnRoot='helga-000',outDir='/tmp')
> ##############################
>
> Before adding 'data3' the output look like in the first image below. The
> data point values with red arrows are on or below the line, when
> 'data3'  is added

I am seeing only a white line on top of the bar chart, but only when I added the 
line chart after the bar chart. Again


> (second image below) these marked values can no longer be seen.  When I
> increase the 'lineLabelNudge', the values only move further from the line,
> or when I make it really small (e.g. 0.5), all the values move to on the
> line but are only half visible.
> Since in all the examples that I could find the values are shown above the
> lines, I wondered whether there is setting that I have missed ?
> Hope this was clearer,
> Regards,
> Helga


This code is showing both charts for me, but in an A4(nearly) sized drawing
##################################################################
if __name__=='__main__':
		from reportlab.graphics.shapes import Drawing
		from reportlab.graphics.charts.barcharts import VerticalBarChart
		from reportlab.graphics.charts.linecharts import HorizontalLineChart
		from reportlab.lib import colors
		drawing = Drawing(595, 842)
		data = [ (3,3,3,10,14,1,1,1,11,13,12,7)  ]

		lc = HorizontalLineChart()
		lc.x = 40
		lc.y = 100
		lc.height = 225
		lc.width = 610
		lc.data = data
		lc.joinedLines = 1
		lc.inFill = 0

		lc.categoryAxis.categoryNames = ['0:00','2:00','4:00',
				'6:00','8:00','10:00','12:00','14:00','16:00',	'18:00','20:00','22:00']
		lc.valueAxis.valueMin = 0
		lc.valueAxis.valueMax = 15
		lc.lineLabelFormat = '%0.0f'
		lc.lineLabelNudge = 5
		lc.lines[0].strokeColor= colors.beige

		data3=[ (0,0,0,2,7,0,1,1,7,5,6,2),
					 (0,0,0,5,5,0,0,0,0,0,0,1),
					 (0,0,0,0,0,0,0,0,2,6,4,1),
					 (1,1,1,1,1,0,0,0,1,1,1,1),
					 (1,1,1,1,1,0,0,0,1,1,0,1),
					 (0,1,1,0,0,0,0,0,0,0,0,1),
					 (0,0,0,1,0,1,0,0,0,0,1,0)
				  ]
		bc = VerticalBarChart()
		bc.x = lc.x
		bc.y = lc.y
		bc.height = lc.height
		bc.width = lc.width
		bc.data = data3
		bc.categoryAxis.style = 'stacked'
		bc.valueAxis.valueMin = 0
		bc.valueAxis.valueMax = lc.valueAxis.valueMax
		bc.categoryAxis.visibleAxis =0
		bc.categoryAxis.categoryNames = None
		drawing.add(bc)
		drawing.add(lc)
		drawing.save(formats=['pdf'],fnRoot='helga-001',outDir='/tmp/helga')
##################################################################

-- 
Robin Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.