Гибкая диаграмма не отображает правильные значения вдоль оси х - PullRequest
0 голосов
/ 25 мая 2010

Я не знаю лучшего способа задать этот вопрос.

Если приведенный ниже код выполняется (Я знаю, что разделы cData не видны в предварительном просмотре, что-то заставляет их игнорировать)

Результат не правильно представляет данные. 1. Flex игнорирует пропущенную дату 24 авг для DECKER. 2. Он неверно связывает 42,77 с 23 августа вместо 24 августа.

Есть ли способ во флексе, где ось X является объединением всех доступных точек?

Код ниже полностью из: Ссылка на сайт Adobe

Я только прокомментировал 2 пункта данных. // {дата: «23 августа 2005 года», закрытие: 45,74}, а также // {дата: "24 августа-05", закрытие: 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;

]]>

    <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 голосов
/ 20 декабря 2010

После долгих поисков,

В указанном выше источнике использовались 2 разных источника данных и 2 разных ряда. Каждый источник данных связан с одной серией. Итак, источник данных: серия 1: 1.

Тем не менее,

Общепринятым способом использования швов является использование одного источника данных и двух серий. Источник данных имеет одно поле, связанное с каждым из рядов. Итак, между dataField: series есть 1: 1.

Я решил проблему, используя второй подход, но это означает, что мы должны вручную создать один источник данных с правильными значениями.

0 голосов
/ 25 мая 2010

Если вы переключитесь на / * * / стиль кавычек вместо // это решит проблему? Я думаю, что компилятор думает, что ваша коллекция массивов - это одна строка (независимо от разрывов строк), поэтому вы не сможете использовать // кавычки в ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...