Yes, that's pretty much what I've got now. It's not bad (and some might even
prefer not having the chart re-layout to occupy the freed up space when an
axis is hidden).

Thanks.

On Thu, Aug 6, 2009 at 3:16 PM, Vivian Richard <kanps...@gmail.com> wrote:

>
>
> Try this code it does make the axis invisible:
>
> <?xml version="1.0"?>
> <!-- charts/StyledMultipleAxes.mxml -->
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>
> <mx:Script><![CDATA[
> import mx.collections.ArrayCollection;
>
> [Bindable]
> public var SMITH:ArrayCollection = new ArrayCollection([
> {date:"22-Aug-05", close:41.87},
> {date:"23-Aug-05", close:45.74},
> {date:"24-Aug-05", close:42.77},
> {date:"25-Aug-05", close:48.06},
> ]);
>
> [Bindable]
> public var DECKER:ArrayCollection = new ArrayCollection([
> {date:"22-Aug-05", close:157.59},
> {date:"23-Aug-05", close:160.3},
> {date:"24-Aug-05", close:150.71},
> {date:"25-Aug-05", close:156.88},
> ]);
>
> [Bindable]
> public var rightBoolean:Boolean = true;
> [Bindable]
> public var leftBoolean:Boolean = true;
> [Bindable]
> public var deckerColor:Number = 0x224488;
>
> [Bindable]
> public var smithColor:Number = 0x884422;
> ]]></mx:Script>
>
> <mx:Stroke id="h1Stroke"
> color="{smithColor}"
> weight="8"
> alpha=".75"
> caps="square"
> />
>
> <mx:Stroke id="h2Stroke"
> color="{deckerColor}"
> weight="8"
> alpha=".75"
> caps="square"
> />
>
> <mx:Panel title="Column Chart With Multiple Axes">
> <mx:ColumnChart id="myChart" showDataTips="true">
> <mx:horizontalAxis>
> <mx:CategoryAxis id="h1" categoryField="date"/>
> </mx:horizontalAxis>
>
> <mx:horizontalAxisRenderers>
> <mx:AxisRenderer placement="bottom" axis="{h1}"/>
> </mx:horizontalAxisRenderers>
>
> <mx:verticalAxisRenderers>
> <mx:AxisRenderer placement="left" axis="{v1}"
> visible="{leftBoolean}">
> <mx:axisStroke>{h1Stroke}</mx:axisStroke>
> </mx:AxisRenderer>
> <mx:AxisRenderer placement="right" axis="{v2}"
> visible="{rightBoolean}">
> <mx:axisStroke>{h2Stroke}</mx:axisStroke>
> </mx:AxisRenderer>
> </mx:verticalAxisRenderers>
>
> <mx:series>
> <mx:ColumnSeries id="cs1"
> horizontalAxis="{h1}"
> dataProvider="{SMITH}"
> yField="close"
> displayName="SMITH"
> >
> <mx:fill>
> <mx:SolidColor color="{smithColor}"/>
> </mx:fill>
>
> <mx:verticalAxis>
> <mx:LinearAxis id="v1" minimum="40" maximum="50"/>
> </mx:verticalAxis>
> </mx:ColumnSeries>
> <mx:LineSeries id="cs2"
> horizontalAxis="{h1}"
> dataProvider="{DECKER}"
> yField="close"
> displayName="DECKER"
> >
> <mx:verticalAxis>
> <mx:LinearAxis id="v2" minimum="150"
> maximum="170"/>
> </mx:verticalAxis>
>
> <mx:lineStroke>
> <mx:Stroke
> color="{deckerColor}"
> weight="4"
> alpha="1"
> />
> </mx:lineStroke>
> </mx:LineSeries>
> </mx:series>
> </mx:ColumnChart>
> <mx:Legend dataProvider="{myChart}"/>
> <mx:ControlBar>
> <mx:Button label="SHOW L" click="leftBoolean=true"/>
> <mx:Button label="HIDE L" click="leftBoolean=false"/>
> <mx:Button label="SHOW R" click="rightBoolean=true"/>
> <mx:Button label="HIDE R" click="rightBoolean=false"/>
> </mx:ControlBar>
> </mx:Panel>
> </mx:Application>
>
>
> On Thu, Aug 6, 2009 at 3:05 PM, Richard 
> Rodseth<rrods...@gmail.com<rrodseth%40gmail.com>>
> wrote:
> >
> >
> > The chart has two sets of dynamically-generated series A & B, one
> associated
> > with the left axis, one with the right. There are two checkboxes
> controlling
> > the visibility. I would like each checkbox to remove the corresponding
> > series set, and corresponding axis. So you can view none, A (left), B
> > (right) or A & B (left and right).
> >
> > I was able to get rid of the unwanted third (default) axis only if I
> defined
> > the verticalAxisRenderers within the body of the LineChart tag rather
> than
> > using my buidAxisRenderers binding function. If I then call
> > buildAxisRenderers from within buildSeriesList, the axes disappear, but
> the
> > bogus one reappears as soon as I uncheck both checkboxes.
> >
> > My workaround for now is to leave the verticalAxisRenders property
> > unchanged, but set the visibility flag of each renderer instead. This
> means
> > the chart does not re-layout.
> >
> > Thanks.
> >
> > On Thu, Aug 6, 2009 at 2:38 PM, Vivian Richard 
> > <kanps...@gmail.com<kanpsack%40gmail.com>>
> wrote:
> >>
> >>
> >>
> >> Do you think that you get this gap, because there is another axis there?
> >> By the way as I understand you need 2 axises - left and right - then why
> >> are you adding another axis on left and then rendering. Why not just
> >> render the axis that comes with the chart?
> >>
> >> On Thu, Aug 6, 2009 at 1:24 PM, Richard 
> >> Rodseth<rrods...@gmail.com<rrodseth%40gmail.com>>
> wrote:
> >> >
> >> >
> >> > I don't think that's it. Seems others have the same issue:
> >> >
> >> >
> >> >
> http://www.nabble.com/flex-charts:-disable-default-verticalAxisRenderer-issue-td22309463.html
> >> >
> >> > Even if I do what that thread suggests as below, I get a gap on the
> left
> >> > when the right axis is added.
> >> >
> >> >            private function buildAxisRenderers(showLeftAxis:Boolean,
> >> > showRightAxis:Boolean):Array {
> >> >
> >> >             // Workaround
> >> >             var verticalAxisRenderer:AxisRenderer = new
> AxisRenderer();
> >> >             verticalAxisRenderer.visible = false;
> >> >             verticalAxisRenderer.height = 0;
> >> >             verticalAxisRenderer.width = 0;
> >> >             verticalAxisRenderer.setStyle("showLabels", false);
> >> >             lineChart.verticalAxisRenderer = verticalAxisRenderer;
> >> >
> >> >               if (showLeftAxis && showRightAxis)
> >> >                   return [ leftAxisRenderer, rightAxisRenderer];
> >> >             if (showLeftAxis && !showRightAxis)
> >> >                   return [ leftAxisRenderer ];
> >> >             if (showRightAxis && !showLeftAxis)
> >> >                 return [ rightAxisRenderer ];
> >> >             return [ ];
> >> >
> >> >           }
> >> >
> >> >
> >> > On Thu, Aug 6, 2009 at 12:45 PM, Vivian Richard 
> >> > <kanps...@gmail.com<kanpsack%40gmail.com>
> >
> >> > wrote:
> >> >>
> >> >>
> >> >>
> >> >> I guess you are adding an additional axis. As you know if you
> >> >> do not define your axis and put an id for it. The chart will add
> >> >> the default axis. Now do not do it that way declare both axis
> >> >> and then tie up the axis renderer with it. I guess that will resolve
> >> >> you issue.
> >> >>
> >> >> Here you can see the example:
> >> >> http://livedocs.adobe.com/flex/3/langref/mx/charts/AxisRenderer.html
> >> >>
> >> >> On Thu, Aug 6, 2009 at 11:52 AM, Richard 
> >> >> Rodseth<rrods...@gmail.com<rrodseth%40gmail.com>
> >
> >> >> wrote:
> >> >> >
> >> >> >
> >> >> > I have a line chart where the user can show/hide the left and right
> >> >> > axes
> >> >> > (which have custom colours) and the corresponding series.
> >> >> >
> >> >> >             <mx:LineChart
> >> >> >                 dataProvider="{...}"
> >> >> >
> >> >> > verticalAxisRenderers="{this.buildAxisRenderers(...)}"
> >> >> >                 series="{this.buildSeriesList(...)}"
> >> >> >             >
> >> >> >
> >> >> >    Works fine, except I get two left axes, my custom one and the
> >> >> > default
> >> >> > grey one which never goes away. Any ideas? Thanks in advance.
> >> >> >
> >> >> >
> >> >> >
> >> >
> >> >
> >
> >
>  
>

Reply via email to