grafico Flex non visualizzato giusti valori lungo l'asse x
-
04-10-2019 - |
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}"/>
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.