2016-12-26 2 views
3

J'essaie de faire un LineChart avec un tracé cubique. Le résultat est comme dans la capture d'écran ci-dessous: le cube bezier affiche mal et a des "pointes". Quelqu'un peut-il m'aider à le faire apparaître correctement?MPAndroidChart: LineChart avec bezier cubique affiche faux (pointes et boucles)

C'est ma config:

 LineDataSet lineDataSet = new LineDataSet(entries,nameLabel); 
     lineDataSet.setColor(Constants.colors.get(i)); 
     lineDataSet.setDrawValues(false); 
     lineDataSet.setDrawCircles(false); 
     lineDataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER); 

Merci cubic line chart with spikes

Répondre

3

questions comme celle-ci peut avoir plusieurs causes:

  1. Ne pas utiliser la dernière version de MPAndroidChart. Assurez-vous que vous utilisez le latest version qui inclut toutes les corrections de bogues.
  2. Utilisation d'une intensité cubique non appropriée pour le DataSet. Essayez d'expérimenter avec des valeurs différentes pour:

    lineDataSet.setCubicIntensity(): 
    
  3. L'utilisation d'une granularité incorrecte pour les xIndices du DataSet. Les cubes fonctionnent bien avec des espaces égaux et petits entre les entrées xIndex. Essayez de pré-traiter votre DataSet afin qu'il y ait une granularité appropriée. Par exemple, si les données d'entrée ont des horodatages avec une granularité de milliseconde, mais que vous ne voulez graver que des points pour des événements qui se produisent toutes les quelques minutes, évitez de faire des entrées avec l'index xIndex à une valeur de milliseconde. Essayez plutôt de faire l'entrée du DataSet en utilisant des secondes ou même des minutes.

Si échoue, il DataSet ces deux approches peut nécessiter un cube qui horizontal va résoudre le problème:

lineDataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER); 
+0

J'ai essayé avec lineDataSet.setMode (LineDataSet.Mode.HORIZONTAL_BEZIER); – Malcom

+0

C'est un peu mieux – Malcom

+0

@Malcolm quelle granularité de temps utilisez-vous? Cela pourrait être un cas où vous devez utiliser des minutes plutôt que des secondes. Difficile à dire sans regarder vos données si –