From 92ee7767f81f7a15b8773ed97356f01ecac68d0c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 16 May 2014 15:26:14 +0300 Subject: Implement axis label autorotation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTRD-2857 Change-Id: I158abb75272813cf7eb5d4b419e24325389d940e Reviewed-by: Tomi Korpipää --- examples/datavisualization/bars/graphmodifier.cpp | 3 +++ examples/datavisualization/qmlbars/doc/src/qmlbars.qdoc | 3 +++ examples/datavisualization/qmlbars/qml/qmlbars/Axes.qml | 15 +++++++++++---- examples/datavisualization/qmlbars/qml/qmlbars/main.qml | 1 + examples/datavisualization/surface/doc/src/surface.qdoc | 4 ++-- examples/datavisualization/surface/surfacegraph.cpp | 3 +++ 6 files changed, 23 insertions(+), 6 deletions(-) (limited to 'examples') diff --git a/examples/datavisualization/bars/graphmodifier.cpp b/examples/datavisualization/bars/graphmodifier.cpp index d19910ec..dc5d92c9 100644 --- a/examples/datavisualization/bars/graphmodifier.cpp +++ b/examples/datavisualization/bars/graphmodifier.cpp @@ -68,9 +68,12 @@ GraphModifier::GraphModifier(Q3DBars *bargraph) m_temperatureAxis->setSubSegmentCount(m_subSegments); m_temperatureAxis->setRange(m_minval, m_maxval); m_temperatureAxis->setLabelFormat(QString(QStringLiteral("%.1f ") + celsiusString)); + m_temperatureAxis->setLabelAutoRotation(90.0f); m_yearAxis->setTitle("Year"); + m_yearAxis->setLabelAutoRotation(40.0f); m_monthAxis->setTitle("Month"); + m_monthAxis->setLabelAutoRotation(40.0f); m_graph->setValueAxis(m_temperatureAxis); m_graph->setRowAxis(m_yearAxis); diff --git a/examples/datavisualization/qmlbars/doc/src/qmlbars.qdoc b/examples/datavisualization/qmlbars/doc/src/qmlbars.qdoc index 4034cdd2..01131388 100644 --- a/examples/datavisualization/qmlbars/doc/src/qmlbars.qdoc +++ b/examples/datavisualization/qmlbars/doc/src/qmlbars.qdoc @@ -88,6 +88,9 @@ \snippet qmlbars/qml/qmlbars/Axes.qml 0 + We also set automatic axis label rotation to make axis labels more readable at low camera + angles. + \section1 Switching series In the \c main.qml, we set up the graph and various UI elements. There are three interesting diff --git a/examples/datavisualization/qmlbars/qml/qmlbars/Axes.qml b/examples/datavisualization/qmlbars/qml/qmlbars/Axes.qml index a8257995..f316eef5 100644 --- a/examples/datavisualization/qmlbars/qml/qmlbars/Axes.qml +++ b/examples/datavisualization/qmlbars/qml/qmlbars/Axes.qml @@ -17,33 +17,40 @@ ****************************************************************************/ import QtQuick 2.1 -import QtDataVisualization 1.0 +import QtDataVisualization 1.1 Item { property alias column: columnAxis + property alias row: rowAxis property alias value: valueAxis property alias total: totalAxis - // For row labels we can use row labels from data proxy, so default axis - // suffices for rows. - // Custom labels for columns, since the data contains abbreviated month names. //! [0] CategoryAxis3D { id: columnAxis labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] + labelAutoRotation: 30 } //! [0] CategoryAxis3D { id: totalAxis labels: ["Yearly total"] + labelAutoRotation: 30 + } + CategoryAxis3D { + // For row labels we can use row labels from data proxy, no labels defined for rows. + id: rowAxis + labelAutoRotation: 30 } + ValueAxis3D { id: valueAxis min: 0 max: 35 labelFormat: "%.2f M\u20AC" title: "Monthly income" + labelAutoRotation: 90 } } diff --git a/examples/datavisualization/qmlbars/qml/qmlbars/main.qml b/examples/datavisualization/qmlbars/qml/qmlbars/main.qml index cc15dd50..6b9efeca 100644 --- a/examples/datavisualization/qmlbars/qml/qmlbars/main.qml +++ b/examples/datavisualization/qmlbars/qml/qmlbars/main.qml @@ -103,6 +103,7 @@ Rectangle { barSpacingRelative: false scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeftHigh columnAxis: graphAxes.column + rowAxis: graphAxes.row valueAxis: graphAxes.value //! [4] diff --git a/examples/datavisualization/surface/doc/src/surface.qdoc b/examples/datavisualization/surface/doc/src/surface.qdoc index 31b41c59..af74bd58 100644 --- a/examples/datavisualization/surface/doc/src/surface.qdoc +++ b/examples/datavisualization/surface/doc/src/surface.qdoc @@ -85,8 +85,8 @@ \c {Sqrt & Sin} radio button, the selected series is activated with the following code. First we set the decorative issues like enable the grid for the surface and select the flat shading mode. Next lines define the axis label format and value - ranges. Finally we make sure the correct series is added to the - graph: + ranges. Automatic label rotation is set to improve label readability at low camera angles. + Finally we make sure the correct series is added to the graph: \snippet surface/surfacegraph.cpp 3 diff --git a/examples/datavisualization/surface/surfacegraph.cpp b/examples/datavisualization/surface/surfacegraph.cpp index d7524fbc..172b4daf 100644 --- a/examples/datavisualization/surface/surfacegraph.cpp +++ b/examples/datavisualization/surface/surfacegraph.cpp @@ -100,6 +100,9 @@ void SurfaceGraph::enableSqrtSinModel(bool enable) m_graph->axisX()->setRange(sampleMin, sampleMax); m_graph->axisY()->setRange(0.0f, 2.0f); m_graph->axisZ()->setRange(sampleMin, sampleMax); + m_graph->axisX()->setLabelAutoRotation(30); + m_graph->axisY()->setLabelAutoRotation(90); + m_graph->axisZ()->setLabelAutoRotation(30); m_graph->removeSeries(m_heightMapSeries); m_graph->addSeries(m_sqrtSinSeries); -- cgit v1.2.3