De structuur van diagrammen
- Diagrammen gebruiken in werkbladen
- De structuur van diagrammen
- Typen diagram
De structuur van een diagram, en daaropvolgend de lijst van daardoor ondersteunde services en interfaces, is afhankelijk van het type. De methoden en eigenschappen van de Z-as, zijn bijvoorbeeld alleen beschikbaar in 3D-diagrammen, maar niet in 2D-diagrammen. In taart-diagrammen zijn er geen interfaces voor het werken met assen.
Titel, subtitel en legenda
Een titel, sub-titel en legenda vormen een deel van de basiselementen van elk diagram. Diagrammen verschaffen hun eigen objecten voor elk van deze elementen. Het object Chart verschaft de volgende eigenschappen voor het beheren van deze elementen:
- HasMainTitle (Boolean)
- activeert de titel
- Title (Object)
- object met gedetailleerde informatie over de titel van het diagram (ondersteunt de service com.sun.star.chart.ChartTitle)
- HasSubTitle(Boolean)
- activeert de subtitel
- Subtitle (Object)
- object met gedetailleerde informatie over de subtitel van het diagram (ondersteunt de service com.sun.star.chart.ChartTitle)
- HasLegend (Boolean)
- activeert de legenda
- Legend (Object)
- object met gedetailleerde informatie over de legenda van het diagram (ondersteunt de service com.sun.star.chart.ChartLegend)
Beide services com.sun.star.chart.ChartTitle en com.sun.star.chart.ChartLegend ondersteunen de service com.sun.star.drawing.Shape. Dit maakt het mogelijk om de positie en grootte van de elementen te bepalen met behulp van de eigenschappen Position en Size. Omdat de grootte van de legenda en de titels automatisch wordt berekend gebaseerd op de huidige inhoud en bijvoorbeeld de hoogte van de tekens, verschaft de eigenschap size alleen toegang om te lezen.
Eigenschappen voor vulling en lijnen (services com.sun.star.drawing.FillProperties en com.sun.star.drawing.LineProperties) net als eigenschappen voor tekens (service com.sun.star.style.CharacterProperties) worden verschaft voor het verder opmaken van de elementen.
com.sun.star.chart.ChartTitle bevat niet alleen de opgesomde eigenschappen voor opmaak, maar ook twee andere eigenschappen:
- String (String)
- tekst welke moet worden getoond als de titel of subtitel
- TextRotation (Long)
- draaihoek van de tekst in 100-en van graden
De legenda (com.sun.star.chart.ChartLegend) bevat de volgende aanvullende eigenschap:
- Alignment (Enum)
- positie waar de legenda moet verschijnen (waarde van het type com.sun.star.chart.ChartLegendPosition)
Het volgende voorbeeld maakt een diagram en wijst daar de titel "Test", de subtitel "Test 2" en een legenda aan toe. De legenda heeft een grijze achtergrondkleur, staat aan de onderzijde van het diagram en heeft een tekengrootte van 7 punten.
Dim Doc As Object Dim Diagrammen As Object Dim Diagram as Object Dim Recht As New com.sun.star.awt.Rectangle Dim CelBereik(0) As New com.sun.star.table.CellRangeAddress Recht.X = 8000 Recht.Y = 1000 Recht.Width = 10000 Recht.Height = 7000 CelBereik(0).Sheet = 0 CelBereik(0).StartColumn = 0 CelBereik(0).StartRow = 0 CelBereik(0).EndColumn = 2 CelBereik(0).EndRow = 12 Doc = ThisComponent Diagrammen = Doc.Sheets(0).Charts Diagrammen.addNewByName("MijnDiagram", Recht, CelBereik(), True, True) Diagram = Diagrammen.getByName("MijnDiagram").EmbeddedObject Diagram.HasMainTitle = True Diagram.Title.String = "Test" Diagram.HasSubTitle = True Diagram.Subtitle.String = "Test 2" Diagram.HasLegend = True Diagram.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM Diagram.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID Diagram.Legend.FillColor = RGB(210, 210, 210) Diagram.Legend.CharHeight = 7
Achtergrond
Elk diagram heeft een gedeelte voor de achtergrond. Het object Chart verschaft de eigenschap Area om de achtergrond op te maken:
- Area (Object)
- gebied voor de achtergrond van het diagram (ondersteunt de service com.sun.star.chart.ChartArea)
De achtergrond van een diagram beslaat zijn complete gebied, inclusief het gebied onder de titel, sub-titel en diagram-legenda. De geassocieerde service com.sun.star.chart.ChartArea ondersteunt eigenschappen voor lijn en vulling.
Diagram
Het object Chart verschaft de eigenschap Diagram die het coördinatensysteem vormt met assen en raster, waar de gegevens uiteindelijk wordne weergegeven:
- Diagram (Object)
- object dat het coördinatensysteem vormt waar de gegevens worden geplot. Het ondersteunt de service com.sun.star.chart.Diagram en:
verschillende services worden ondersteund, afhanbkelijk van het type diagram (zie Typen diagram).
Wanden en bodem
De wand van het diagram is de achtergrond van het coördinatensysteem waar de gegevens wordne geplot. Voor 3D diagrammen bestaan gewoonlijk twee wanden: één achter de geplotte gegevens en één als demarcatie aan de linker of rechter kant. Dit is afhankelijk van de rotatie van het diagram. 3D-diagrammen hebben gewoonlijk ook een bodem.
Het object Diagram verschaft de eigenschappen Wall en Floor:
- Wall (Object)
- wand voor de achtergrond van het coördinatensysteem (ondersteunt service com.sun.star.chart.ChartArea)
- Floor (Object)
- bodempaneel van het coördinatensysteem (alleen voor 3D-diagrammen, ondersteunt service com.sun.star.chart.ChartArea)
De gespecificeerde objecten ondersteunen de service com.sun.star.chart.ChartArea, welke op zijn beurt de gebruikelijke eigenschappen voor vulling en lijn verschaft (services com.sun.star.drawing.FillProperties en com.sun.star.drawing.LineProperties, bekijk Tekeningen en presentaties).
Het volgende voorbeeld toont hoe een afbeelding (genaamd Sky) die reeds is opgenomen in Apache OpenOffice kan worden gebruikt als achtergrond voor een diagram. De wand wordt ingesteld op blauw.
Dim Doc As Object Dim Diagrammen As Object Dim Diagram as Object Dim Recht As New com.sun.star.awt.Rectangle Dim Celbereik(0) As New com.sun.star.table.CellRangeAddress Recht.X = 8000 Recht.Y = 1000 Recht.Width = 10000 Recht.Height = 7000 Celbereik(0).Sheet = 0 Celbereik(0).StartColumn = 0 Celbereik(0).StartRow = 0 Celbereik(0).EndColumn = 2 Celbereik(0).EndRow = 12 Doc = ThisComponent Diagrammen = Doc.Sheets(0).Charts Diagrammen.addNewByName("MijnDiagram", Recht, CelBereik(), True, True) Diagram = Diagrammen.getByName("MijnDiagram").EmbeddedObject Diagram.Area.FillStyle = com.sun.star.drawing.FillStyle.BITMAP Diagram.Area.FillBitmapName = "Sky" Diagram.Area.FillBitmapMode = com.sun.star.drawing.BitmapMode.REPEAT Diagram.Diagram.Wall.FillStyle = com.sun.star.drawing.FillStyle.SOLID Diagram.Diagram.Wall.FillColor = RGB(00,132,209)
Assen
Apache OpenOffice herkent vijf verschillende assen die kunnen worden gebruikt in een diagram. In het eenvoudigste scenario zijn dit de X- en Y-assen. Bij het werken met 3D-diagrammen wordt soms ook een Z-as verschaft. Voor diagrammen waarin de waarden van de verschillende rijen met gegevens significant van elkaar afwijken, verschaft Apache OpenOffice een tweede X- en Y-as voor tweede schalings-bewerkingen.
Het object Diagram verschaft de volgende eigenschappen om toegang te krijgen tot de assen:
- HasXAxis (Boolean)
- activeert de X-as
- XAxis (Object)
- object met gedetailleerde informatie over de X-as (ondersteunt service com.sun.star.chart.ChartAxis)
- HasXAxisDescription (Boolean)
- activeert de labels voor de markeringen voor de interval voor de X-as
- HasYAxis (Boolean)
- activeert de Y-as
- YAxis (Object)
- object met gedetailleerde informatie over de Y-as (ondersteunt service com.sun.star.chart.ChartAxis)
- HasYAxisDescription (Boolean)
- activeert de labels voor de markeringen voor de interval voor de Y-as
- HasZAxis (Boolean)
- activeert de Z-as
- ZAxis (Object)
- object met gedetailleerde informatie over de Y-as (ondersteunt service com.sun.star.chart.ChartAxis)
- HasZAxisDescription (Boolean)
- activeert de labels voor de markeringen voor de interval voor de Z-as
- HasSecondaryXAxis (Boolean)
- activeert de secundaire X-as
- SecondaryXAxis (Object)
- object met gedetailleerde informatie over de secundaire X-as (ondersteunt service com.sun.star.chart.ChartAxis)
- HasSecondaryXAxisDescription (Boolean)
- activeert de labels voor de markeringen voor de interval voor de secundaire X-as
- HasSecondaryYAxis (Boolean)
- activeert de secundaire Y-as
- SecondaryYAxis (Object)
- object met gedetailleerde informatie over de secundaire Y-as (ondersteunt service com.sun.star.chart.ChartAxis service)
- HasSecondaryYAxisDescription (Boolean)
- activeert de labels voor de markeringen voor de interval voor de secundaire Y-as
Eigenschappen van assen
De objecten voor assen van een diagram van Apache OpenOffice ondersteunen de service com.sun.star.chart.ChartAxis. In aanvulling op de service voor eigenschappen van tekens (com.sun.star.style.CharacterProperties, bekijk Tekstdocumenten) en service voor lijnen (com.sun.star.drawing.LineStyle, bekijk Tekeningen en presentaties), verschaft het de volgende eigenschappen:
Eigenschappen voor schalen:
- Max (Double)
- maximum waarde voor as
- Min (Double)
- minimum waarde voor as
- Origin (Double)
- startpunt voor kruisende assen
- StepMain (Double)
- afstand tussen twee markeringen voor de hoofdinterval van de as
- StepHelp (Double)
- afstand tussen twee markeringen voor de interval van de as (vervallen sinds OpenOffice.org 3.0; Gebruik in plaats daarvan de eigenschap StepHelpCount)
- StepHelpCount (Long)
- Bevat het aantal kleinere intervallen binnen een hoofdinterval. Bijv: een StepHelpCount van 5 deelt de hoofdinterval in 5 delen en produceert dus 4 kleinere markeringen. (beschikbaar sinds OpenOffice.org 3.0)
- AutoMax (Boolean)
- de maximale waarde voor de as wordt automatisch berekend indien ingesteld op true
- AutoMin (Boolean)
- de minimale waarde voor de as wordt automatisch berekend indien ingesteld op true
- AutoOrigin (Boolean)
- de startpunt wordt automatisch bepaald indien ingesteld op true
- AutoStepMain (Boolean)
- StepMain wordt automatisch bepaald indien ingesteld op true
- AutoStepHelp (Boolean)
- StepHelpCount wordt automatisch bepaald indien ingesteld op true
- Logarithmic (Boolean)
- schaalt de assen in op een logaritmische manier (in plaats van lineair)
- ReverseDirection (Boolean)
- bepaalt of de oriëntatie van de as wiskundig is of omgekeerd. (beschikbaar sinds OpenOffice.org 2.4)
Eigenschappen voor labels:
- DisplayLabels (Boolean)
- activates the text label at the interval marks
- TextRotation (Long)
- angle of rotation of text label in 100ths of a degree
- ArrangeOrder (enum)
- the label may be staggered, thus they are positioned alternately over two lines (values according to com.sun.star.chart.ChartAxisArrangeOrderType)
- TextBreak (Boolean)
- permits line breaks within the axes labels
- TextCanOverlap (Boolean)
- permits an overlap of the axes labels
- NumberFormat (Long)
- number format to be used with the axes labels
- LinkNumberFormatToSource (Boolean)
- determines whether to use the number format given by the container document, or from the property NumberFormat. (since OpenOffice.org 2.3)
Interval mark properties:
- Marks (Const)
- determines the position of the major interval marks (values in accordance with com.sun.star.chart.ChartAxisMarks)
- HelpMarks (Const)
- determines the position of the minor interval marks (values in accordance with com.sun.star.chart.ChartAxisMarks)
Only for bar charts:
- Overlap (Long)
- percentage which specifies the extent to which the bars of different sets of data may overlap (at 100%, the bars are shown as completely overlapping, at -100%, there is a distance of the width of one bar between them)
- GapWidth (long)
- percentage which specifies the distance there may be between the different groups of bars of a chart (at 100%, there is a distance corresponding to the width of one bar)
Grids
For the primary axes grids and sub grids can be displayed, matching to the major and minor intervals. The Diagram object provides the following properties to access the grids:
- HasXAxisGrid (Boolean)
- activates major grid for X-axis
- XMainGrid (Object)
- object with detailed information about the major grid for X-axis (supports com.sun.star.chart.ChartGrid service)
- HasXAxisHelpGrid (Boolean)
- activates minor grid for X-axis
- XHelpGrid (Object)
- object with detailed information about the minor grid for X-axis (supports com.sun.star.chart.ChartGrid service)
the same for y and z:
- HasYAxisGrid (Boolean)
- activates major grid for Y-axis
- YMainGrid (Object)
- object with detailed information about the major grid for Y-axis (supports com.sun.star.chart.ChartGrid service)
- HasYAxisHelpGrid (Boolean)
- activates minor grid for Y-axis
- YHelpGrid (Object)
- object with detailed information about the minor grid for Y-axis (supports com.sun.star.chart.ChartGrid service)
- HasZAxisGrid (Boolean)
- activates major grid for Z-axis
- ZMainGrid (Object)
- object with detailed information about the major grid for Z-axis (supports com.sun.star.chart.ChartGrid service)
- HasZAxisHelpGrid (Boolean)
- activates minor grid for Z-axis
- ZHelpGrid (Object)
- object with detailed information about the minor grid for Z-axis (supports com.sun.star.chart.ChartGrid service)
The grid object is based on the com.sun.star.chart.ChartGrid service, which in turn supports the line properties of the com.sun.star.drawing.LineStyle support service (refer to Drawings and Presentations).
Axes Title
For all axes an additional title can be displayed. The Diagram object provides the following properties to access the axes title:
- HasXAxisTitle (Boolean)
- activates title of X-axis
- XAxisTitle (Object)
- object with detailed information about title of the X-axis (supports com.sun.star.chart.ChartTitle service)
same y and z:
- HasYAxisTitle (Boolean)
- activates title of Y-axis
- YAxisTitle (Object)
- object with detailed information about title of the Y-axis (supports com.sun.star.chart.ChartTitle service)
- HasZAxisTitle (Boolean)
- activates title of Z-axis
- ZAxisTitle (Object)
- object with detailed information about title of the Z-axis (supports com.sun.star.chart.ChartTitle service)
and for the secondary axes (available since OpenOffice.org 3.0):
- HasSecondaryXAxisTitle (Boolean)
- activates title of the secondary X-axis.
- SecondXAxisTitle (Object)
- object with detailed information about title of the secondary X-axis (supports com.sun.star.chart.ChartTitle service)
- HasSecondaryYAxisTitle (Boolean)
- activates title of the secondary Y-axis.
- SecondYAxisTitle (Object)
- object with detailed information about title of the secondary Y-axis (supports com.sun.star.chart.ChartTitle service)
The objects for formatting the axes title are based on the com.sun.star.chart.ChartTitle service, which is also used for chart titles.
Example
The following example creates a line chart. The color for the rear wall of the chart is set to white. Both the X and Y-axes have a gray grid for visual orientation. The minimum value of the Y-axis is fixed to 0 and the maximum value is fixed to 100 so that the resolution of the chart is retained even if the values are changed. The X-axis points in reverse direction from right to left. And a title for the X-axis was added.
Dim Doc As Object Dim Charts As Object Dim Chart as Object Dim Rect As New com.sun.star.awt.Rectangle Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress Doc = ThisComponent Charts = Doc.Sheets(0).Charts Rect.X = 8000 Rect.Y = 1000 Rect.Width = 10000 Rect.Height = 7000 RangeAddress(0).Sheet = 0 RangeAddress(0).StartColumn = 0 RangeAddress(0).StartRow = 0 RangeAddress(0).EndColumn = 2 RangeAddress(0).EndRow = 12 Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True) Chart = Charts.getByName("MyChart").embeddedObject Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram") Chart.Diagram.Wall.FillColor = RGB(255, 255, 255) Chart.Diagram.HasXAxisGrid = True Chart.Diagram.XMainGrid.LineColor = RGB(192, 192, 192) Chart.Diagram.HasYAxisGrid = True Chart.Diagram.YMainGrid.LineColor = RGB(192, 192, 192) Chart.Diagram.YAxis.Min = 0 Chart.Diagram.YAxis.Max = 100 Chart.Diagram.XAxis.ReverseDirection = true 'needs OpenOffice.org 2.4 or newer Chart.Diagram.HasXAxisTitle = true Chart.Diagram.XAxisTitle.String = "Reversed X Axis Example"
3D Charts
Most charts in Apache OpenOffice can also be displayed with 3D graphics. The following properties are provided for 3D charts at the Diagram object:
- Dim3D (Boolean)
- activates 3D display
- Deep (Boolean)
- the series will be arranged behind each other in z-direction
- RightAngledAxes (Boolean)
- activates a 3D display mode where X- and Y-axes form a right angle within the projection. (available since OpenOffice.org 2.3)
- D3DScenePerspective (Enum)
- defines whether the 3D objects are to be drawn in perspective or parallel projection.(values according to com.sun.star.drawing.ProjectionMode)
- Perspective (Long)
- Perspective of 3D charts ( [0,100] ) (available since OpenOffice.org 2.4.1)
- RotationHorizontal (Long)
- Horizontal rotation of 3D charts in degrees ( [-180,180] ) (available since OpenOffice.org 2.4.1)
- RotationVertical (Long)
- Vertical rotation of 3D charts in degrees ( [-180,180] ) (available since OpenOffice.org 2.4.1)
The following example creates a 3D area chart.
Dim Doc As Object Dim Charts As Object Dim Chart as Object Dim Rect As New com.sun.star.awt.Rectangle Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress Doc = ThisComponent Charts = Doc.Sheets(0).Charts Rect.X = 8000 Rect.Y = 1000 Rect.Width = 10000 Rect.Height = 7000 RangeAddress(0).Sheet = 0 RangeAddress(0).StartColumn = 0 RangeAddress(0).StartRow = 0 RangeAddress(0).EndColumn = 2 RangeAddress(0).EndRow = 12 Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True) Chart = Charts.getByName("MyChart").embeddedObject Chart.Diagram = Chart.createInstance("com.sun.star.chart.AreaDiagram") Chart.Diagram.Dim3D = true Chart.Diagram.Deep = true Chart.Diagram.RightAngledAxes = true 'needs OpenOffice.org 2.3 or newer Chart.Diagram.D3DScenePerspective = com.sun.star.drawing.ProjectionMode.PERSPECTIVE Chart.Diagram.Perspective = 100 'needs OpenOffice.org 2.4.1 or newer Chart.Diagram.RotationHorizontal = 60 'needs OpenOffice.org 2.4.1 or newer Chart.Diagram.RotationVertical = 30 'needs OpenOffice.org 2.4.1 or newer
Stacked Charts
Stacked charts are charts that are arranged with several individual values on top of one another to produce a total value. This view shows not only the individual values, but also an overview of all the values.
In Apache OpenOffice, various types of charts can be displayed in a stacked form. All of these charts support the com.sun.star.chart.StackableDiagram service, which in turn provides the following properties:
- Stacked (Boolean)
- activates the stacked viewing mode
- Percent (Boolean)
- rather than absolute values, displays their percentage distribution
Content on this page is licensed under the Public Documentation License (PDL). |