您的位置:首页 > 其它

Flex:在LineChart图表中格式化双轴线

2009-10-20 16:03 471 查看


lineChart.mxml :

<?xml version="1.0"?>
<!-- Simple example to demonstrate the GridLines class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:comp="com.*">
<mx:Script>
<![CDATA[
import mx.charts.CategoryAxis;
import mx.charts.chartClasses.IAxis;
import mx.collections.ArrayCollection;
import mx.charts.series.items.PieSeriesItem;
import mx.charts.HitData;
import custer.MyLabel;
import mx.effects.easing.*;
import mx.controls.Alert;
import mx.charts.series.LineSeries;
import mx.charts.chartClasses.DataTransform;
import mx.charts.chartClasses.CartesianTransform;
import mx.charts.series.items.LineSeriesItem;

private function linearAxis_labelFunc(item:Object, prevValue:Object, axis:IAxis):String {
return currFormatter.format(item);
}

private function init(evt:Event):void {
var chart:CustomLineChart = evt.currentTarget as CustomLineChart;
seriesFilterArr = chart.seriesFilters;
var len:uint = linechart.seriesFilters.length;
if (len > 0) {
linechart.seriesFilters = [];
} else {
linechart.seriesFilters = seriesFilterArr;
}
}
function CustomLineChart_dataTipFunction(item:HitData):String {
// var LCI:LineSeries = item.chartItem as LineSeries;
//return "<b>高度/时间</b><br />时间:" + LCI.item.time + "<br/>高度:"+LCI.item.height+"米";
tit.label = "<b>高度/时间</b><br />时间我们的";

var dt:String = "";
var this_series:LineSeries = LineSeries(item.element);
var dataTransform:DataTransform = this_series.dataTransform;
var vertical_axis:LinearAxis = LinearAxis(dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS));
var horizontal_axis:CategoryAxis = CategoryAxis(dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS));

var actionItemID:String = this_series.xField;
var xValue:Object = horizontal_axis.formatForScreen(LineSeriesItem(item.chartItem).xValue);
var n:String = this_series.displayName;
if (n && n != "")
dt += "<font size='14'><b>" + n + "</b><BR/>" + xValue + "-" + actionItemID;

return dt;
}

[Bindable]
private var expensesAC:ArrayCollection = new ArrayCollection( [
{ Month: "17", Profit: 2000, Expenses: 1500, Amount: 450 },
{ Month: "18", Profit: 800, Expenses: 200, Amount: 600 },
{ Month: "19", Profit: 1500, Expenses: 500, Amount: 300 },
{ Month: "20", Profit: 1800, Expenses: 1200, Amount: 900 },
{ Month: "21", Profit: 2400, Expenses: 575, Amount: 500 },
{ Month: "22", Profit: 720, Expenses: 575, Amount: 500 },
{ Month: "23", Profit: 1800, Expenses: 1200, Amount: 900 },
{ Month: "24", Profit: 2400, Expenses: 575, Amount: 500 },
{ Month: "25", Profit: 1400, Expenses: 575, Amount: 500 },
{ Month: "26", Profit: 2000, Expenses: 1500, Amount: 450 },
{ Month: "27", Profit: 1000, Expenses: 200, Amount: 600 },
{ Month: "28", Profit: 1500, Expenses: 500, Amount: 300 },
{ Month: "29", Profit: 1800, Expenses: 1200, Amount: 900 },
{ Month: "30", Profit: 2400, Expenses: 575, Amount: 500 },
{ Month: "31", Profit: 3400, Expenses: 575, Amount: 500 },
{ Month: "1", Profit: 1700, Expenses: 1200, Amount: 900 },
{ Month: "2", Profit: 2400, Expenses: 575, Amount: 500 },
{ Month: "3", Profit: 480, Expenses: 575, Amount: 500 },
{ Month: "4", Profit: 2400, Expenses: 575, Amount: 500 },
{ Month: "5", Profit: 1480, Expenses: 575, Amount: 500 },
{ Month: "6", Profit: 570, Expenses: 575, Amount: 500 },
{ Month: "7", Profit: 1970, Expenses: 575, Amount: 500 },
{ Month: "8", Profit: 1600, Expenses: 575, Amount: 500 },
{ Month: "9", Profit: 720, Expenses: 575, Amount: 500 },
{ Month: "10", Profit: 2100, Expenses: 575, Amount: 500 },
{ Month: "11", Profit: 780, Expenses: 575, Amount: 500 },
{ Month: "12", Profit: 1900, Expenses: 575, Amount: 500 },
{ Month: "13", Profit: 1480, Expenses: 575, Amount: 500 },
{ Month: "14", Profit: 1100, Expenses: 575, Amount: 500 },
{ Month: "15", Profit: 2480, Expenses: 575, Amount: 500 },
{ Month: "16", Profit: 700, Expenses: 575, Amount: 500 },
{ Month: "17", Profit: 1400, Expenses: 575, Amount: 500 } ]);

