De structuur van diagrammen

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png


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, afhankelijk 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 worden geplot. Voor 3D-diagrammen bestaan gewoonlijk twee wanden: één achter de geplotte gegevens en één als demarcatie aan de linker- of rechterkant. 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, die 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 bewerkingen om te schalen.

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)
activeert het tekstlabel op de markeringen voor de interval
TextRotation (Long)
draaihoek van tekstlabels in 100-en van een graad
ArrangeOrder (enum)
de labels kunnen op elkaar gestapeld zijn, dus zij worden afwisselend op twee regels geplaatst (waarden overeenkomstig met com.sun.star.chart.ChartAxisArrangeOrderType)
TextBreak (Boolean)
staat regeleinden toe binnen de labels van de assen
TextCanOverlap (Boolean)
staat een overlapping toe van de labels van de assen
NumberFormat (Long)
getalopmaak die moet worden gebruikt voor de labels van de assen
LinkNumberFormatToSource (Boolean)
bepaalt of de getalopmaak wordt bepaald door het containerdocument, of vanuit de eigenschap NumberFormat. (sinds OpenOffice.org 2.3)

Eigenschappen voor markeringen van intervallen:

Marks (Const)
bepaalt de positie van de markering van de hoofdinterval (waarden overeenkomend met com.sun.star.chart.ChartAxisMarks)
HelpMarks (Const)
bepaalt de positie van de kleinere markeringen van de interval (waarden overeenkomend met com.sun.star.chart.ChartAxisMarks)

Alleen voor staaf-diagrammen:

Overlap (Long)
percentage dat de mate specificeert waarmee de staven van de verschillende sets van gegevens elkaar mogen overlappen (met 100% worden de staven weergegeven als volledig overlappend, met -100% is er een afstand van de breedte van één staaf tussen)
GapWidth (long)
percentage dat de afstand specificeert tussen de verschillende groepen staven van een diagram (met 100% is er een afstand die overeenkomt met de breedte van één staaf)

Rasters

Voor de primaire assen kunnen rasters en sub-rasters worden weergegeven, overeenkomend met de hoofd- en kleinere intervallen. Het object Diagram verschaft de volgende eigenschappen voor toegang tot de rasters:

HasXAxisGrid (Boolean)
activeert het hoofdraster voor de X-as
XMainGrid (Object)
object met gedetailleerde informatie over het hoofdraster voor de X-as (ondersteunt service com.sun.star.chart.ChartGrid)
HasXAxisHelpGrid (Boolean)
activeert sub-raster voor de X-as
XHelpGrid (Object)
object met gedetailleerde informatie over het sub-raster voor de X-as (ondersteunt service com.sun.star.chart.ChartGrid)

hetzelfde voor Y en Z:

HasYAxisGrid (Boolean)
activeert het hoofdraster voor de Y-as
YMainGrid (Object)
object met gedetailleerde informatie over het hoofdraster voor de Y-as (ondersteunt service com.sun.star.chart.ChartGrid)
HasYAxisHelpGrid (Boolean)
activeert sub-raster voor de Y-as
YHelpGrid (Object)
object met gedetailleerde informatie over het sub-raster voor de Y-as (ondersteunt service com.sun.star.chart.ChartGrid)
HasZAxisGrid (Boolean)
activeert het hoofdraster voor de Z-as
ZMainGrid (Object)
object met gedetailleerde informatie over het hoofdraster voor de Z-as (ondersteunt service com.sun.star.chart.ChartGrid)
HasZAxisHelpGrid (Boolean)
activeert sub-raster voor de Z-as
ZHelpGrid (Object)
object met gedetailleerde informatie over het sub-raster voor de Z-as (ondersteunt service com.sun.star.chart.ChartGrid)

Het object voor het raster is gebaseerd op de service com.sun.star.chart.ChartGrid, die op zijn beurt de lijn-eigenschappen ondersteunt van de ondersteunende service com.sun.star.drawing.LineStyle (bekijk Tekeningen en presentaties).

Titels voor assen

Voor alle assen kan een aanvullende titel worden weergegeven. Het object Diagram verschaft de volgende eigenschappen voor toegang tot de titel van de assen:

HasXAxisTitle (Boolean)
activeert de titel van de X-as
XAxisTitle (Object)
object met gedetailleerde informatie over de titel van de X-as (ondersteunt service com.sun.star.chart.ChartTitle)

hetzelfde voor Y en Z:

HasYAxisTitle (Boolean)
activeert de titel van de Y-as
YAxisTitle (Object)
object met gedetailleerde informatie over de titel van de Y-as (ondersteunt service com.sun.star.chart.ChartTitle)
HasZAxisTitle (Boolean)
activeert de titel van de Z-as
ZAxisTitle (Object)
object met gedetailleerde informatie over de titel van de Z-as (ondersteunt service com.sun.star.chart.ChartTitle)

en voor de secondaire assen (beschikbaar sinds OpenOffice.org 3.0):

HasSecondaryXAxisTitle (Boolean)
activeert de titel van de secundaire X-as.
SecondXAxisTitle (Object)
object met gedetailleerde informatie over de titel van de secundaire X-as (ondersteunt service com.sun.star.chart.ChartTitle)
HasSecondaryYAxisTitle (Boolean)
activeert de titel van de secundaire Y-as.
SecondYAxisTitle (Object)
object met gedetailleerde informatie over de titel van de secundaire X-as (ondersteunt service com.sun.star.chart.ChartTitle)

