Structure des diagrammes

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


La structure d'un diagramme et, par conséquent, les services et interfaces pris en charge par celui-ci dépendent du type de diagramme. Par exemple, les méthodes et propriétés de l'axe Z sont disponibles dans les diagrammes en 3D, mais pas dans les diagrammes en 2D ; dans les diagramme à secteurs, aucune interface ne permet d'utiliser les axes.

Titre, sous-titre et légende

Le titre, le sous-titre et la légende sont les éléments de base fournis pour tout diagramme. L'objet Chart fournit les propriétés suivantes pour la gestion de ces éléments :

HasMainTitle (Boolean)
active le titre.
Title (Object)
objet contenant des informations détaillées sur le titre du diagramme (prend en charge le service com.sun.star.chart.ChartTitle).
HasSubTitle(Boolean)
active le sous-titre.
Subtitle (Object)
objet contenant des informations détaillées sur le sous-titre du diagramme (prend en charge le service com.sun.star.chart.ChartTitle).
HasLegend (Boolean)
active la légende.
Legend (Object)
objet contenant des informations détaillées sur la légende du diagramme (prend en charge le service com.sun.star.chart.ChartLegend).

Les services com.sun.star.chart.ChartTitle et com.sun.star.chart.ChartLegend prennent en charge le service com.sun.star.drawing.Shape. Cela permet de déterminer la position et la taille des éléments à l'aide des propriétés Position et Size. Comme la taille de la légende et des titres est calculée automatiquement en fonction du contenu et de la taille des caractères par exemple, la propriété de taille est disponible en lecture seule.

Les propriétés de remplissage et de ligne (services com.sun.star.drawing.FillProperties et com.sun.star.drawing.LineProperties) et les propriétés de caractère (service com.sun.star.style.CharacterProperties) permettent de formater davantage les éléments.

Outre les propriétés de formatage répertoriées, le service com.sun.star.chart.ChartTitle contient les deux propriétés suivantes :

String (String)
texte à afficher en tant que titre ou sous-titre.
TextRotation (Long)
angle de rotation du texte en centièmes de degrés.

La légende (com.sun.star.chart.ChartLegend) contient la propriété supplémentaire suivante :

Alignment (Enum)
position d'affichage de la légende (valeur de type com.sun.star.chart.ChartLegendPosition).

L'exemple suivant crée un diagramme avec le titre "Main Title String", le sous-titre "Subtitle String" et une légende. La légende s'affiche au bas du diagramme avec une taille de caractère de 7 points et un arrière-plan gris.

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
 
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
 
Doc = StarDesktop.CurrentComponent
 
Charts = Doc.Sheets(0).Charts
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Chart.HasMainTitle = True
Chart.Title.String = "Main Title String"
Chart.HasSubTitle = True
Chart.Subtitle.String = "Subtitle String"
Chart.HasLegend = True 
Chart.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM
Chart.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Legend.FillColor = RGB(210, 210, 210)
Chart.Legend.CharHeight = 7

Arrière-plan

Chaque diagramme présente une zone d'arrière-plan. La propriété Area de l'objet Chart permet de formater l'arrière-plan :

Area (Object)
zone d'arrière-plan du diagramme (prend en charge le service com.sun.star.chart.ChartArea).

L'arrière-plan du diagramme couvre toute la surface du diagramme, notamment la zone qui se trouve sous le titre, le sous-titre et la légende. Le service com.sun.star.chart.ChartArea associé prend en charge les propriétés de ligne et de remplissage.

Diagramme

La propriété Diagram de l'objet Chart constitue le système de coordonnées (axes et grilles) dans lequel s'affichent les données :

Diagram (Object)
objet constituant le système de coordonnées dans lequel les données sont tracées. Il prend en charge le service com.sun.star.chart.Diagram et :

Les services pris en charge dépendent du type de diagramme (reportez-vous au chapitre Types de diagrammes).

Paroi et plancher

La paroi du diagramme est l'arrière-plan du système de coordonnées dans lequel les données sont tracées. Dans les diagrammes en 3D, il existe généralement deux parois : l'une se trouve derrière les données tracées et l'autre sert de démarcation gauche ou droite, selon la rotation du diagramme. En général, les diagrammes en 3D possèdent également un plancher.

L'objet Diagram fournit les propriétés Wall et Floor :

