Flex - 格式化线图(LineChart)中点的提示文本(dataTip)
作者:hangge | 2015-09-13 21:31
使用dataTipFunction可以很方便的自定义图表上元素的提示信息。不管是内容还是格式。
比如,默认数据点的提示如下:
我们可以将其格式化成如下形似:
<?xml version="1.0"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init(event)"> <fx:Script> <![CDATA[ import mx.charts.HitData; import mx.collections.ArrayCollection; import mx.events.FlexEvent; [Bindable] private var myData:ArrayCollection = new ArrayCollection( [ { month: "18:00", value: 20}, { month: "19:00", value: 60}, { month: "20:00", value: 215}, { month: "21:00", value: 202}, { month: "22:00", value: 190}, { month: "23:00", value: 95}]); protected function init(event:FlexEvent):void { line1.setStyle("fill", 0xffffff); //原点内部填充色为白色 line1.setStyle("radius", 5); //整个圆点的半径为6 } private function dataTips(e:HitData):String{ var s:String= "<b>"+LineSeries(e.element).displayName+"</b>" +":"+e.chartItem["yValue"]+"个"; return s; } ]]> </fx:Script> <fx:Declarations> <!-- 轴线样式 (暂时不需要,改成背景上绘制)--> <mx:SolidColorStroke id = "axisS1" color="0xE3E3E3" weight="1" alpha="0"/> <!-- 线条样式 --> <mx:SolidColorStroke id = "lineS1" color="0x008EFF" weight="2"/> <!-- 线条点样式 (外圈颜色同线条颜色,外圈线条粗细为1) --> <mx:SolidColorStroke id = "pointS1" color="0x008EFF" weight="1"/> </fx:Declarations> <mx:LineChart id="linechart" height="60%" width="60%" seriesFilters="[]" verticalCenter="0" horizontalCenter="0" fontSize="12" color="0x707070" showDataTips="true" dataProvider="{myData}" dataTipFunction="dataTips"> <mx:backgroundElements> <s:Group width="100%" height="100%"> <s:Rect left="0" right="1" top="0" bottom="0"> <s:fill> <s:SolidColor alpha="1" color="#F5F5F5"/> </s:fill> <s:stroke> <s:SolidColorStroke color="0xE3E3E3" weight="1"/> </s:stroke> </s:Rect> </s:Group> <mx:GridLines gridDirection="both" > <mx:horizontalStroke> <mx:SolidColorStroke color="0xE3E3E3" weight="1"/> </mx:horizontalStroke> <mx:verticalStroke> <mx:SolidColorStroke color="0xEAEAEA" weight="1"/> </mx:verticalStroke> </mx:GridLines> </mx:backgroundElements> <mx:horizontalAxis> <mx:CategoryAxis id="hAxis" categoryField="month"/> </mx:horizontalAxis> <mx:horizontalAxisRenderers> <mx:AxisRenderer axis="{hAxis}" tickPlacement="none" minorTickPlacement="none" axisStroke="{axisS1}"/> </mx:horizontalAxisRenderers> <mx:verticalAxis> <mx:LinearAxis id="vAxis"/> </mx:verticalAxis> <mx:verticalAxisRenderers> <mx:AxisRenderer axis="{vAxis}" tickPlacement="none" minorTickPlacement="none" axisStroke="{axisS1}"/> </mx:verticalAxisRenderers> <mx:series> <mx:LineSeries id="line1" yField="value" form="segment" displayName="数量" itemRenderer="mx.charts.renderers.CircleItemRenderer" stroke="{pointS1}" lineStroke="{lineS1}"/> </mx:series> </mx:LineChart> </s:Application>
全部评论(0)