Domanda

Non so di un modo migliore per fare questa domanda.

Se il codice viene eseguito in basso (Lo so sezioni CDATA non sono visibili in anteprima, qualcosa induce a essere ignorato).

Il risultato non rappresenta correttamente i dati. 1. ignora Flex mancanti data 24 agosto per Decker. 2. Si associa erroneamente 42,77-23-ago anziché 24 agosto

C'è un modo in flessione, in cui l'asse x è l'unione di tutti i punti disponibili?

Il sotto codice è interamente da: Adobe link al sito

Ho commentato solo 2 punti di dati. // {date: "23-ago-05", vicino: 45.74}, e // {date: "24-ago-05", vicino: 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}"/>

È stato utile?

Soluzione 2

Dopo molte ricerche,

La fonte sopra usato 2 origini dati differenti e 2 serie differenti. Ciascuno di origine dati è associato con la serie uno. Quindi, c'è un 1: 1 tra i datasource:. Serie

Tuttavia,

Il modo accettato per le cuciture di essere di utilizzare una fonte di dati e 2 della serie. L'origine dati ha un campo associato con ciascuna delle serie. Quindi, c'è un 1: 1 tra i dataField:. Serie

I risolto il problema utilizzando il secondo approccio, ma che significa che dobbiamo manualmente costruire una singola origine dati con valori corretti.

Altri suggerimenti

Se si passa con quotazioni / * * / stile invece di // corregge il problema? Credo che il compilatore pensa la vostra collezione di matrice è tutto una riga (a prescindere dalla interruzioni di riga) in modo da non essere in grado di utilizzare le virgolette // stile in esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top