private function linechart_mouseMove(evt:MouseEvent):void {
tit.label = evt.stageY.toString() + " - " + evt.localY+ " - " + this.mouseY;
}

]]>
</mx:Script>
<mx:CurrencyFormatter id="currFormatter" precision="0" />
<mx:Stroke id = "s1" color="#2E95BF" weight="1"/>
<mx:Stroke id = "s2" color="#62C426" weight="1"/>
<mx:Stroke id = "s3" color="#FF8C31" weight="1.5"/>
<mx:Stroke id="vSolid" weight=".002" color="#333333" alpha=".04" />
<mx:Stroke id="hSolid" weight=".03" color="#ff0000" alpha=".1" />
<mx:Stroke id="axisStroke2" color="#6B90DA" weight="2" alpha=".25" caps="square"/>
<mx:SolidColor id="vFill" color="#D6DECE" alpha=".3" />
<mx:SolidColor id="hFill" color="#F9E0E0" alpha=".03" />
<mx:SolidColor id="tFill" color="#ffffff" alpha=".3" />
<mx:Array id="seriesFilterArr" />
<mx:Panel title="海口-重庆 航线订单趋势图" height="100%" width="100%" fontSize="14" fontWeight="normal">
<mx:Button width="301" fontWeight="bold" id="tit" fontSize="12" color="#F2530C" fontFamily="Arial" labelPlacement="left"/>
<comp:CustomLineChart id="linechart" height="100%" width="100%"
paddingLeft="5" paddingRight="5"
showDataTips="true" showAllDataTips="true" dataTipFunction="CustomLineChart_dataTipFunction" dataProvider="{expensesAC}" mouseMove="linechart_mouseMove(event);" creationComplete="init(event);">
<comp:verticalAxis>
<mx:LinearAxis baseAtZero="false" title="Price" labelFunction="linearAxis_labelFunc" minimum="0"
/>
</comp:verticalAxis>
<comp:horizontalAxis>
<mx:CategoryAxis categoryField="Month" />
</comp:horizontalAxis>
<comp:horizontalAxisRenderer>
<mx:AxisRenderer canStagger="false" fontSize="10" >
<mx:axisStroke>{axisStroke2}</mx:axisStroke>
</mx:AxisRenderer>
</comp:horizontalAxisRenderer>
<comp:verticalAxisRenderer>
<mx:AxisRenderer >
<mx:axisStroke>{axisStroke2}</mx:axisStroke>
</mx:AxisRenderer>
</comp:verticalAxisRenderer>

<comp:backgroundElements>
<mx:GridLines direction="both" horizontalTickAligned="true" verticalTickAligned="true"
verticalStroke="{hSolid}" horizontalStroke="{vSolid}"
verticalFill="{vFill}" horizontalFill="{hFill}"
verticalAlternateFill="{tFill}" horizontalAlternateFill="{tFill}"
/>
</comp:backgroundElements>
<comp:series>
<mx:LineSeries yField="Profit" form="curve" displayName="票点明细:" itemRenderer="custer.MyLabel" lineStroke="{s3}" />

</comp:series>
</comp:CustomLineChart>

</mx:Panel>

</mx:Application>

关键部分:axisStroke (参见Api)

<mx:AxisRenderer canStagger="false" fontSize="10" >
<mx:axisStroke>{axisStroke2}</mx:axisStroke>
</mx:AxisRenderer>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: