Domanda

Highcharts (link a specifica demo - cliccare Opzioni di visualizzazione per confrontare sotto il codice) per rendere alcuni dati per uso personale-uso.

[Nota: questo è quasi sicuramente un errore di me-correlata, in modo da non intendo insinuare che Highcharts è la colpa - è davvero una meravigliosa api!]

Quando si imposta il series.data campo dell'oggetto di grafico, che riscontrano strani sezionamento matrice.

Per esempio, questo funziona bene:

series: [{
    name: 'seriesName',
    data: [22, 24, 15]
}]

e tre punti dati vengono tracciati con i valori di 22, 24 e 15.

Tuttavia,

series: [{
    name: 'sillySeries',
    data: chartData[0]
}]

rende 3 punti con i valori 2, 4 e 5 e titoli dei punti sono 2, 2 e 1 rispettivamente ... cioè, esso è spaccare le voci di matrice in un titolo e quindi un valore per numeri a due cifre .

mi dimostra che console.log ChartData sembra

22,24,15,2010-9,2010-10,2010-11 

(3 valori per 3 mesi)

Anche se le matrici reali sono più simili [22,24,15] [2010-9,2010-10,2010-11]

Il mio 2d-array chartData[][] ha indici [column][row] per i dati, e ho pensato che chiedere chartData[0] sarebbe tornato un array.

Forse la mia domanda dovrebbe essere: Come faccio a restituire un array di 1d da una rappresentazione matrice 2D per impostare le proprietà / valori in oggetti JavaScript? Sembra che io sto probabilmente si affaccia qualcosa di molto evidente.


modifica:

data: [24]

Locali un punto a 24, impressionante.

data: '24'

divide i dati come titolo e quindi il valore, tracciando in modo efficace un punto in 4 e non 24.

Quindi, la rappresentazione diventa una stringa quando provo a passare un array di dati campo . Un modo per fare come string.toArray?


Edit 2:

chartData[col][row] viene dichiarata come array vuoto

var chartData = [];

e successivamente riempito con valori di iterazione sopra le righe e le colonne di una tabella HTML, in cui i contenuti ciclo più interno assomigliano

chartData[cellIndex][rowIndex] = $(currentCell).text();
È stato utile?

Soluzione 2

parseInt () ha salvato la giornata.

qualcosa di simile

for (i=0; i<chartData[0].length; ++i) {
    columnOne.push(parseInt(chartData[0][i]);
}

mi ha dato una matrice che avrei potuto utilizzare per visualizzare i dati con il campo dati nell'oggetto di notazione

data: columnOne

o più letteralmente

chart1.series [0] = .data columnOne;

Grazie James per aver ricordato

Mentre ChartData è probabilmente un array, suona come ChartData [0] è una stringa.

che portano alla mia scoperta che i dati in mio allineamento era in realtà tutte le stringhe, che ho tenuto in questo modo perché alcuni campi sono stringhe, alcuni sono date (AAAA-MM-DD) e alcuni sono solo int.

Molte grazie a tutti e due =)

Altri suggerimenti

Mentre ChartData è probabilmente un array, suona come ChartData [0] è una stringa. Quando si utilizza un indice di array su una stringa si ottiene il carattere in quella posizione, che è esattamente quello che stai vivendo ...

rende 3 punti con i valori 2, 4 e 5 e titoli dei punti sono 2, 2 e 1 rispettivamente ... cioè, esso è spaccare le voci di matrice in un titolo e quindi un valore per numeri a due cifre .

Ci sono molti modi per definire le matrici all'interno di array in JavaScript; qui è uno:

var chartData = [
  [22,24,15]
  ,['2010-9','2010-10','2010-11']
];

Bene, questa non è una vera risposta, ma potrebbe aiutarti.

Highcharts consente di pre-elaborare alcune opzioni. Nel tuo caso, si potrebbe fare qualcosa di simile:

options.series[0].data = new Array(1, 0, 4);

di riferimento doc: http://www.highcharts.com/documentation/how -to-uso opzioni #

Se non funziona, commento di cui sopra.

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