Flex图表不沿x轴显示正确的值

时间:2010-05-25 16:46:13

标签: flex charts bar-chart linechart

我不知道有什么更好的方式来提出这个问题。

如果运行以下代码 (我知道cData部分在预览中不可见,导致它被忽略)。

结果不能正确表示数据。 1. Flex忽略DECKER的缺失日期24 aug。 它错误地将42.77与8月23日联系起来,而不是24-AUG。

有没有办法在flex, 其中x轴是所有可用点的并集?

以下代码完全来自: Adobe website link

我只评论了2个数据点。 // {日期:“25-Aug-05”,关闭:45.74}, 和 // {date:“24-Aug-05”,close:150.71},

<?xml version="1.0"?>

  

 [Bindable]
  public var SMITH:ArrayCollection = new ArrayCollection([
    {date:"22-Aug-05", close:41.87},
    //{date:"23-Aug-05", close:45.74},
    {date:"24-Aug-05", close:42.77},
    {date:"25-Aug-05", close:48.06},
 ]);

 [Bindable]
  public var DECKER:ArrayCollection = new ArrayCollection([
    {date:"22-Aug-05", close:157.59},
    {date:"23-Aug-05", close:160.3},
    //{date:"24-Aug-05", close:150.71},
    {date:"25-Aug-05", close:156.88},
 ]);

[Bindable]
public var deckerColor:Number = 0x224488;

[Bindable]
public var smithColor:Number = 0x884422;

]]&GT;

                                   

    <mx:horizontalAxisRenderers>
        <mx:AxisRenderer placement="bottom" axis="{h1}"/>
    </mx:horizontalAxisRenderers>

    <mx:verticalAxisRenderers>
        <mx:AxisRenderer placement="left" axis="{v1}">
            <mx:axisStroke>{h1Stroke}</mx:axisStroke>
        </mx:AxisRenderer>
        <mx:AxisRenderer placement="left" axis="{v2}">
            <mx:axisStroke>{h2Stroke}</mx:axisStroke>
        </mx:AxisRenderer>
    </mx:verticalAxisRenderers>

    <mx:series>
       <mx:ColumnSeries id="cs1" 
            horizontalAxis="{h1}" 
            dataProvider="{SMITH}" 
            yField="close" 
            displayName="SMITH"
        >
            <mx:fill>
                <mx:SolidColor color="{smithColor}"/>
            </mx:fill>

            <mx:verticalAxis>
               <mx:LinearAxis id="v1" minimum="40" maximum="50"/>
            </mx:verticalAxis>           
       </mx:ColumnSeries>           
       <mx:LineSeries id="cs2" 
            horizontalAxis="{h1}" 
            dataProvider="{DECKER}" 
            yField="close" 
            displayName="DECKER"
        >
            <mx:verticalAxis>
                <mx:LinearAxis id="v2" minimum="150" maximum="170"/>           
            </mx:verticalAxis>

            <mx:lineStroke>
                <mx:Stroke 
                    color="{deckerColor}" 
                    weight="4" 
                    alpha="1"
                />
            </mx:lineStroke>
       </mx:LineSeries>
    </mx:series>
 </mx:ColumnChart>
 <mx:Legend dataProvider="{myChart}"/>

2 个答案:

答案 0 :(得分:0)

如果切换到/ * * /样式引号而不是//是否解决了问题?我认为编译器认为你的数组集合都是一行(不管换行符),所以你可能无法在其中使用//样式引号。

答案 1 :(得分:0)

经过多次搜索,

以上来源使用了2个不同的数据源和2个不同的系列。 每个数据源都与一个系列相关联。因此,数据源:系列之间存在1:1的比例。

然而,

接受使用一个数据源和2个系列的接受方式。 数据源有一个与每个系列相关联的字段。因此,dataField:series之间有1:1。

我使用第二种方法解决了问题,但这意味着我们必须手动构建具有正确值的单个数据源。