Zmiana skali przy wykresie.

 

 

Jeśli chcielibyśmy w naszym kokpicie porównać dane z dwóch różnych działów, na dwóch wykresach tego samego typu ustawionych obok siebie, Lumira Designer dostosowałby ich skalę automatycznie do najwyższej wartości w danych.

Rezultatem takiego zachowania są sytuacje, w których samo przeglądanie wykresu nie wystarcza, aby móc faktualnie ocenić różnicę w wartościach między działami. Dla przykładu:

 

Na pierwszy rzut oka można dojść do wniosku, że dział po prawej stronie ma słabsze wyniki. Jednakże, po chwili skupienia możemy zauważyć, że  na pierwszym wykresie najwyższa wartość wynosi 50, natomiast na drugim 200.

 

Aby uniknąć takich problemów skalę wykresów możemy ustawić jako wartość stałą, niezależną od przedstawionych danych. W tym celu należy przejść do dodatkowych właściwości (additional properties) elementu, a następnie w zakładce Plot Area zaznaczyć na dole właściwość Fixed Scale, następnie ustawić górny i dolny próg (Min/Max Value), zgodnie z rysunkiem.

 

 

W tym przypadku możemy jednak zauważyć, że jeśli np. damy użytkownikowi możliwość swobodnego wyboru działów, które chce przedstawić na wykresach,  niektóre dane będą wybiegać poza ustawioną skalę lub będą niewidoczne, tak jak na rysunku poniżej:

 

 

Mimo zgodności skali, dane nadal nie są zbyt czytelne. Jak poradzić sobie z tym problemem?

 

Możemy w pewien sposób połączyć obydwie techniki – ustawić stałą wartość skali, ale dać możliwość zmiany jej wartości dla użytkownika końcowego, np. za pomocą przycisków.

Wstawiamy przyciski z plusem i minusem, a następnie przypisujemy im skrypty, odpowiednio:

 

- dla przycisku z plusem:

 

varcurrent_value = INFOCHART_2.getAxisScalingMax(InfoChartAxisScaling.AXIS_1);

INFOCHART_1.setAxisScaling(InfoChartAxisScaling.AXIS_1, 0, current_value - 50);

INFOCHART_2.setAxisScaling(InfoChartAxisScaling.AXIS_1, 0, current_value - 50);

 

- dla przycisku z minusem:

 

varcurrent_value = INFOCHART_2.getAxisScalingMax(InfoChartAxisScaling.AXIS_1);

INFOCHART_1.setAxisScaling(InfoChartAxisScaling.AXIS_1, 0, current_value + 50);

INFOCHART_2.setAxisScaling(InfoChartAxisScaling.AXIS_1, 0, current_value + 50);

 

- gdzie:

 

- current_value – zmienna przyjmująca obecną wartość skali

- set/getAxisScaling – funkcja ustawiająca/pobierająca wartość skali

- InfoChartAxisScaling.AXIS_1 – identyfikator osi, którą chcemy modyfikować

- 0 – wartość najniższa

- current_value +/- 50 – ustawianie wartości o 50 większej/mniejszej niż ta obecna. Wartość 50 należy zmienić na taką, której działanie będzie nas satysfakcjonować

 

Dzięki temu jesteśmy w stanie dowolnie zmieniać sposób wyświetlania danych w uruchomionej aplikacji.

 

 

W ramach potrzeby możemy także stworzyć oddzielne przyciski dla skali każdego z wykresów: