Struttura dei diagrammi

From Apache OpenOffice Wiki
Jump to: navigation, search


La struttura di un diagramma, e pertanto l'elenco di servizi e interfacce supportate, dipende dal tipo di diagramma. Ad esempio, i metodi e le proprietà dell'asse Z sono disponibili solo nei diagrammi 3D, ma non nei diagrammi 2D. Nei grafici a torta, non vi sono interfacce per lavorare con gli assi.

Titolo, sottotitolo e legenda

Titolo, sottotitolo e legenda fanno parte degli elementi base di ogni diagramma. L'oggetto Chart fornisce le seguenti proprietà per l'amministrazione degli elementi:

HasMainTitle (Boolean)
Attiva il titolo
Title (Object)
Oggetto con informazioni dettagliate sul titolo del diagramma (supporta il servizio com.sun.star.chart.ChartTitle)
HasSubTitle(Boolean)
Attiva il sottotitolo
Subtitle (Object)
Oggetto con informazioni dettagliate sul sottotitolo del diagramma (supporta il servizio com.sun.star.chart.ChartTitle)
HasLegend (Boolean)
Attiva la legenda
Legend (Object)
Oggetto con informazioni dettagliate sulla legenda (supporta il servizio com.sun.star.chart.ChartLegend)

Entrambi i servizi com.sun.star.chart.ChartTitle e com.sun.star.chart.ChartLegend supportano il servizio com.sun.star.drawing.Shape. Gli utenti hanno pertanto l'opportunità di determinare la posizione e le dimensioni dell'elemento utilizzando le proprietà Position e Size. Poiché le dimensioni della legenda e dei titoli sono calcolate automaticamente in base al contenuto corrente e all'altezza dei caratteri, ad esempio, la proprietà delle dimensioni fornisce l'accesso in sola lettura.

Per la formattazione degli elementi sono disponibili altre proprietà di riempimento e linee (i servizi com.sun.star.drawing.FillProperties e com.sun.star.drawing.LineProperties) nonché le proprietà dei caratteri (servizio com.sun.star.style.CharacterProperties).

com.sun.star.chart.ChartTitle contiene non solo le proprietà di formattazione citate, ma anche le altre due proprietà seguenti:

String (String)
Testo da visualizzare come titolo o sottotitolo
TextRotation (Long)
Angolo di rotazione del testo in centesimi di grado

La legenda (servizio com.sun.star.chart.ChartLegend) contiene la seguente proprietà addizionale:

Alignment (Enum)
Posizione in cui compare la legenda (valore di tipo com.sun.star.chart.ChartLegendPosition)

L'esempio seguente crea un diagramma e vi assegna "Main Title String" come titolo, Subtitle String" come sottotitolo e una legenda. La legenda ha un colore di sfondo grigio, è situata in fondo al diagramma e ha dimensioni del carattere di 7 punti.

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

Sfondo

Ogni diagramma ha un'area di sfondo. L'oggetto Chart fornisce la proprietà Area per formattare lo sfondo:

Area (Object)
Area di sfondo del diagramma (supporta il servizio com.sun.star.chart.ChartArea)

Lo sfondo di un diagramma copre la sua area completa, compresa l'area sotto al titolo, al sottotitolo e alla legenda. Il servizio com.sun.star.chart.ChartArea associato supporta le proprietà di linee e riempimento.

Diagramma

L'oggetto Chart fornisce la proprietà Diagram che forma il sistema di coordinate con assi e griglie, in cui i dati verranno visualizzati:

Diagram (Object)
Oggetto che forma il sistema di coordinate in cui vengono tracciati i dati. Supporta il servizio com.sun.star.chart.Diagram e:

I servizi supportati dipendono dal tipo di diagramma (vedere Tipi di diagrammi).

Pareti e basi dei diagrammi

La parete del diagramma è lo sfondo del sistema di coordinate in cui vengono tracciati i dati. Per i diagrammi 3D esistono generalmente due pareti: una dietro l'area dei dati e una come demarcazione a sinistra o a destra. Ciò dipende dalla rotazione del diagramma. I diagrammi 3D hanno in genere anche una base o pavimento.

L'oggetto Diagram fornisce le proprietà per pareti e basi:

Wall (Object)
Parete di sfondo del sistema di coordinate (supporta il servizio com.sun.star.chart.ChartArea)
Floor (Object)
Pannello della base del sistema di coordinate (solo per diagrammi 3D, supporta il servizio com.sun.star.chart.ChartArea)

