🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Probleme mit der Chart-Achsenskalierung

Alles zur Programmierung im LibreOffice.
Antworten
tomgom
Beiträge: 7
Registriert: Sa 30. Okt 2010, 18:24

Probleme mit der Chart-Achsenskalierung

Beitrag von tomgom » Di 26. Feb 2013, 18:03

Hallo zusammen,

ich habe nach dem Update ein Problem mit der Achsenskalierung in Charts (Diagramme).

Aus einer CSV-DAtei erstelle ich mir eine Wertetabelle mit Werten für die X-Achse im Format hh:mm:ss, wobei alle 2 Sek. ein Meßwert erfaßt wird.

In den alten Versionen (bis LO 3.6) konnte ich dann diese Werte mittels "x.StepMain" die Skalierung der Hauptwerte (in meinem Fall -> alle 5 min) vornehmen.
Jetzt (unter LO 4.0) wird ca. alle 20 Sek. ein x-Achsenwert angezeigt - und damit wird die Lesbarkeit der x-Achse ziemlich schlecht.

weiß jemand eine Lösung ?

Code: Alles auswählen

Sub Diagramm_zeichnen()
	 
	 Dim oTab
	 Dim oSheet
	 Dim oChart
	 Dim oChartDoc
	 Dim oAxisX
	 Dim oAxisY
	 Dim oXTitle
	 Dim oYTitle
	 Dim oGrid
	 Dim oGraph
	 Dim oDiagram
	 Dim iZ as Integer
 
	 Dim RangeAddress(0) as new com.sun.star.table.CellRangeAddress
	 Dim oDash as new com.sun.star.drawing.LineDash
	 Dim aRect as new com.sun.star.awt.Rectangle
 
	 Diagramm_formatieren 	 
 
	'# Groesse des Diagrammes
	 with aRect
       .X = 0 : .Y = 0 : .Width = 28000 : .Height = 18000
	 end with

	'# Festlegen des Datenbereiches
	 RangeAddress(0).Sheet = 1
	 RangeAddress(0).StartColumn = 1
	 RangeAddress(0).StartRow = 0
	 RangeAddress(0).EndColumn = 5
	 RangeAddress(0).EndRow = iAnzahlDatensaetze
	
	 '# Anzeigen des Fensters
     oDoc.getCurrentController().getFrame().getContainerWindow().Visible= TRUE

	 '# Einfuegen einer dritten Tabelle "Diagramm" in das HauptSheet
	 oTab = oDoc.createInstance("com.sun.star.sheet.Spreadsheet")
	 oDoc.sheets.insertByName("Diagramm", oTab)
	 oDoc.sheets.moveByName("Diagramm",0)
	 oDOc.sheets.moveByName("Wertetabelle",1)

	 oSheet = oDoc.Sheets.getByName("Diagramm")

	 '# Einfuegen des Charts in die Tabelle "Diagramm"
	 oSheet.Charts.addNewByName("AP", aRect, RangeAddress(), True, True)
	 oChart = oSheet.Charts.getByName( "AP" )
	 oChartDoc = oChart.getEmbeddedObject()
	 
	 oChartDoc.FirstDiagram.CoordinateSystems(0).ChartTypes(0).DataSeries(0).LineWidth = 50 
	 oChartDoc.FirstDiagram.CoordinateSystems(0).ChartTypes(0).DataSeries(1).LineWidth = 50
 	 oChartDoc.FirstDiagram.CoordinateSystems(0).ChartTypes(0).DataSeries(2).LineWidth = 50
 	 oChartDoc.FirstDiagram.CoordinateSystems(0).ChartTypes(0).DataSeries(3).LineWidth = 50	 	
 
 	'# Öffnen des Dialoges für die Bemerkung
 	Dialog_Bemerkung_starten
 
	'# Bildschirmausgabe sperren
	oChartDoc.lockControllers()
	
	oChartDoc.HasMainTitle = True
	oChartDoc.Title.String =  "Kurzzeiterhitzung vom "& dDatum
	
	'Abfrage, ob Untertiteltext vorhanden
	if sUnterTit <> "" then
	
		oChartDoc.HasSubTitle = True
		oChartDoc.SubTitle.String = sUnterTit
	end if
	
	oChartDoc.HasLegend = True
	oChartDoc.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM
	oChartDoc.Legend.CharHeight = 9
   
	'# Diagramm erstellen
	oDiagram = oChartDoc.createInstance("com.sun.star.chart.LineDiagram")
	oChartDoc.setDiagram( oDiagram )
	oDiagram.Lines = True
 
	oChartDoc.Diagram.HasXAxis = True
	oChartDoc.Diagram.HasXAxisDescription = True
	oChartDoc.Diagram.HasXAxisGrid = False
	oChartDoc.Diagram.HasYAxis = True
	oChartDoc.Diagram.HasYAxisGrid = True
	oChartDoc.Diagram.HasYAxisDescription = True

	oGrid = oChartDoc.Diagram.YMainGrid	
		
	oDash.Dots = 1
	oDash.DotLen = 0
	oDash.Dashes = 0
	oDash.DashLen = 0
	oDash.Distance = 400
	oGrid.LineStyle = 1 'com.sun.star.drawing.DASH
	'# oGrid.LineDash = oDash '# ->> unter LO 4.0 kommt es zur Fehlermeldung!
	
	oAxisX = oChartDoc.Diagram.XAxis
	oXTitle = oChartDoc.Diagram.getXAxisTitle()
	oXTitle.String =   "Zeit (hh:mm:ss)"

	oAxisX.CharHeight = 8
	oAxisX.CharFontName = "Arial"
	oAxisX.TextRotation = 9000
	oAxisX.StepMain = 5
	
	oAxisY = oChartDoc.Diagram.YAxis
	oYTitle = oChartDoc.Diagram.getYAxisTitle()
	oYTitle.String =   "PE(PE)/T(°C)/p(bar)/°v(hl/h)"
	
	oAxisY.CharHeight = 10
	oAxisY.CharFontName = "Arial"
	oAxisY.StepMain = 5
	oAxisY.NumberFormat = 0 

	oChartDoc.unlockControllers()