Wall (Object)
paroi d'arrière-plan du système de coordonnées (prend en charge le service com.sun.star.chart.ChartArea).
Floor (Object)
plancher du diagramme (uniquement pour les diagrammes en 3D, prend en charge le service com.sun.star.chart.ChartArea).

Les objets spécifiés prennent en charge le service com.sun.star.chart.ChartArea qui fournit les propriétés habituelles de ligne et de remplissage (services com.sun.star.drawing.FillProperties et com.sun.star.drawing.LineProperties, reportez-vous au chapitre Dessins et présentations).

L'exemple suivant illustre l'utilisation en tant qu'arrière-plan d'un diagramme d'une image (appelée Sky) déjà présente dans Apache OpenOffice. La paroi est définie sur le bleu.

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
 
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
 
Doc = StarDesktop.CurrentComponent
 
Charts = Doc.Sheets(0).Charts
Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Chart.Area.FillStyle = com.sun.star.drawing.FillStyle.BITMAP
Chart.Area.FillBitmapName = "Sky"
Chart.Area.FillBitmapMode = com.sun.star.drawing.BitmapMode.REPEAT
 
Chart.Diagram.Wall.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Diagram.Wall.FillColor = RGB(00,132,209)

Axes

Apache OpenOffice reconnaît cinq axes que vous pouvez utiliser dans les diagrammes. Dans le scénario le plus simple, il s'agit des axes X et Y. Lorsque vous utilisez des diagrammes en 3D, un axe Z est parfois ajouté. Pour les diagrammes dans lesquels les valeurs des différentes lignes dévient de façon significative l'une de l'autre, Apache OpenOffice fournit des axes X et Y supplémentaires pour des opérations de mises à l'échelle secondaires.

Les propriétés suivantes de l'objet Diagram permettent d'accéder aux axes :

HasXAxis (Boolean)
active l'axe X.
XAxis (Object)
objet contenant des informations détaillées sur l'axe X (prend en charge le service com.sun.star.chart.ChartAxis).
HasXAxisDescription (Boolean)
active les étiquettes des marques d'intervalle de l'axe X.
HasYAxis (Boolean)
active l'axe Y.
YAxis (Object)
objet contenant des informations détaillées sur l'axe Y (prend en charge le service com.sun.star.chart.ChartAxis).
HasYAxisDescription (Boolean)
active les étiquettes des marques d'intervalle de l'axe Y.
HasZAxis (Boolean)
active l'axe Z.
ZAxis (Object)
objet contenant des informations détaillées sur l'axe Z (prend en charge le service com.sun.star.chart.ChartAxis).
HasZAxisDescription (Boolean)
active les étiquettes des marques d'intervalle de l'axe Z.
HasSecondaryXAxis (Boolean)
active l'axe X secondaire.
SecondaryXAxis (Object)
objet contenant des informations détaillées sur l'axe X secondaire (prend en charge le service com.sun.star.chart.ChartAxis).
HasSecondaryXAxisDescription (Boolean)
active les étiquettes des marques d'intervalle de l'axe X secondaire.
HasSecondaryYAxis (Boolean)
active l'axe Y secondaire.
SecondaryYAxis (Object)
objet contenant des informations détaillées sur l'axe Y secondaire (prend en charge le service com.sun.star.chart.ChartAxis).
HasSecondaryYAxisDescription (Boolean)
active les étiquettes des marques d'intervalle de l'axe Y secondaire.

Propriétés des axes

Les objets Axis d'un diagramme Apache OpenOffice prennent en charge le service com.sun.star.chart.ChartAxis. Outre les propriétés de caractère (service com.sun.star.style.CharacterProperties, reportez-vous au chapitre Documents texte) et de ligne (service com.sun.star.drawing.LineStyle, reportez-vous au chapitre Dessins et présentations), il fournit les propriétés suivantes :

Propriétés d'échelle