Gli oggetti specificati supportano il servizio com.sun.star.chart.ChartArea, che fornisce le classiche proprietà di riempimento e linee (servizi com.sun.star.drawing.FillProperties e com.sun.star.drawing.LineProperties, consultare il capitolo Disegni e presentazioni).

L'esempio seguente mostra come l'immagine (denominata Cielo) già contenuta in Apache OpenOffice può essere utilizzata come sfondo per un diagramma. Il colore impostato per la parete è l'azzurro.

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)

Assi

Apache OpenOffice riconosce cinque diversi assi utilizzabili in un diagramma. Nel suo scenario più semplice, sono gli assi X e Y. Quando si utilizzano i diagrammi 3D, viene talvolta fornito anche un asse Z. Per i diagrammi in cui i valori delle diverse righe di dati si scostano reciprocamente in modo significativo, Apache OpenOffice fornisce un secondo asse X e un secondo asse Y per le altre operazioni di scalatura.

L'oggetto Diagram fornisce le seguenti proprietà per accedere agli assi:

HasXAxis (Boolean)
Attiva l'asse X.
XAxis (Object)
Oggetto con informazioni dettagliate sull'asse X (supporta il servizio com.sun.star.chart.ChartAxis)
HasXAxisDescription (Boolean)
Attiva le etichette per gli indicatori di intervallo dell'asse X
HasYAxis (Boolean)
Attiva l'asse Y
YAxis (Object)
Oggetto con informazioni dettagliate sull'asse Y (supporta il servizio com.sun.star.chart.ChartAxis)
HasYAxisDescription (Boolean)
Attiva le etichette per gli indicatori di intervallo dell'asse Y
HasZAxis (Boolean)
Attiva l'asse Z
ZAxis (Object)
Oggetto con informazioni dettagliate sull'asse Z (supporta il servizio com.sun.star.chart.ChartAxis)
HasZAxisDescription (Boolean)
Attiva le etichette per gli indicatori di intervallo dell'asse Z
HasSecondaryXAxis (Boolean)
Attiva l'asse X secondario
SecondaryXAxis (Object)
Oggetto con informazioni dettagliate sull'asse X secondario (supporta il servizio com.sun.star.chart.ChartAxis)
HasSecondaryXAxisDescription (Boolean)
Attiva le etichette per gli indicatori di intervallo dell'asse X secondario
HasSecondaryYAxis (Boolean)
Attiva l'asse Y secondario
SecondaryYAxis (Object)
Oggetto con informazioni dettagliate sull'asse X secondario (supporta il servizio com.sun.star.chart.ChartAxis)
HasSecondaryYAxisDescription (Boolean)
Attiva le etichette per gli indicatori di intervallo dell'asse Y secondario

Proprietà degli assi

Gli oggetti assi di un diagramma di Apache OpenOffice supportano il servizio com.sun.star.chart.ChartAxis. Oltre alle proprietà per i caratteri (servizio com.sun.star.style.CharacterProperties, consultare il capitolo Documenti di testo) e per le linee (servizio com.sun.star.drawing.LineStyle, consultare il capitolo Disegni e presentazioni), fornisce anche le seguenti proprietà:

Proprietà di scalatura:

Max (Double)
Valore massimo per l'asse
Min (Double)
Valore minimo per l'asse
Origin (Double)
Punto di intersezione per l'attraversamento degli assi
StepMain (Double)
Distanza tra gli indicatori di intervallo primari
StepHelp (Double)
Distanza tra gli indicatori di intervallo secondari (obsoleta da OpenOffice.org 3.0; utilizzare la proprietà StepHelpCount)
StepHelpCount (Long)
Contiene il numero di intervalli secondari all'interno di un intervallo primario. Ad esempio, se la proprietà StepHelpCount è pari a 5, l'intervallo primario viene suddiviso in 5 parti e vengono prodotti 4 segni di graduazioni secondari. (Disponibile a partire da OpenOffice.org 3.0)
AutoMax (Boolean)
Il valore massimo dell'asse viene calcolato automaticamente quando è impostato su true
AutoMin (Boolean)
Il valore minimo dell'asse viene calcolato automaticamente quando è impostato su true
AutoOrigin (Boolean)
L'origine viene determinata automaticamente quando è impostato su true
AutoStepMain (Boolean)
StepMain viene determinato automaticamente quando viene impostato su true
AutoStepHelp (Boolean)
StepHelpCount viene determinato automaticamente quando è impostato su true
Logarithmic (Boolean)
Scala gli assi in modo logaritmico (invece che lineare)
ReverseDirection (Boolean)
Determina se l'orientamento degli assi è matematico o invertito. (Disponibile a partire da OpenOffice.org 2.4)

Proprietà delle etichette:

DisplayLabels (Boolean)
Attiva l'etichetta di testo in corrispondenza degli indicatori di intervallo
TextRotation (Long)
Angolo di rotazione dell'etichetta di testo degli assi, espresso in centesimi di grado
ArrangeOrder (enum)
L'etichetta potrebbe essere sfalsata, pertanto vengono posizionati in modo alternato su due linee (valori conformi a com.sun.star.chart.ChartAxisArrangeOrderType)
TextBreak (Boolean)
Consente le interruzioni di riga nelle etichette degli assi
TextCanOverlap (Boolean)
Consente una sovrapposizione delle etichette degli assi.
NumberFormat (Long)
Formato numerico da utilizzare con le etichette degli assi
LinkNumberFormatToSource (Boolean)
Determina se utilizzare il formato numerico fornito dal documento contenitore o dalla proprietà NumberFormat (a partire da OpenOffice.org 2.3)

Proprietà degli indicatori di intervallo:

Marks (Const)
Determina la posizione degli indicatori di intervallo primari (valori conformi a com.sun.star.chart.ChartAxisMarks)
HelpMarks (Const)
Determina la posizione degli indicatori di intervallo secondari (valori conformi a com.sun.star.chart.ChartAxisMarks)

Solo per diagrammi a barre:

Overlap (Long)
Valore percentuale che specifica in che misura le barre dei diversi gruppi di dati possono sovrapporsi (al 100%, le barre sono visualizzate completamente sovrapposte, a -100%, vi è tra esse una distanza pari alla larghezza di una barra)
GapWidth (long)
Valore percentuale che specifica la distanza che può esservi tra i diversi gruppi di barre di un diagramma (al 100%, vi è tra esse una distanza pari alla larghezza di una barra)

Griglie

Per gli assi principali, le griglie e le sottogriglie possono essere visualizzate in corrispondenza agli intervalli primari e secondari. L'oggetto Diagram fornisce le seguenti proprietà per accedere alle griglie:

HasXAxisGrid (Boolean)
Attiva la griglia principale per l'asse X
XMainGrid (Object)
Oggetto con informazioni dettagliate sulla griglia principale per l'asse X (supporta il servizio com.sun.star.chart.ChartGrid)
HasXAxisHelpGrid (Boolean)
Attiva la griglia ausiliaria per l'asse X.
XHelpGrid (Object)
Oggetto con informazioni dettagliate sulla griglia ausiliaria per l'asse X (supporta il servizio com.sun.star.chart.ChartGrid)

Lo stesso vale per gli assi Y e Z:

HasYAxisGrid (Boolean)
Attiva la griglia principale per l'asse Y
YMainGrid (Object)
Oggetto con informazioni dettagliate sulla griglia principale per l'asse Y (supporta il servizio com.sun.star.chart.ChartGrid)
HasYAxisHelpGrid (Boolean)
Attiva la griglia ausiliaria per l'asse Y
YHelpGrid (Object)
Oggetto con informazioni dettagliate sulla griglia ausiliaria per l'asse Y (supporta il servizio com.sun.star.chart.ChartGrid)
HasZAxisGrid (Boolean)
Attiva la griglia principale per l'asse Z
ZMainGrid (Object)
Oggetto con informazioni dettagliate sulla griglia principale per l'asse Z (supporta il servizio com.sun.star.chart.ChartGrid)
HasZAxisHelpGrid (Boolean)
Attiva la griglia ausiliaria per l'asse Z
ZHelpGrid (Object)
Oggetto con informazioni dettagliate sulla griglia ausiliaria per l'asse Z (supporta il servizio com.sun.star.chart.ChartGrid)

L'oggetto per la griglia è basato sul servizio com.sun.star.chart.ChartGrid, che a sua volta supporta le proprietà delle linee del servizio com.sun.star.drawing.LineStyle (consultare il capitolo Disegni e presentazioni).