End Sub

Sub Diagramm_zeigen

	Dim oSheet as Object
	Dim oView  as Object
	
	oSheet = oDoc.Sheets().getByName("Diagramm")
	oView = oDoc.CurrentController
    oView.setActiveSheet(oSheet) 
end sub

pmoegenb

Re: Probleme mit der Chart-Achsenskalierung

Beitrag von pmoegenb » Sa 2. Mär 2013, 16:27

tomgom hat geschrieben:In den alten Versionen (bis LO 3.6) konnte ich dann diese Werte mittels "x.StepMain" die Skalierung der Hauptwerte (in meinem Fall -> alle 5 min) vornehmen. Jetzt (unter LO 4.0) wird ca. alle 20 Sek. ein x-Achsenwert angezeigt - und damit wird die Lesbarkeit der x-Achse ziemlich schlecht.
Mit LibO 4.0 meinst Du sicherlich LibO 4.0.0 und mit LibO 3.6 LibO 3.6.5. LibO 4.0.0 ist bekannt dafür, dass diese Version etliche Macken hat. Ob diese in der Version 4.0.1.2 (RC) ausgemerzt sind, musst Du testen.

The Document Foundation hat ja vor dem Einsatz von LibO 4.0.0 mit den nachfolgendem Hinweis gewarnt, ich zitiere:

Dies ist LibreOffice 4.0.0 - mit aller Sorgfalt von der LibreOffice-Community entwickelt und nun präsentiert.
Da dies die erste Version des neuen LibreOffice 4.0 ist, empfehlen wir unbedingt, zuerst die Versionshinweise zu lesen.
Konservativen Endanwendern empfehlen wir weiterhin die aktuelle Version von LibreOffice 3.6, die Sie über den Link "System, Version oder Sprache ändern" erreichen.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten