On April 27, 2024, our Sign-in and Create Account options will be unavailable from 9am-12pm ET. During this maintenance window, developer account access and free trial registration will be unavailable.

Runtime Control of Y-axis Labels in Chart

jeffreymac
jeffreymac Junior Member
I would like to be able to control the format of the y-axis labels depending on the maximum y value of the data to be displayed. Is this possible and if so, what evnet handler do I need to use and how to I obtain the max value within the event handler?

Comments

  • Virgil
    Virgil Administrator EM admin
    edited 1969 31 #2
    Hi jeffreymac,

    There are a couple of event handlers needed to get at the values, and format the axis label. Below is a javascript example that may work for you. This one will color the label corresponding to the largest data value.

    var maxval=0;
    var dataSetProcessor;

    function beforeDataSetFilled(series, idsp, icsc) {
    dataSetProcessor = idsp;
    }

    function afterDataSetFilled(series, dataSet, icsc) {
    maxval = dataSetProcessor.getMaximum( dataSet );
    }

    function beforeDrawAxisLabel(axis, label, icsc)
    {
    importPackage(Packages.org.eclipse.birt.chart.model.attribute);
    importPackage(Packages.org.eclipse.birt.chart.model);
    importPackage(Packages.org.eclipse.birt.chart.model.data);
    importPackage(Packages.org.eclipse.birt.chart.model.data.impl);

    if (maxval <= parseFloat(label.getCaption().getValue())) {
    if (axis.getType() != AxisType.TEXT_LITERAL) {
    label.getCaption().getColor( ).set( 208, 32, 0);
    }
    }
    }
  • jeffreymac
    jeffreymac Junior Member
    edited 1969 31 #3
    Thanks very much for the fast response and help! The code you provided worked fine. For some reason I had to remove the import statements to prevent errors.