Titolo degli assi

Per tutti gli assi può essere visualizzato un titolo aggiuntivo. L'oggetto Diagram fornisce le seguenti proprietà per accedere al titolo degli assi:

HasXAxisTitle (Boolean)
Attiva il titolo dell'asse X
XAxisTitle (Object)
Oggetto con informazioni dettagliate sul titolo dell'asse X (supporta il servizio com.sun.star.chart.ChartTitle)

Lo stesso vale per gli assi Y e Z:

HasYAxisTitle (Boolean)
Attiva il titolo dell'asse Y
YAxisTitle (Object)
Oggetto con informazioni dettagliate sul titolo dell'asse Y (supporta il servizio com.sun.star.chart.ChartTitle)
HasZAxisTitle (Boolean)
Attiva il titolo dell'asse Z
ZAxisTitle (Object)
Oggetto con informazioni dettagliate sul titolo dell'asse Z (supporta il servizio com.sun.star.chart.ChartTitle)

Lo stesso vale anche per gli assi secondari (disponibile a partire da OpenOffice.org 3.0):

HasSecondaryXAxisTitle (Boolean)
Attiva il titolo dell'asse X secondario.
SecondXAxisTitle (Object)
Oggetto con informazioni dettagliate sul titolo dell'asse X secondario (supporta il servizio com.sun.star.chart.ChartTitle)
HasSecondaryYAxisTitle (Boolean)
Attiva il titolo dell'asse Y secondario.
SecondYAxisTitle (Object)
Oggetto con informazioni dettagliate sul titolo dell'asse Y secondario (supporta il servizio com.sun.star.chart.ChartTitle)

Gli oggetti per la formattazione del titolo degli assi sono basati sul servizio com.sun.star.chart.ChartTitle, utilizzato anche per i titoli dei diagrammi.

Esempio

L'esempio seguente crea un diagramma a linee. Il colore della parete posteriore del diagramma è impostato sul bianco. Gli assi X e Y hanno una griglia grigia per l'orientamento visivo. Il valore minimo dell'asse Y è fissato su 0, mentre quello massimo è 100, in modo che la risoluzione del diagramma venga conservata anche se i valori vengono modificati. L'asse X punta in direzione inversa da destra a sinistra ed è stato aggiunto un titolo per l'asse 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"

Diagrammi 3D

La maggior parte dei diagrammi di Apache OpenOffice può essere visualizzata con immagini 3D. Le seguenti proprietà vengono fornite per i diagrammi 3D in corrispondenza dell'oggetto Diagram:

Dim3D (Boolean)
Attiva la visualizzazione 3D
Deep (Boolean)
Le barre vengono disposte l'una dietro all'altra nella direzione dell'asse Z
RightAngledAxes (Boolean)
Attiva una modalità di visualizzazione 3D in cui gli assi X e Y formano un angolo retto nella proiezione. (Disponibile a partire da OpenOffice.org 2.3)
D3DScenePerspective (Enum)
Definisce se gli oggetti 3D devono essere tracciati in proiezione prospettica o parallela. (Valori conformi a com.sun.star.drawing.ProjectionMode)
Perspective (Long)
Prospettiva di diagrammi 3D ( [0,100] ) (disponibile a partire da OpenOffice.org 2.4.1)
RotationHorizontal (Long)
Rotazione orizzontale di diagrammi 3D espressa in gradi ( [-180,180] ) (disponibile a partire da OpenOffice.org 2.4.1)
RotationVertical (Long)
Rotazione verticale di diagrammi 3D espressa in gradi ( [-180,180] ) (disponibile a partire da OpenOffice.org 2.4.1)

Nel seguente esempio viene creato un diagramma ad area 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

Diagrammi sovrapposti

I diagrammi sovrapposti sono diagrammi organizzati con diversi singoli valori impilati per produrre un valore totale. Questa vista mostra non solo i singoli valori, ma anche una panoramica di tutti i valori.

In Apache OpenOffice, vari tipi di diagrammi possono essere visualizzati in forma sovrapposta. Tutti questi diagrammi supportano il servizio com.sun.star.chart.StackableDiagram, che a sua volta fornisce le proprietà seguenti:

Stacked (Boolean)
Attiva la modalità di visualizzazione sovrapposta
Percent (Boolean)
Anziché i valori assoluti, visualizza la loro distribuzione percentuale.
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools