How can i find the max value of a group of lineseries - apache-flex

I need to recalculate the max value of lineChart according to the visible lineseries.
In the application i have the ability to make visible or not the lineseries of the graph and if i make not visible the lineseries with the actual top value i want to zoom in and change the top value of the graph.
Anyone knows how can i do that?

I have found my answer.
In this post
http://flexdevtips.blogspot.com/2009/10/linechart-with-checkbox-legend.html
I have found all the code i needed.
Claudio

Related

QSlider makes unnecessary steps

I am trying to use a QSlider, but if somebody clicks on a position X, where he wants to put the slider to, the slider always sets the value to maximum or minimum at first and then to the value X. So there is an unnecessary step in-betweeen.
How can I avoid this step?
I implemented the slider with the help of QTDesigner.
The code for the remaining setup is the following:
_ui->horizontalSlider->setRange(1, aMaximalValue);
_ui->horizontalSlider->setValue(theCurrentValue);
connect(_ui->horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(onValueOfSliderChanged(int)));
When using a QSlider, my experience says that when you click at a certain position in the slider which is to right of current position(considering horizontal slider), it will increase slider value by pageStep size. Similarly, if click value is to left of current position, it will decrease slider value by pageStep size. Only when you drag the slider to that place, it will set the value to what you want and not on clicking. Try setting the pageStep size to see if this is the issue.
Yes, just like shubh explained, the pagestep is probably too large. A common issue with QSliders is that they do not jump to the position you have clicked, but move a pagestep in that direction.
A solution to that problem has been described in this question

Drawing on Flex Chart

I've created a line chart in flex and it works like expected. Now, I would like to add shading to the background for specific information. For example, this chart - http://research.stlouisfed.org/fred2/graph/?id=TOTALSL,TOTALNS, - shows a shaded background for recessions. How would I mimic this shading in a Flex linechart?
Thanks
You could draw it in the background of the chart using the drawing api.
edit:
I dont know of any code examples on the web, I've only done it in production code (aka I cant share it, sorry :( )
you will want to create a container and put it into the charts
<mx:backgroundElements>
You should pass into this container the min and max for the x-axis probably as separate properties and a dataprovider that describes when to show a highlighted section. You might have to compute the min and max based on the dataprovider you pass into the chart.
If you just want to show the highlighted area you will just use the drawing api and compute where to put on the x-axis based on your min, max, width of container, and data point (start and end values) from your dataprovider. It will look something like this in your updateDisplayList:
// code is not tested but a good start
var shadeStartX:Number = (max-min)/startPoint;
var shadeEndX:Number = (max-min)/endPoint;
var shadeWidth:Number = shadeEndX - shadeStartX;
...
this.graphics.drawRect(shadeStartX, 0, shadeWidth, unscaledHeight);
but if you want to have things like hover states and all that goodness I would suggest creating a display object that you pass the width in and adding that to the container at the computed x-axis to set it at.
Hi I feel that drawing something yourself is not the right way to go.
You should ideally use a PlotSeries inside the LineChart, and create a custom item renderer for each element in the series.
PlotSeries allows you to give your own custom image/object to draw at a specific date/point in the chart.
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/charts/series/PlotSeries.html
http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_10.html
All the examples show the plotSeries with smaller objects but you can create an object which covers the chart vertically and has a constant width.

How to Fill in the Area Underneath an ASP.Net Spline Chart Control with a Color?

I have an ASP.Net Chart Control of ChartType "Spline", one ChartArea and one Series (it's a sparkline). I was just wondering if anyone out there knew how I could color the area underneath the line - I can't seem to find the property that allows me to do this without coloring the entire background.
Thanks in advance
You need to have a chart with a ChartType of Area to achieve this type of look (similar to google analytics). I have tried it and it does work although i'm not sure how you might get the line to be one particular colour and the area underneath to be a second colour?
http://social.msdn.microsoft.com/Forums/en-US/MSWinWebChart/thread/981cc4df-2b23-4557-8d89-0b45d553fecc/

Is it possible to restrict flex bar chart y-axis count?

Is it possible to restrict flex bar chart y-axis count?
I have a very big name coming in my y-axis and i want to reduce or restrict it to 5 characters and on rollover i want to display it in full.
You can use the labelFunction of the axis. Check out the examples here: http://livedocs.adobe.com/flex/3/html/help.html?content=charts_displayingdata_06.html
You should easily be able to add a mouseOver event listener to put your tool tip on.

Flex3 Linechart points are too close to the edge

I have a Flex3 LineChart component using an CircleItemRenderer and the datapoints are being cut off because they are too close to the edge. Here's what it looks like:
http://img29.imageshack.us/img29/3850/chartx.png
As you can see, the circles on the left and right sides are being cut off.
How can I make the LineSeries area, plus the horizontal labels, narrower so it fits in the chart area?
Thanks!
I had the same issue and was able to resolve it by setting the clipContent attribute in the chart tag to false. I found this solution on Amy's Flex Diary.
You might want to set the maximum and minimum values in your LinearAxis in the horizontalAxis object. Check the API for more information: http://livedocs.adobe.com/flex/3/langref/mx/charts/LinearAxis.html
The Line Chart determines automatically these values to fill all the elements in the screen. You might want to change these values so the graph has some space at the sides.
You can set the padding property on the horizontalAxis and verticalAxis child objects as well...
Adjust the mask on the chart component.
I got this to work by changing the type from LineChart to ColumnChart. I still had all of the same axis definitions including Line Series. The results are the same Line graph, but more centered on the graph instead of touching the edges. None of the other padding or gutters were what I was looking for.
I got d solution.
create creationComplete event in LineChart
edit horizontalAxis's padding you want
e.target.horizontalAxis.padding = 0.2;

Resources