The following example creates a simple LineChart in Flex 3 and lets you toggle the baseAtZero property which controls whether the minimum or maximum chart value should be set to zero. Since a sample is worth 1000 words, read on.

Full code after the jump.

View MXML

<?xml version="1.0"?>
<!-- http://blog.flexexamples.com/2007/11/12/controlling-whether-a-linechart-should-set-its-base-value-at-zero/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:XMLListCollection id="dp">
        <mx:source>
            <mx:XMLList>
                <quote date="8/27/2007" open="40.38" high="41.11" low="40.25" close="40.81" />
                <quote date="8/24/2007" open="40.5" high="40.65" low="39.8" close="40.41" />
                <quote date="8/23/2007" open="40.82" high="40.99" low="40.33" close="40.6" />
                <quote date="8/22/2007" open="40.4" high="41" low="40.2" close="40.77" />
                <quote date="8/21/2007" open="40.41" high="40.95" low="39.87" close="40.13" />
                <quote date="8/20/2007" open="40.55" high="40.85" low="39.94" close="40.74" />
                <quote date="8/17/2007" open="40.18" high="40.48" low="39.32" close="40.32" />
                <quote date="8/16/2007" open="39.83" high="40.56" low="39.28" close="39.96" />
                <quote date="8/15/2007" open="40.22" high="41.25" low="40.12" close="40.18" />
                <quote date="8/14/2007" open="41.01" high="41.05" low="40.18" close="40.41" />
                <quote date="8/13/2007" open="41" high="41.13" low="40.26" close="40.83" />
                <quote date="8/10/2007" open="41.3" high="41.62" low="40.1" close="41.06" />
                <quote date="8/9/2007" open="39.9" high="41.74" low="39.86" close="40.75" />
                <quote date="8/8/2007" open="39.61" high="40.67" low="39.5" close="40.23" />
                <quote date="8/7/2007" open="39.08" high="39.91" low="38.61" close="39.42" />
                <quote date="8/6/2007" open="38.71" high="39.77" low="38.54" close="39.38" />
                <quote date="8/3/2007" open="39.47" high="39.66" low="38.7" close="38.75" />
                <quote date="8/2/2007" open="39.4" high="39.8" low="39.05" close="39.52" />
                <quote date="8/1/2007" open="40.29" high="40.49" low="38.57" close="39.58" />
            </mx:XMLList>
        </mx:source>
    </mx:XMLListCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:CheckBox id="checkBox"
                label="baseAtZero:"
                labelPlacement="left"
                selected="false" />

        <mx:Spacer width="100%" />

        <mx:Legend dataProvider="{lineChart}" />
    </mx:ApplicationControlBar>

    <mx:LineChart id="lineChart"
            showDataTips="true"
            dataProvider="{dp}"
            width="100%"
            height="100%">

        <!-- series filters -->
        <mx:seriesFilters>
            <mx:Array />
        </mx:seriesFilters>

        <!-- vertical axis -->
        <mx:verticalAxis>
            <mx:LinearAxis baseAtZero="{checkBox.selected}" title="Price" />
        </mx:verticalAxis>

        <!-- horizontal axis -->
        <mx:horizontalAxis>
            <mx:CategoryAxis id="ca" categoryField="@date" title="Date" />
        </mx:horizontalAxis>

        <!-- horizontal axis renderer -->
        <mx:horizontalAxisRenderers>
            <mx:AxisRenderer axis="{ca}" canDropLabels="true" />
        </mx:horizontalAxisRenderers>

        <!-- series -->
        <mx:series>
            <mx:LineSeries yField="@close" form="curve" displayName="Close" />
            <mx:LineSeries yField="@open" form="curve" displayName="Open" />
        </mx:series>

    </mx:LineChart>

</mx:Application>

View source is enabled in the following example.

For more information on the NumericAxis class’s baseAtZero property, see http://livedocs.adobe.com/flex/3/langref/mx/charts/chartClasses/NumericAxis.html#baseAtZero.

 
Tagged with:
 
About The Author

Peter deHaan

Peter deHaan currently works for Adobe on the Flex SDK QA team. While not working on Flex, Flash, and ColdFusion applications, Peter enjoys making up bios and writing in 3rd person. Peter's rarely updated blog can be found at blogs.adobe.com/pdehaan/, actionscriptexamples.com, airexamples.com, and coldfusionexamples.com.

0 Responses to Controlling whether a LineChart should set its base value at zero

  1. david chen says:

    When I compilerd the mxml file in Flex3 sdk, it appears following word:
    Error: 找不到(don’t find Type),或它不是編譯時期常數:LineChart。Why?
    How can I do?

  2. peterd says:

    david chen,

    Do you have Flex Professional installed, and does your current SDK include the charting SWCs?

    Peter

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree