Discussions
Categories
Choose a Product
THRUST SERVICES
CORE APPS
CE PRODUCTS
...
Quick Links
POPULAR
HELPFUL TIPS
Groups
My Links
FOR SIGNED IN MEMBERS:
Back to website
Home
Designing Analytics Reports
Line chart dynamic y-axis scale
Migrateduser
<p>I have the following in the onRender script of a line chart (can hold 2 series, but only 1 generated in the current dataset):</p>
<pre class="_prettyXprint _lang-js _linenums:5">
function beforeGeneration( chart, icsc )
{
// set y scale
//
importPackage(Packages.org.eclipse.birt.chart.model.component.impl);
importPackage(Packages.org.eclipse.birt.chart.model.attribute);
importPackage(Packages.org.eclipse.birt.chart.model.attribute.impl);
importPackage(Packages.org.eclipse.birt.chart.model.data.impl);
var chart = icsc.getChartInstance();
var yAxis = chart.getAxes().get(0).getAssociatedAxes().get(0);
var yScale = yAxis.getScale();
var tag1_max = getParamValue(icsc,"tag1_max");
var tag1_min = getParamValue(icsc,"tag1_min");
var tag2_max = getParamValue(icsc,"tag2_max");
var tag2_min = getParamValue(icsc,"tag2_min");
var max_val1 = getParamValue(icsc,"max_val1");
var min_val1 = getParamValue(icsc,"min_val1");
var max_val2 = getParamValue(icsc,"max_val2");
var min_val2 = getParamValue(icsc,"min_val2");
var min;
var max;
if (tag2_min != null)
min = Math.min(tag1_min, tag2_min, min_val1, min_val2);
else if (tag1_min != null)
min = Math.min(tag1_min, min_val1);
else
min = min_val1;
if (tag2_max != null)
max = Math.max(tag1_max, tag2_max, max_val1, max_val2);
else if (tag1_max != null)
max = Math.max(tag1_max, max_val1);
else
max = max_val1;
// breathing space
var range = max - min;
var space;
if (range > 0)
space = range * 0.1;
else
space = min * 0.1;
var minScale = min - space;
var maxScale = max + space;
yScale.setMin( NumberDataElementImpl.create(minScale) );
yScale.setMax( NumberDataElementImpl.create(maxScale) );
yAxis.setScale(yScale);
}
</pre>
<p>...which gives this output (evidently out of range/scale and hence blank):</p>
<p>
Find more posts tagged with
Comments
There are no comments yet