水平显示MPAndroidChart PieChart

时间:2018-02-13 07:46:37

标签: android mpandroidchart

是否有一个看起来像PieChart而不是圈子的图表,数字应该显示在水平栏中?

在PieChart中,我们在Circle中显示数字。但是如何在单条(水平)中显示它们?

任何人都可以在这里帮忙吗?

我需要这个PieChart的水平图表 enter image description here

我尝试更新我的代码以使用horizo​​ntalbarchar并获得下面的图表。但是图表中的值显示错误,我也不想显示其他以红色标记的参数。有人可以帮助我。

我的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <com.github.mikephil.charting.charts.HorizontalBarChart
        android:id="@+id/chart1"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="@android:color/white" />



</RelativeLayout>

我的代码:

  super.onCreate(savedInstanceState);
        setContentView(R.layout.horizontal_seekbar_layout);
        mChart = findViewById(R.id.chart1);

        ArrayList<BarEntry> values=new ArrayList<>();
        values.add(new BarEntry(0,new float[]{5,3,1}));

        BarDataSet set1=new BarDataSet(values,"Summary");
        //set1.setDrawIcons(false);
        set1.setStackLabels(new String[]{"Passed","Failed","Skipped"});
        ArrayList<Integer> colors=new ArrayList<Integer>();
        colors.add(Color.GREEN);
        colors.add(Color.RED);
        colors.add(Color.GRAY);
        set1.setColors(colors);
        set1.setValueFormatter(new DecValueFormatter());

        BarData data=new BarData(set1);
        mChart.setData(data);
       // mChart.setFitBars(true);
        mChart.invalidate();

我现在得到的图表: enter image description here

1 个答案:

答案 0 :(得分:1)

可以使用mp android图表的堆积条形图来完成。请按照以下示例执行此操作:

ArrayList<BarEntry> barEntries = new ArrayList<BarEntry>();
    barEntries.add(new BarEntry(0, new float[]{2,4,5,3}));


    BarDataSet barDataSet = new BarDataSet(barEntries, "Stacked Bars");
    barDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
    barDataSet.setHighlightEnabled(true);
    barDataSet.setHighLightColor(Color.RED);
    barDataSet.setColors(getColors(4,Color.RED,Color.BLUE,Color.GREEN,Color.CYAN));
    barDataSet.setStackLabels(new String[]{"Bottom","Top","Left","Right"});

    BarData barData = new BarData(barDataSet);
    barData.setValueTextSize(defaultValueTextSize);
    barData.setValueTextColor(getColor("primaryDark"));

    barChart.setDrawValueAboveBar(false); // add this line to show values inside bars
    barChart.getAxisLeft().setAxisMinimum(0);
    barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTH_SIDED);
    barChart.animateY(1000);
    barChart.setData(barData);

这是垂直条只是使用这个库的水平条形图,你很高兴与伙伴一起去。快乐编码:)