Max (Double)
valeur maximale de l'axe.
Min (Double)
valeur minimale de l'axe.
Origin (Double)
point d'intersection des axes.
StepMain (Double)
distance entre les marques d'intervalle principal.
StepHelp (Double)
distance entre les marques d'intervalle secondaire (abandonné depuis OpenOffice.org 3.0 ; utilisez plutôt la propriété StepHelpCount).
StepHelpCount (Long)
contient le nombre d'intervalles secondaires contenus dans un intervalle principal. Par exemple, si la valeur de StepHelpCount est 5, l'intervalle principal est divisé en 5 parties, ce qui produit 4 marque de graduation secondaires (disponible depuis OpenOffice.org 3.0).
AutoMax (Boolean)
la valeur maximale de l'axe est calculée automatiquement lorsque cette propriété est définie sur True.
AutoMin (Boolean)
la valeur minimale de l'axe est calculée automatiquement lorsque cette propriété est définie sur True.
AutoOrigin (Boolean)
l'origine est déterminée automatiquement lorsque cette propriété est définie sur True.
AutoStepMain (Boolean)
la valeur de StepMain est déterminée automatiquement lorsque cette propriété est définie sur True.
AutoStepHelp (Boolean)
la valeur de StepHelpCount est déterminée automatiquement lorsque cette propriété est définie sur True.
Logarithmic (Boolean)
ajuste les axes de manière logarithmique (et non de manière linéaire).
ReverseDirection (Boolean)
détermine si l'orientation des axes est mathématique ou inversée (disponible depuis OpenOffice.org 2.4).

Propriétés d'étiquette

DisplayLabels (Boolean)
active l'étiquette de texte aux marques d'intervalle.
TextRotation (Long)
angle de rotation de l'étiquette de texte en centièmes de degrés.
ArrangeOrder (enum)
le texte de l'étiquette peut être divisée afin de s'afficher sur deux lignes (valeur correspondant à com.sun.star.chart.ChartAxisArrangeOrderType).
TextBreak (Boolean)
autorise les retours à la ligne dans les étiquettes des axes.
TextCanOverlap (Boolean)
autorise le chevauchement des étiquettes des axes.
NumberFormat (Long)
format numérique à utiliser avec les étiquettes des axes.
LinkNumberFormatToSource (Boolean)
détermine le format numérique à utiliser : celui qui est fourni par le document container ou celui de la propriété NumberFormat (depuis OpenOffice.org 2.3).

Propriétés de marque d'intervalle

Marks (Const)
détermine la position des marques d'intervalle principal (valeurs correspondant à com.sun.star.chart.ChartAxisMarks).
HelpMarks (Const)
détermine la position des marques d'intervalle secondaire (valeurs correspondant à com.sun.star.chart.ChartAxisMarks).

Diagrammes en barres uniquement

Overlap (Long)
pourcentage spécifiant l'étendue de superposition des barres des différents jeux de données. À 100 %, les barres s'affichent en superposition complète, à - 100 %, une distance égale à la largeur d'une barre les sépare.
GapWidth (long)
pourcentage spécifiant la distance possible entre les différents groupes de barres d'un diagramme. À 100 %, la distance correspond à la largeur d'une barre.

Grilles

Pour les axes principaux, il est possible d'afficher des grilles et des sous-grilles correspondant respectivement aux intervalles principaux et secondaires. Les propriétés suivantes de l'objet Diagram permettent d'accéder aux grilles :

HasXAxisGrid (Boolean)
active la grille principale de l'axe X.
XMainGrid (Object)
objet contenant des informations détaillées sur la grille principale de l'axe X (prend en charge le service com.sun.star.chart.ChartGrid).
HasXAxisHelpGrid (Boolean)
active la grille secondaire de l'axe X.
XHelpGrid (Object)
objet contenant des informations détaillées sur la grille secondaire de l'axe X (prend en charge le service com.sun.star.chart.ChartGrid).

De même, pour les axes Y et Z :

HasYAxisGrid (Boolean)
active la grille principale de l'axe Y.
YMainGrid (Object)
objet contenant des informations détaillées sur la grille principale de l'axe Y (prend en charge le service com.sun.star.chart.ChartGrid).
HasYAxisHelpGrid (Boolean)
active la grille secondaire de l'axe Y.
YHelpGrid (Object)
objet contenant des informations détaillées sur la grille secondaire de l'axe Y (prend en charge le service com.sun.star.chart.ChartGrid).
HasZAxisGrid (Boolean)
active la grille principale de l'axe Z.
ZMainGrid (Object)
objet contenant des informations détaillées sur la grille principale de l'axe Z (prend en charge le service com.sun.star.chart.ChartGrid).
HasZAxisHelpGrid (Boolean)
active la grille secondaire de l'axe Z.
ZHelpGrid (Object)
objet contenant des informations détaillées sur la grille secondaire de l'axe Z (prend en charge le service com.sun.star.chart.ChartGrid).

L'objet Grid est basé sur le service com.sun.star.chart.ChartGrid, qui prend en charge les propriétés de ligne du service com.sun.star.drawing.LineStyle (reportez-vous au chapitre Dessins et présentations).

Titres des axes

Il est possible d'afficher un titre supplémentaire pour chacun des axes. Les propriétés suivantes de l'objet Diagram permettent d'accéder aux titres des axes :

HasXAxisTitle (Boolean)
active le titre de l'axe X.
XAxisTitle (Object)
objet contenant des informations détaillées sur le titre de l'axe X (prend en charge le service com.sun.star.chart.ChartTitle).

De même, pour les axes Y et Z :

HasYAxisTitle (Boolean)
active le titre de l'axe Y.
YAxisTitle (Object)
objet contenant des informations détaillées sur le titre de l'axe Y (prend en charge le service com.sun.star.chart.ChartTitle).
HasZAxisTitle (Boolean)
active le titre de l'axe Z.
ZAxisTitle (Object)
objet contenant des informations détaillées sur le titre de l'axe Z (prend en charge le service com.sun.star.chart.ChartTitle).

De même, pour les axe secondaires (disponible depuis OpenOffice.org 3.0) :

HasSecondaryXAxisTitle (Boolean)
active le titre de l'axe X secondaire.
SecondXAxisTitle (Object)
objet contenant des informations détaillées sur le titre de l'axe X secondaire (prend en charge le service com.sun.star.chart.ChartTitle).
HasSecondaryYAxisTitle (Boolean)
active le titre de l'axe Y secondaire.
SecondYAxisTitle (Object)
objet contenant des informations détaillées sur le titre de l'axe Y secondaire (prend en charge le service com.sun.star.chart.ChartTitle).

Les objets de formatage des titres des axes sont basés sur le service com.sun.star.chart.ChartTitle, également utilisé pour les titres de diagramme.

Exemple

L'exemple suivant crée un diagrammes en lignes. La couleur blanche est définie pour la paroi arrière du diagramme. Les axes X et Y présentent une grille grise facilitant l'orientation visuelle. La valeur minimale de l'axe Y est fixée à 0 et sa valeur maximale à 100, de manière à conserver la résolution du diagramme même en cas de modification des valeurs. L'axe X pointe dans la direction inverse, de droite à gauche. Enfin, un titre a été ajouté pour l'axe X.

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 = StarDesktop.CurrentComponent
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"

Diagrammes en 3D

Il est possible d'afficher la plupart des diagrammes de Apache OpenOffice avec des images 3D. Les propriétés suivantes sont fournies pour les diagrammes en 3D dans l'objet Diagram :

Dim3D (Boolean)
active l'affichage en 3D.
Deep (Boolean)
les séries sont disposées les unes derrière les autres dans la direction Z.
RightAngledAxes (Boolean)
active un mode d'affichage en 3D dans lequel les axes X et Y forment un angle droit dans la projection (disponible depuis OpenOffice.org 2.3).
D3DScenePerspective (Enum)
détermine si les objets 3D sont dessinés en perspective ou selon une projection parallèle(valeurs correspondant à com.sun.star.drawing.ProjectionMode).
Perspective (Long)
perspective des diagrammes en 3D ( [0,100] ) (disponible depuis OpenOffice.org 2.4.1).
RotationHorizontal (Long)
rotation horizontale des diagrammes en 3D en degrés ( [-180,180] ) (disponible depuis OpenOffice.org 2.4.1).
RotationVertical (Long)
rotation verticale des diagrammes en 3D en degrés ( [-180,180] ) (disponible depuis OpenOffice.org 2.4.1).

L'exemple suivant crée un diagramme de surface en 3D.

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 = StarDesktop.CurrentComponent
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

Diagrammes empilés

Les diagrammes empilés sont des diagrammes organisés à l'aide de plusieurs valeurs individuelles empilées pour produire une valeur totale. Cette vue affiche non seulement les valeurs individuelles, mais également une présentation de toutes les valeurs.

Dans Apache OpenOffice, il est possible d'afficher divers types de diagrammes sous forme empilée. Tous ces diagrammes prennent en charge le service com.sun.star.chart.StackableDiagram qui lui-même prend en charge les propriétés suivantes :

Stacked (Boolean)
active le mode de visualisation des éléments empilés.
Percent (Boolean)
affiche la répartition en pourcentage plutôt qu'en valeurs absolues.
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools