เคล็ดลับข้อมูล LineChart จะไม่แสดงด้วยจุดข้อมูลเดียวใช่ไหม

ใน Flex 3 ฉันมีแผนภูมิเส้น ผู้ให้บริการข้อมูลของฉันสำหรับแผนภูมิเส้นมีเพียงรายการเดียวเท่านั้น

เมื่อฉันวาดแผนภูมิเส้น มันจะลงจุด แต่มันไม่แสดงเคล็ดลับข้อมูล

ใช้งานได้หากมีมากกว่าหนึ่งรายการใน dataprovider

ฉันจะทำให้เคล็ดลับข้อมูลมองเห็นได้สำหรับแผนภูมิเส้นโดยผู้ให้บริการข้อมูลที่มีรายการข้อมูลเดียวได้อย่างไร


person user723644    schedule 06.06.2011    source แหล่งที่มา


คำตอบ (3)


ใช้ PlotSeries แทน LineSeries เมื่อคุณมีเพียงจุดเดียว คุณจะได้รับจุดกลมที่ดีด้วย dataTip วิธีดำเนินการนั้นขึ้นอยู่กับวิธีการสร้างข้อมูลของคุณ หากข้อมูลไม่เปลี่ยนแปลงหลังจากกำหนดให้กับ dataProvider คุณสามารถเลือกประเภทซีรีส์ที่จะใช้ในขณะนั้นได้

person Daniel Kitachewsky    schedule 06.06.2011

ลองใช้รหัสต่อไปนี้ใน actionscript

lineSeries.setStyle("itemRenderer", new ClassFactory(mx.charts.renderers.CircleItemRenderer));

ใน mxml

<mx:LineSeries yField="Y" itemRenderer="mx.charts.renderers.CircleItemRenderer" xField="X" dataProvider="{lineDataProvider}">
person Kishore    schedule 17.06.2011
comment
ใน mxml, ‹mx:LineSeries yField=Y itemRenderer=mx.charts.renderers.CircleItemRenderer xField=X itemRenderer={} dataProvider={lineDataProvider}› - person Kishore; 17.06.2011

มีวิธีแก้ไขชั่วคราวเพื่อแสดง datatip เราจำเป็นต้องเพิ่มตัวฟังเหตุการณ์เมาส์ ROLL_OVER และ ROLL_OUT ให้กับชุดบรรทัดที่มีดาต้าพอยต์เดียว

<?xml version="1.0"?>
<!-- Simple example to demonstrate the LineChart and AreaChart controls. -->
<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">

    <fx:Script>
        <![CDATA[
            import mx.charts.HitData;
            import mx.charts.renderers.*;
            import mx.charts.series.items.LineSeriesItem;
            import mx.collections.ArrayCollection;

            [Bindable]
            private var expensesAC:ArrayCollection = new ArrayCollection( [
                { Month: "Jan", Profit: 2000 } ]);

            private function lineseriesRollOverHandler(event:MouseEvent):void
            {
                linechart.showAllDataTips = true;
            }

            private function lineserieRollOutHandler(event:MouseEvent):void
            {
                linechart.showAllDataTips = false;
            }

            private function dataTipFunction(hitData:HitData):String
            {
                if(hitData && hitData.item)
                {
                    var s:String = "";

                    if(hitData.element is LineSeries)
                    {

                        if(expensesAC.length <=1)
                            hitData.x = 56;

                        var lsi:LineSeriesItem = hitData.chartItem as LineSeriesItem;

                        if(lsi == null)
                            return "";

                        s += "<b>" + (hitData.element as LineSeries).displayName + "</b><br />";
                        s += lsi.xValue + "<br />";
                        s += lsi.yNumber;
                    }

                    return s;
                }

                return "";
            }

        ]]>
    </fx:Script>

    <fx:Declarations>
    </fx:Declarations>

    <mx:Panel width="100%" height="100%" layout="horizontal" title="Single point LineChart Example">

        <mx:LineChart id="linechart" width="45%" height="100%" dataProvider="{expensesAC}"
                      paddingLeft="5" paddingRight="5" showDataTips="true" dataTipFunction="dataTipFunction">

            <mx:horizontalAxis>
                <mx:CategoryAxis categoryField="Month"/>
            </mx:horizontalAxis>

            <mx:series>
                <mx:LineSeries displayName="Profit" form="curve"
                               itemRenderer="mx.charts.renderers.CircleItemRenderer"
                               legendMarkerRenderer="mx.charts.renderers.BoxItemRenderer"
                               rollOut="lineserieRollOutHandler(event)"
                               rollOver="lineseriesRollOverHandler(event)" yField="Profit"/>
            </mx:series>
        </mx:LineChart>

        <mx:Legend dataProvider="{linechart}"/>

    </mx:Panel>
</s:Application>
person Vinayak T    schedule 04.03.2016