De objecten voor het opmaken van de titels van de assen zijn gebaseerd op de service com.sun.star.chart.ChartTitle, die ook wordt gebruikt voor de titels van het diagram.

Voorbeeld

Het volgende voorbeeld maakt een lijn-diagram. De kleur van de achterwand van het diagram is ingesteld op wit. Zowel de X als de Y-as hebben een grijs hulp-raster voor visuele oriëntatie. De minimum waarde van de Y-as is vast ingesteld op 0 en de maximum waarde is vast ingesteld op 100 zodat de uitvoering van het diagram wordt behouden, zelfs als de waarden worden veranderd. De X-as loopt in omgekeerde richting van rechts naar links. Een titel voor de X-as is toegevoegd.

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
 
Doc = ThisComponent
Diagrammen = Doc.Sheets(0).Charts
 
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
 
Diagrammen.addNewByName("MijnDiagram", Recht, CelBereik(), True, True)
Diagram = Diagrammen.getByName("MijnDiagram").embeddedObject
Diagram.Diagram = Diagram.createInstance("com.sun.star.chart.LineDiagram")
Diagram.Diagram.Wall.FillColor = RGB(255, 255, 255)
Diagram.Diagram.HasXAxisGrid = True
Diagram.Diagram.XMainGrid.LineColor = RGB(192, 192, 192)
Diagram.Diagram.HasYAxisGrid = True
Diagram.Diagram.YMainGrid.LineColor = RGB(192, 192, 192)
Diagram.Diagram.YAxis.Min = 0 
Diagram.Diagram.YAxis.Max = 100
 
Diagram.Diagram.XAxis.ReverseDirection = true 'heeft OpenOffice.org 2.4 of nieuwer nodig
Diagram.Diagram.HasXAxisTitle = true
Diagram.Diagram.XAxisTitle.String = "Voorbeeld omgekeerde X-as"

3D-diagrammen

De meeste diagrammen in Apache OpenOffice kunnen ook worden weergegeven met 3D-afbeelding. De volgende eigenschappen worden verschaft voor 3D-diagrammen voor het object Diagram:

De meest diagrammen kunnen ook worden weergegeven met 3D-afbeeldingen.

Dim3D (Boolean)
activeert weergave in 3D
Deep (Boolean)
de reeks zal achter elkaar worden geschikt in de richting van Z
RightAngledAxes (Boolean)
activeert een modus 3D-weergave waar X- en Y-assen een rechte hoek vormen binnen de projectie. (beschikbaar sinds OpenOffice.org 2.3)
D3DScenePerspective (Enum)
definieert of de 3D-objecten moeten worden getekend in projectie met perspectief of parallel.(waarden overeenkomend met com.sun.star.drawing.ProjectionMode)
Perspective (Long)
Perspectief van 3D-diagrammen ( [0,100] ) (beschikbaar sinds OpenOffice.org 2.4.1)
RotationHorizontal (Long)
Horizontale rotatie van 3D-diagrammen in graden ( [-180,180] ) (beschikbaar sinds OpenOffice.org 2.4.1)
RotationVertical (Long)
Verticale rotatie van 3D-diagrammen in graden ( [-180,180] ) (beschikbaar sinds OpenOffice.org 2.4.1)

Het volgende voorbeeld maakt een 3D-vlakdiagram.

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
 
Doc = ThisComponent
Diagrammen = Doc.Sheets(0).Charts
 
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
 
Diagrammen.addNewByName("MijnDiagram", Recht, CelBereik(), True, True)
Diagram = Diagrammen.getByName("MijnDiagram").embeddedObject
Diagram.Diagram = Diagram.createInstance("com.sun.star.chart.AreaDiagram")
Diagram.Diagram.Dim3D = true
Diagram.Diagram.Deep = true
Diagram.Diagram.RightAngledAxes = true 'heeft OpenOffice.org 2.3 of nieuwer nodig
Diagram.Diagram.D3DScenePerspective = com.sun.star.drawing.ProjectionMode.PERSPECTIVE
Diagram.Diagram.Perspective = 100 'heeft OpenOffice.org 2.4.1 of nieuwer nodig
Diagram.Diagram.RotationHorizontal = 60 'heeft OpenOffice.org 2.4.1 of nieuwer nodig
Diagram.Diagram.RotationVertical = 30 'heeft OpenOffice.org 2.4.1 of nieuwer nodig

Gestapelde diagrammen

Gestapelde diagrammen zijn diagrammen die worden gepresenteerd met verscheidene individuele waarden op elkaar om een totale waarde te produceren. Deze weergave toont niet alleen de individuele waarden, maar ook een overzicht van alle waarden.

In Apache OpenOffice kunnen verschillende typen diagram worden weergegeven in een gestapelde vorm. Al deze diagrammen ondersteunen de service com.sun.star.chart.StackableDiagram, welke op zijn beurt de volgende eigenschappen verschaft:

Stacked (Boolean)
activeert de modus voor gestapeld weergeven
Percent (Boolean)
in plaats van absolute waarden, geef het percentage van hun verdeling weer


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools