strokeWidth
Width of axis in points
tickLeft
How far to the left of the axis should the tick marks protrude?
(Note that making this equal to chart height gives you a gridline)
tickRight
How far to the right of the axis should the tick mark protrude?
valueMin
The y value to which the bottom of the axis should correspond.
Default value is None in which case the axis sets it to the lowest
actual data point (e.g. 10 in the example above). It is common to set
this to zero to avoid misleading the eye.
valueMax
The y value to which the top of the axis should correspond.
Default value is None in which case the axis sets it to the highest
actual data point (e.g. 42 in the example above). It is common to set
this to a 'round number' so data bars do not quite reach the top.
valueStep
The y change between tick intervals. By default this is
None, and the chart tries to pick 'nice round numbers' which are
just wider than the minimumTickSpacing below.
valueSteps
A list of numbers at which to place ticks.
minimumTickSpacing
This is used when valueStep is set to None, and ignored
otherwise. The designer specified that tick marks should be no
closer than X points apart (based, presumably, on considerations
of the label font size and angle). The chart tries values of the
type 1,2,5,10,20,50,100... (going down below 1 if necessary) until
it finds an interval which is greater than the desired spacing, and
uses this for the step.
labelTextFormat
This determines what goes in the labels. Unlike a category
axis which accepts fixed strings, the labels on a ValueAxis are
supposed to be numbers. You may provide either a 'format string'
like '%0.2f' (show two decimal places), or an arbitrary function
which accepts a number and returns a string. One use for the
latter is to convert a timestamp to a readable year-month-day
format.
title
Not Implemented Yet. This needs to be like a label, but also
lets you set the text directly. It would have a default
location below the axis.
Table 11-6 - YValueAxis properties
The valueSteps property lets you explicitly specify the tick mark locations, so you don't have to follow
regular intervals. Hence, you can plot month ends and month end dates with a couple of helper functions, and
without needing special time series chart classes. The following code show how to create a simple
XValueAxis with special tick intervals. Make sure to set the valueSteps attribute before calling the
configure method!
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.axes import XValueAxis
drawing = Drawing(400, 100)
data = [(10, 20, 30, 40)]
xAxis = XValueAxis()
xAxis.setPosition(75, 50, 300)
xAxis.valueSteps = [10, 15, 20, 30, 35, 40]
xAxis.configure(data)
xAxis.labels.boxAnchor = 'n'
drawing.add(xAxis)
User Guide
Chapter 11 Graphics
Page 101
Pdf thumbnail preview - Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
how to show pdf thumbnails in; create pdf thumbnail image
Pdf thumbnail preview - VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
create pdf thumbnail; show pdf thumbnail in html
10
15
20
30
35
40
Figure 11-4: An axis with non-equidistant tick marks
In addition to these properties, all axes classes have three properties describing how to join two of them to
each other. Again, this is interesting only if you define your own charts or want to modify the appearance of
an existing chart using such axes. These properties are listed here only very briefly for now, but you can find
a host of sample functions in the module reportlab/graphics/axes.py which you can examine...
One axis is joined to another, by calling the method joinToAxis(otherAxis, mode, pos) on the
first axis, with mode and pos being the properties described by joinAxisMode and joinAxisPos,
respectively. 'points' means to use an absolute value, and 'value' to use a relative value (both
indicated by the the joinAxisPos property) along the axis.
Property
Meaning
joinAxis
Join both axes if true.
joinAxisMode
Mode used for connecting axis ('bottom', 'top', 'left', 'right', 'value', 'points', None).
joinAxisPos
Position at which to join with other axis.
Table 11-7 - Axes joining properties
11.6 Bar Charts
This describes our current VerticalBarChart class, which uses the axes and labels above. We think it
is step in the right direction but is is far from final. Note that people we speak to are divided about 50/50 on
whether to call this a 'Vertical' or 'Horizontal' bar chart. We chose this name because 'Vertical' appears next
to 'Bar', so we take it to mean that the bars rather than the category axis are vertical.
As usual, we will start with an example:
Jan-99
Feb-99
Mar-99
Apr-99
May-99
Jun-99
Jul-99
Aug-99
0
10
20
30
40
50
Figure 11-5: Simple bar chart with two data series
User Guide
Chapter 11 Graphics
Page 102
How to C#: Preview Document Content Using XDoc.Word
With the SDK, you can preview the document content according to the preview thumbnail by the ways as following. C# DLLs for Word File Preview. Add references:
view pdf image thumbnail; html display pdf thumbnail
How to C#: Preview Document Content Using XDoc.PowerPoint
With the SDK, you can preview the document content according to the preview thumbnail by the ways as following. C# DLLs: Preview PowerPoint Document.
view pdf thumbnails in; create thumbnails from pdf files
# code to produce the above chart
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart
drawing = Drawing(400, 200)
data = [
(13, 5, 20, 22, 37, 45, 19, 4),
(14, 6, 21, 23, 38, 46, 20, 5)
]
bc = VerticalBarChart()
bc.x = 50
bc.y = 50
bc.height = 125
bc.width = 300
bc.data = data
bc.strokeColor = colors.black
bc.valueAxis.valueMin = 0
bc.valueAxis.valueMax = 50
bc.valueAxis.valueStep = 10
bc.categoryAxis.labels.boxAnchor = 'ne'
bc.categoryAxis.labels.dx = 8
bc.categoryAxis.labels.dy = -2
bc.categoryAxis.labels.angle = 30
bc.categoryAxis.categoryNames = ['Jan-99','Feb-99','Mar-99',
'Apr-99','May-99','Jun-99','Jul-99','Aug-99']
drawing.add(bc)
Most of this code is concerned with setting up the axes and labels, which we have already covered. Here are
the top-level properties of the VerticalBarChart class:
Property
Meaning
data
This should be a "list of lists of numbers" or "list of
tuples of numbers". If you have just one series, write it as
data = [(10,20,30,42),]
x, y, width, height
These define the inner 'plot rectangle'. We
highlighted this with a yellow border above. Note that it is
your job to place the chart on the drawing in a way which leaves
room for all the axis labels and tickmarks. We specify this 'inner
rectangle' because it makes it very easy to lay out multiple charts
in a consistent manner.
strokeColor
Defaults to None. This will draw a border around the
plot rectangle, which may be useful in debugging. Axes will
overwrite this.
fillColor
Defaults to None. This will fill the plot rectangle with
a solid color. (Note that we could implement dashArray etc.
as for any other solid shape)
useAbsolute
Defaults to 0. If 1, the three properties below are
absolute values in points (which means you can make a chart
where the bars stick out from the plot rectangle); if 0,
they are relative quantities and indicate the proportional
widths of the elements involved.
barWidth
As it says. Defaults to 10.
groupSpacing
Defaults to 5. This is the space between each group of
bars. If you have only one series, use groupSpacing and not
barSpacing to split them up. Half of the groupSpacing is used
before the first bar in the chart, and another half at the end.
User Guide
Chapter 11 Graphics
Page 103
How to C#: Set Image Thumbnail in C#.NET
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel, VB.NET PowerPoint, VB How to C#: Set Image Thumbnail in C#.NET. To Preview Images in WinForm Application.
pdf thumbnail preview; enable pdf thumbnail preview
How to C#: Preview Document Content Using XDoc.excel
document in memory. With the SDK, you can preview the document content according to the preview thumbnail by the ways as following.
program to create thumbnail from pdf; pdf files thumbnail preview
barSpacing
Defaults to 0. This is the spacing between bars in each
group. If you wanted a little gap between green and red bars in
the example above, you would make this non-zero.
barLabelFormat
Defaults to None. As with the YValueAxis, if you supply
a function or format string then labels will be drawn next to each bar
showing the numeric value. They are positioned automatically
above the bar for positive values and below for negative ones.
barLabels
A collection of labels used to format all bar labels. Since
this is a two-dimensional array, you may explicitly format the
third label of the second series using this syntax:
chart.barLabels[(1,2)].fontSize = 12
valueAxis
The value axis, which may be formatted as described
previously.
categoryAxis
The category axis, which may be formatted as described
previously.
title
Not Implemented Yet. This needs to be like a label, but also
lets you set the text directly. It would have a default
location below the axis.
Table 11-8 - VerticalBarChart properties
From this table we deduce that adding the following lines to our code above should double the spacing
between bar groups (the groupSpacing attribute has a default value of five points) and we should also
see some tiny space between bars of the same group (barSpacing).
bc.groupSpacing = 10
bc.barSpacing = 2.5
And, in fact, this is exactly what we can see after adding these lines to the code above. Notice how the width
of the individual bars has changed as well. This is because the space added between the bars has to be 'taken'
from somewhere as the total chart width stays unchanged.
Jan-99
Feb-99
Mar-99
Apr-99
May-99
Jun-99
Jul-99
Aug-99
0
10
20
30
40
50
Figure 11-6: Like before, but with modified spacing
Bars labels are automatically displayed for negative values below the lower end of the bar for positive values
above the upper end of the other ones.
Stacked bars are also supported for vertical bar graphs. You enable this layout for your chart by setting the
style attribute to 'stacked' on the categoryAxis.
User Guide
Chapter 11 Graphics
Page 104
How to C#: Generate Thumbnail for Word
Preview Document. Conversion. Convert Word to PDF. Convert Word Convert Word to ODT. Convert PDF to Word. Text Search. Insert Image. Thumbnail Create. Thumbnail Create
create thumbnail jpg from pdf; pdf file thumbnail preview
How to C#: Generate Thumbnail for PowerPoint
Preview Document. Conversion. Convert PowerPoint to PDF. Convert PowerPoint to Pages. Annotate PowerPoint. Text Search. Insert Image. Thumbnail Create.
generate thumbnail from pdf; thumbnail view in for pdf files
bc.categoryAxis.style = 'stacked'
Here is an example of the previous chart values arranged in the stacked style.
Jan-99
Feb-99
Mar-99
Apr-99
May-99
Jun-99
Jul-99
Aug-99
0
20
40
60
80
100
Figure 11-7: Stacking bars on top of each other.
11.7 Line Charts
We consider "Line Charts" to be essentially the same as "Bar Charts", but with lines instead of bars. Both
share the same pair of Category/Value axes pairs. This is in contrast to "Line Plots", where both axes are
Value axes.
The following code and its output shall serve as a simple example. More explanation will follow. For the
time being you can also study the output of running the tool reportlab/lib/graphdocpy.py
withough any arguments and search the generated PDF document for examples of Line Charts.
from reportlab.graphics.charts.linecharts import HorizontalLineChart
drawing = Drawing(400, 200)
data = [
(13, 5, 20, 22, 37, 45, 19, 4),
(5, 20, 46, 38, 23, 21, 6, 14)
]
lc = HorizontalLineChart()
lc.x = 50
lc.y = 50
lc.height = 125
lc.width = 300
lc.data = data
lc.joinedLines = 1
catNames = 'Jan Feb Mar Apr May Jun Jul Aug'.split(' ')
lc.categoryAxis.categoryNames = catNames
lc.categoryAxis.labels.boxAnchor = 'n'
lc.valueAxis.valueMin = 0
lc.valueAxis.valueMax = 60
lc.valueAxis.valueStep = 15
lc.lines[0].strokeWidth = 2
lc.lines[1].strokeWidth = 1.5
drawing.add(lc)
User Guide
Chapter 11 Graphics
Page 105
C# Image: View & Operate Web Page Using .NET Doc Image Web Viewer
Support multiple document and image formats, like PDF and TIFF; Thumbnail images order of source document file using mouse dragging in thumbnail preview section;
create pdf thumbnails; create thumbnail jpeg from pdf
How to C#: Generate Thumbnail for Excel
Preview Document. Conversion. Convert Excel to PDF. Convert Excel to Insert Image. Thumbnail Create. Thumbnail Create. |. Home ›› XDoc.Excel ›› C# Excel
pdf thumbnail viewer; enable pdf thumbnails
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
0
15
30
45
60
Figure 11-8: HorizontalLineChart sample
Property
Meaning
data
Data to be plotted, list of (lists of) numbers.
x, y, width, height
Bounding box of the line chart.
Note that x and y do NOT specify the centre but the bottom left corner
valueAxis
The value axis, which may be formatted as described previously.
categoryAxis
The category axis, which may be formatted as described previously.
strokeColor
Defaults to None. This will draw a border around the plot rectangle,
which may be useful in debugging. Axes will overwrite this.
fillColor
Defaults to None. This will fill the plot rectangle with a solid color.
lines.strokeColor
Color of the line.
lines.strokeWidth
Width of the line.
lineLabels
A collection of labels used to format all line labels. Since
this is a two-dimensional array, you may explicitly format the
third label of the second line using this syntax:
chart.lineLabels[(1,2)].fontSize = 12
lineLabelFormat
Defaults to None. As with the YValueAxis, if you supply
a function or format string then labels will be drawn next
to each line showing the numeric value. You can also set it
to 'values' to display the values explicity defined in lineLabelArray.
lineLabelArray
Explicit array of line label values, must match size of data if present.
These labels values will be displayed only if the property
lineLabelFormat above is set to 'values'.
Table 11-9 - HorizontalLineChart properties
11.8 Line Plots
Below we show a more complex example of a Line Plot that also uses some experimental features like line
markers placed at each data point.
from reportlab.graphics.charts.lineplots import LinePlot
from reportlab.graphics.widgets.markers import makeMarker
User Guide
Chapter 11 Graphics
Page 106
How to C#: Overview of Using XDoc.PowerPoint
document (ODP). Empower to navigate PowerPoint document content quickly via thumbnail. Able to you want. Create Thumbnail. See this
enable thumbnail preview for pdf files; create thumbnail from pdf c#
How to C#: Overview of Using XDoc.Word
Tell C# users how to: create a new Word file and load Word from pdf; merge, append, and split Word files; insert, delete, move, rotate, copy Create Thumbnail.
can't see pdf thumbnails; pdf no thumbnail
drawing = Drawing(400, 200)
data = [
((1,1), (2,2), (2.5,1), (3,3), (4,5)),
((1,2), (2,3), (2.5,2), (3.5,5), (4,6))
]
lp = LinePlot()
lp.x = 50
lp.y = 50
lp.height = 125
lp.width = 300
lp.data = data
lp.joinedLines = 1
lp.lines[0].symbol = makeMarker('FilledCircle')
lp.lines[1].symbol = makeMarker('Circle')
lp.lineLabelFormat = '%2.0f'
lp.strokeColor = colors.black
lp.xValueAxis.valueMin = 0
lp.xValueAxis.valueMax = 5
lp.xValueAxis.valueSteps = [1, 2, 2.5, 3, 4, 5]
lp.xValueAxis.labelTextFormat = '%2.1f'
lp.yValueAxis.valueMin = 0
lp.yValueAxis.valueMax = 7
lp.yValueAxis.valueSteps = [1, 2, 3, 5, 6]
drawing.add(lp)
1.0
2.0
2.5
3.0
4.0
5.0
1
2
3
5
6
1
2
1
3
5
2
3
2
5
6
Figure 11-9: LinePlot sample
Property
Meaning
data
Data to be plotted, list of (lists of) numbers.
x, y, width, height
Bounding box of the line chart.
Note that x and y do NOT specify the centre but the bottom left corner
xValueAxis
The vertical value axis, which may be formatted as described previously.
yValueAxis
The horizontal value axis, which may be formatted as described previously.
strokeColor
Defaults to None. This will draw a border around the plot rectangle,
which may be useful in debugging. Axes will overwrite this.
strokeWidth
Defaults to None. Width of the border around the plot rectangle.
fillColor
Defaults to None. This will fill the plot rectangle with a solid color.
lines.strokeColor
Color of the line.
User Guide
Chapter 11 Graphics
Page 107
lines.strokeWidth
Width of the line.
lines.symbol
Marker used for each point.
You can create a new marker using the function makeMarker().
For example to use a circle, the function call would be makeMarker('Circle')
lineLabels
A collection of labels used to format all line labels. Since
this is a two-dimensional array, you may explicitly format the
third label of the second line using this syntax:
chart.lineLabels[(1,2)].fontSize = 12
lineLabelFormat
Defaults to None. As with the YValueAxis, if you supply
a function or format string then labels will be drawn next
to each line showing the numeric value. You can also set it
to 'values' to display the values explicity defined in lineLabelArray.
lineLabelArray
Explicit array of line label values, must match size of data if present.
These labels values will be displayed only if the property
lineLabelFormat above is set to 'values'.
Table 11-10 - LinePlot properties
11.9 Pie Charts
As usual, we will start with an example:
from reportlab.graphics.charts.piecharts import Pie
d = Drawing(200, 100)
pc = Pie()
pc.x = 65
pc.y = 15
pc.width = 70
pc.height = 70
pc.data = [10,20,30,40,50,60]
pc.labels = ['a','b','c','d','e','f']
pc.slices.strokeWidth=0.5
pc.slices[3].popout = 10
pc.slices[3].strokeWidth = 2
pc.slices[3].strokeDashArray = [2,2]
pc.slices[3].labelRadius = 1.75
pc.slices[3].fontColor = colors.red
d.add(pc)
a
b
c
d
e
f
Figure 11-10: A bare bones pie chart
User Guide
Chapter 11 Graphics
Page 108
Properties are covered below. The pie has a 'wedges' collection and we document wedge properties in the
same table.
Property
Meaning
data
A list or tuple of numbers
x, y, width, height
Bounding box of the pie.
Note that x and y do NOT specify the centre but the bottom left
corner, and that width and height do not have to be equal;
pies may be elliptical and wedges will be drawn correctly.
labels
None, or a list of strings.
Make it None if you don't want labels around the edge of the pie.
Since it is impossible to know the size of slices, we generally
discourage placing labels in or around pies; it is much better 
to put them in a legend alongside.
startAngle
Where is the start angle of the first pie slice?
The default is '90' which is twelve o'clock.
direction
Which direction do slices progress in?
The default is 'clockwise'.
sideLabels
This creates a chart with the labels in two columns,
one on either side.
sideLabelsOffset
This is a fraction of the width of the pie that defines the horizontal
distance between the pie and the columns of labels.
simpleLabels
Default is 1. Set to 0 to enable the use of customizable labels 
and of properties prefixed by label_ in the collection slices.
wedges
Collection of wedges.
This lets you customise each wedge, or individual ones. See below
wedges.strokeWidth
Border width for wedge
wedges.strokeColor
Border color
wedges.strokeDashArray
Solid or dashed line configuration
wedges.popout
How far out should the slice(s) stick from the centre of the pie?
Default is zero.
wedges.fontName
Name of the label font
wedges.fontSize
Size of the label font
wedges.fontColor
Color of the label text
wedges.labelRadius
This controls the anchor point for a text label.
It is a fraction of the radius; 0.7 will place the text inside the
pie, 1.2 will place it slightly outside. (note that if we add labels,
we will keep this to specify their anchor point)
Table 11-11 - Pie properties
Customizing Labels
Each slide label can be customized individually by changing the properties prefixed by label_ in the
collection wedges. For example pc.slices[2].label_angle = 10 changes the angle of the third
label.
Before being able to use these customization properties, you need to disable simple labels with:
pc.simplesLabels = 0
User Guide
Chapter 11 Graphics
Page 109
Property
Meaning
label_dx
X Offset of the label
label_dy
Y Offset of the label
label_angle
Angle of the label, default (0) is horizontal, 90 is vertical,
180 is upside down
label_boxAnchor
Anchoring point of the label
label_boxStrokeColor
Border color for the label box
label_boxStrokeWidth
Border width for the label box
label_boxFillColor
Filling color of the label box
label_strokeColor
Border color for the label text
label_strokeWidth
Border width for the label text
label_text
Text of the label
label_width
Width of the label
label_maxWidth
Maximum width the label can grow to
label_height
Height of the label
label_textAnchor
Maximum height the label can grow to
label_visible
True if the label is to be drawn
label_topPadding
Padding at top of box
label_leftPadding
Padding at left of box
label_rightPadding
Padding at right of box
label_bottomPadding
Padding at bottom of box
label_simple_pointer
Set to 1 for simple pointers
label_pointer_strokeColor
Color of indicator line
label_pointer_strokeWidth
Width of indicator line
Table 11-12 - Pie.wedges label customization properties
Side Labels
If the sideLabels attribute is set to true, then the labels of the slices are placed in two columns, one on either
side of the pie and the start angle of the pie will be set automatically. The anchor of the right hand column is
set to 'start' and the anchor of the left hand column is set to 'end'. The distance from the edge of the pie from
the edge of either column is decided by the sideLabelsOffset attribute, which is a fraction of the width of the
pie. If xradius is changed, the pie can overlap the labels, and so we advise leaving xradius as None. There is
an example below.
User Guide
Chapter 11 Graphics
Page 110
Documents you may be interested
Documents you may be interested