相关疑难解决方法(0)

MPAndroidChart - 如何在缩放时更改ValueFormatter?

我正在使用MPAndroidChart库.我正在使用CustomValueFormatter格式化Float值,使其精度为1.

CustomValueFormatter代码:

public class CustomYAxisValueFormatter implements YAxisValueFormatter {

    private DecimalFormat mFormat;

    public CustomYAxisValueFormatter() {
        mFormat = new DecimalFormat("###,###,###,##0.0"); // sets precision to 1
    }

    @Override
    public String getFormattedValue(float value, YAxis yAxis) {
        return mFormat.format(value);
    }
}
Run Code Online (Sandbox Code Playgroud)

我将格式化程序设置为y轴.

设置格式化程序:

    YAxis yAxis = lineChart.getAxisLeft(); //show left y-axis line        
    yAxis.setValueFormatter(new CustomYAxisValueFormatter()); // set value formatter to format y-values.
Run Code Online (Sandbox Code Playgroud)

因此,默认情况下会创建setValueFormatter(YAxisValueFormatter)上述格式化程序(CustomYAxisValueFormatter).

问题是在缩放时无法重新创建CustomYAxisValueFormatter,从而导致重复的y值.

是否可以创建一个基于缩放级别更改值精度的CustomValueFormatter?

android mpandroidchart

6
推荐指数
1
解决办法
2143
查看次数

在xAxis MPChart上获取重复值

现在我正面临着这个问题.我在xAx中得到的重复值是第一个和最后一个.图形值不是根据各个x轴值的值.第二个问题是,如果我想显示不在float中但在int Rounded中的值,并将它们的颜色更改为白色.

ArrayList<String> xlabels = new ArrayList<String>();
        xlabels.add("Jan");
        xlabels.add("Feb");
        xlabels.add("Mar");
        xlabels.add("Apr");
        xlabels.add("May");
        xlabels.add("Jun");

        ArrayList<String> values = new ArrayList<String>();
        values.add("1");
        values.add("20");
        values.add("10");
        values.add("80");
        values.add("90");
        values.add("24");

        showLineChart(clickChart,xlabels,values,mColors[3]);
Run Code Online (Sandbox Code Playgroud)

showLineChart方法:

private void showLineChart(LineChart chart,final List<String> xLabels, List<String> values,int color){
        List<Entry> entries = new ArrayList<Entry>();
        for(int i=0;i<values.size();i++){
            entries.add(new Entry(i, Integer.parseInt(values.get(i))));
        }



        LineDataSet dataSet = new LineDataSet(entries, "Numbers");
        dataSet.setLineWidth(1.75f);
        dataSet.setCircleRadius(5f);
        dataSet.setCircleHoleRadius(2.5f);
        dataSet.setColor(Color.WHITE);
        dataSet.setCircleColor(Color.WHITE);
        dataSet.setHighLightColor(Color.WHITE);
        dataSet.setDrawValues(true);


        LineData data = new LineData(dataSet);
        ((LineDataSet) data.getDataSetByIndex(0)).setCircleColorHole(color);

        chart.getDescription().setEnabled(false);

        chart.setDrawGridBackground(false);

        chart.setTouchEnabled(true);

        chart.setBorderColor(Color.WHITE);

        chart.setDragEnabled(true);
        chart.setScaleEnabled(true);


        chart.setPinchZoom(false);

        chart.setBackgroundColor(color);

        YAxis yAxisLeft = chart.getAxisLeft();
        yAxisLeft.setTextColor(Color.WHITE);
        yAxisLeft.setAxisLineColor(Color.WHITE); …
Run Code Online (Sandbox Code Playgroud)

charts android mpandroidchart

6
推荐指数
2
解决办法
1839
查看次数

标签 统计

android ×2

mpandroidchart ×2

charts ×1