2017-05-09 6 views
0

Salut je travaille avec BubbleChart sur MPAndroidChart. Mes valeurs X sont assez grandes et donc la taille de mes bulles est très petite, afin de voir les bulles est nécessaire pour zoomer beaucoup sur la carte .Je mets une grande taille pour les bulles mais elles restent petites. C'est mon code.BubbleChart (MPAndroidChart) - Taille de bulle

BubbleChart bubbleChart = (Diagramme à bulle) findViewById (R.id.bubbleChart);

ArrayList<BubbleEntry> entries = new ArrayList<>(); 


    entries.add(new BubbleEntry(323,1f,10f)); 
    entries.add(new BubbleEntry(981,5f, 10f)); 
    entries.add(new BubbleEntry(1300,3f ,10f)); 


    XAxis xAxis = bubbleChart.getXAxis(); 
    xAxis.setAxisMinimum(0); 
    xAxis.setAxisMaximum(1440); 

    YAxis yAxis = bubbleChart.getAxisLeft(); 

    yAxis.setAxisMinimum(0); 
    yAxis.setAxisMaximum(8); 

    YAxis yAxis2=bubbleChart.getAxisRight(); 
    yAxis2.setAxisMinimum(0); 
    yAxis2.setAxisMaximum(8); 


    BubbleDataSet bubbleDataSet = new BubbleDataSet(entries, ""); 
    bubbleDataSet.setColor(Color.RED,180); 


    BubbleData data= new BubbleData(bubbleDataSet); 
    bubbleChart.setData(data); 

Screenshot: bubblechart

Répondre

0

Ce genre de problème peut être résolu par un pré-traitement de vos données et la multiplication par un scalaire. Ainsi, au lieu de ce que vous avez ci-dessus, vous pouvez essayer de multiplier les valeurs y ou z valeurs par un scalaire (nous avons choisi 100f):

public static float SCALAR = 100f; 

ArrayList<BubbleEntry> entries = new ArrayList<>(); 
entries.add(new BubbleEntry(323, 10 * SCALAR, 10 * SCALAR)); 
entries.add(new BubbleEntry(981, 5 * SCALAR, 10 * SCALAR)); 
entries.add(new BubbleEntry(1300, 3 * SCALAR, 10 * SCALAR)); 

Si vous avez des étiquettes sur les valeurs y ou sur y -axis vous devez alors écrire un IAxisValueFormatter personnalisé ou IValueFormatter pour renvoyer la valeur Y d'origine:

public class MyValueFormatter implements IValueFormatter { 

    String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) { 
     return Float.toString(value/SCALAR); 
    } 
}