Question

J'utilise Highcharts (lien vers un démo spécifique - cliquez sur Afficher les options pour comparer le code ci-dessous) pour rendre des données pour des fins personnelles.

[Note: ce qui est presque certainement une erreur liée à moi, donc je ne veux pas dire insinuer que Highcharts est en faute - c'est vraiment un merveilleux api!]

Lors du réglage du series.data champ de l'objet graphique, je rencontre tableau étrange tronçonnage.

Par exemple, cela fonctionne très bien:

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

Et trois points de données sont tracées avec des valeurs 22, 24 et 15.

Cependant,

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

rend 3 points avec les valeurs 2, 4 et 5 et les titres des points sont 2, 2 et 1 respectivement ... qui est, cette division des entrées de tableau dans un titre, puis une valeur pour un nombre à deux chiffres .

me montre CONSOLE.LOG que ChartData ressemble

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

(3 valeurs pour 3 mois)

Bien que les tableaux réels sont plus comme [22,24,15] [2010-9,2010-10,2010-11]

Mon chartData[][] 2d-tableau a des indices de [column][row] pour les données, et je me suis dit que demander chartData[0] retournerait un tableau.

Peut-être que ma question devrait être: Comment puis-je retourner un tableau 1d d'une représentation du tableau 2d pour définir les propriétés / valeurs dans les objets javascript? Il semble que je suis sans doute sur quelque chose de très évident.


edit:

data: [24]

parcelles un point à 24, impressionnant.

data: '24'

divise les données que le titre et la valeur, tracer efficacement un point à 4 et non 24.

Ainsi, la représentation devient une chaîne lorsque je tente de passer un tableau à la données terrain. De toute façon je peux faire comme string.toArray?


modifier 2:

chartData[col][row] est déclarée comme un tableau vide

var chartData = [];

et ensuite rempli avec des valeurs par itérer sur les lignes d'une table HTML et des colonnes, où le contenu de la boucle les plus intimes ressemblent

chartData[cellIndex][rowIndex] = $(currentCell).text();
Était-ce utile?

La solution 2

parseInt () a sauvé la journée.

quelque chose comme

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

m'a donné un tableau que je pourrais ensuite utiliser pour afficher les données avec le champ de données de notation dans l'objet

data: columnOne

ou plus littéralement

chart1.series [0] = .data columnOne;

Merci d'avoir signalé James

  

Alors que ChartData est probablement un tableau, il semble que ChartData [0] est une chaîne.

qui conduisent à ma découverte que les données de mon tableau était en fait toutes les chaînes que je gardais cette façon parce que certains champs sont des chaînes, certaines sont des dates (AAAA-MM-JJ) et certains sont seulement ints.

Un grand merci à vous deux =)

Autres conseils

Alors que ChartData est probablement un tableau, il semble que ChartData [0] est une chaîne. Lorsque vous utilisez un index de tableau sur une chaîne que vous obtenez le caractère à cette position, ce qui est exactement ce que vous vivez ...

  

rend 3 points avec les valeurs 2, 4 et 5 et les titres des points sont 2, 2 et 1 respectivement ... qui est, cette division des entrées de tableau dans un titre, puis une valeur pour un nombre à deux chiffres .

Il y a plusieurs façons de définir les tableaux dans les tableaux en javascript; voici un:

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

Eh bien, ce n'est pas une vraie réponse, mais peut vous aider.

Highcharts vous permet de prétraiter certaines options. Dans votre cas, vous pourriez faire quelque chose comme:

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

Référence doc: http://www.highcharts.com/documentation/how -À-utiliser les options de #

Si cela échoue, les commentaires ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top