Flex 3には、折れ線グラフがあります。折れ線グラフのデータプロバイダーには、1つのアイテムしか含まれていません。
折れ線グラフを描くと、点がプロットされます。ただし、データのヒントは表示されません。
dataproviderに複数のアイテムが存在する場合に機能します。
単一のデータ項目を含むデータプロバイダーを使用して折れ線グラフのデータヒントを表示するにはどうすればよいですか?
Flex 3には、折れ線グラフがあります。折れ線グラフのデータプロバイダーには、1つのアイテムしか含まれていません。
折れ線グラフを描くと、点がプロットされます。ただし、データのヒントは表示されません。
dataproviderに複数のアイテムが存在する場合に機能します。
単一のデータ項目を含むデータプロバイダーを使用して折れ線グラフのデータヒントを表示するにはどうすればよいですか?
ポイントが 1 つしかない場合は、LineSeries の代わりに PlotSeries を使用します。そのdataTipで素敵なラウンドポイントが得られます. 正確な方法は、データの構築方法によって異なります。dataProvider に割り当てられた後にデータが変更されない場合は、その時点で使用するシリーズのタイプを選択できます。
actionscript で次のコードを試してください。
lineSeries.setStyle("itemRenderer", new ClassFactory(mx.charts.renderers.CircleItemRenderer));
mxmlで、
<mx:LineSeries yField="Y" itemRenderer="mx.charts.renderers.CircleItemRenderer" xField="X" dataProvider="{lineDataProvider}">
を表示する回避策があり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>