将实际数据添加到条形图:Android Studio

时间:2016-09-30 10:29:58

标签: android android-studio mpandroidchart

我很容易使用MPAndroidChart库创建条形图并尝试下面的示例。我正在努力寻找有关如何将应用程序中的实际数据链接到此条形图的信息。例如,得分管理员应用程序。如何在团队a和团队b的条形图上绘制每日最终得分?我的应用程序显示两个团队的分数,但如何将显示的最终分数转移到下面的代码中? (我只做了6周的android开发)。

 /*Displays the given score for Team A.*/
    public void displayForTeamB(int score) {
            TextView scoreView = (TextView) findViewById(R.id.team_a_score);
            scoreView.setText(String.valueOf(score));
        }


    repositories {
        maven { url "https://jitpack.io" }
    }

    dependencies {
        compile 'com.github.PhilJay:MPAndroidChart:v2.0.9'
    }

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    xmlns:tools="http://schemas.android.com/tools"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:paddingLeft="@dimen/activity_horizontal_margin"
                    android:paddingRight="@dimen/activity_horizontal_margin"
                    android:paddingTop="@dimen/activity_vertical_margin"
                    android:paddingBottom="@dimen/activity_vertical_margin"
                    tools:context=".MainActivity">

        <com.github.mikephil.charting.charts.BarChart
            android:id="@+id/chart"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </RelativeLayout>

    package com.truiton.mpchartexample;

    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;

    import com.github.mikephil.charting.charts.BarChart;
    import com.github.mikephil.charting.data.BarData;
    import com.github.mikephil.charting.data.BarDataSet;
    import com.github.mikephil.charting.data.BarEntry;
    import com.github.mikephil.charting.utils.ColorTemplate;

    import java.util.ArrayList;

    public class MainActivity extends ActionBarActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            BarChart chart = (BarChart) findViewById(R.id.chart);

            BarData data = new BarData(getXAxisValues(), getDataSet());
            chart.setData(data);
            chart.setDescription("My Chart");
            chart.animateXY(2000, 2000);
            chart.invalidate();
        }

        private ArrayList<BarDataSet> getDataSet() {
            ArrayList<BarDataSet> dataSets = null;

            ArrayList<BarEntry> valueSet1 = new ArrayList<>();
            BarEntry v1e1 = new BarEntry(110.000f, 0); // Jan
            valueSet1.add(v1e1);


            ArrayList<BarEntry> valueSet2 = new ArrayList<>();
            BarEntry v2e1 = new BarEntry(150.000f, 0); // Jan
            valueSet2.add(v2e1);


            BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Brand 1");
            barDataSet1.setColor(Color.rgb(0, 155, 0));
            BarDataSet barDataSet2 = new BarDataSet(valueSet2, "Brand 2");
            barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS);

            dataSets = new ArrayList<>();
            dataSets.add(barDataSet1);
            dataSets.add(barDataSet2);
            return dataSets;
        }

        private ArrayList<String> getXAxisValues() {
            ArrayList<String> xAxis = new ArrayList<>();
            xAxis.add("JAN");
            xAxis.add("FEB");
            xAxis.add("MAR");
            xAxis.add("APR");
            xAxis.add("MAY");
            xAxis.add("JUN");
            return xAxis;
        }
    }

1 个答案:

答案 0 :(得分:1)

通过查看代码,您已经可以设置基本的图形界面。因此,我只编写代码,用于为分数线分配条目,这些代码看起来就像我的代码中的样本。

     // creating list of entry
        ArrayList<Entry> entries = new ArrayList<>();
        entries.add(new Entry(100f, 0));
        entries.add(new Entry(1000f, 1));
        entries.add(new Entry(600f, 2));
        entries.add(new Entry(1500f, 3));
        entries.add(new Entry(3500f, 4));


        final LineDataSet dataset = new LineDataSet(entries, "");
        dataset.setDrawCircles(true);
        dataset.setDrawCubic(true);
        dataset.setLineWidth(7f);
        dataset.setValueTextColor(getResources().getColor(R.color.colorAccent));
        dataset.setColor(Color.parseColor("#ED1A4D"));
        dataset.setValueTextSize(14f);
        dataset.setCircleColor(Color.parseColor("#ED1A4D"));
        dataset.setCircleRadius(7f);
        dataset.setCircleColorHole(0);

// creating labels
        final ArrayList<String> labels = new ArrayList<String>();
        labels.add("12AM");
        labels.add("06AM");
        labels.add("12PM");
        labels.add("06PM");
        labels.add("12AM");


        List<ILineDataSet> dataSetslist = new ArrayList<ILineDataSet>();
        dataSetslist.add(dataset);

LineData data = new LineData(labels, dataSetslist);


lineChart.setData(data); // set the data and list of lables into chart
        lineChart.animateY(1500);
        lineChart.setDescription("Daily report");
        lineChart.setScaleEnabled(false);

希望如果您仍需要更多帮助,请随时发表评论。