MPAandroidchart Open Source Chart Library Pie Chart
Saya akan memperkenalkan Anda ke ikon Perpustakaan Open Source MpaandroidChart. Ini tidak hanya dapat menggambar berbagai grafik statistik pada perangkat Android, tetapi juga menyeret dan memperbesar grafik, yang sangat fleksibel untuk digunakan. MpandroidChart juga memiliki jenis grafik umum: bagan garis, diagram lingkaran, diagram batang, dan bagan sebar.
mpandroidchartlibrary.jar alamat unduhan paket:
https://github.com/philjay/mpandroidchart/releases
Berikut ini terutama mengimplementasikan diagram lingkaran berikut:
1. Unduh paket mpandroidchartlibrary-2-0-8.jar terbaru dari alamat di atas dan salin ke dalam proyek Libs
2. Tentukan file XML
3. Kode logika Java utama adalah sebagai berikut.
imporJava.util.arraylist; importcom.github.mikephil.chartting.charts.piechart; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.data.entry; importcom.github.mikephil.charting.data.piedataset; impor android.support.v7.app.actionBaractivity; importAndroid.graphics.color; importAndroid.os.bundle; ImportAndroid.util.DisplayMetrics; MainActivity kelas publik memperluas aksi aksi {privatePiechartMchart; @Override Protected void onCreate (bundle savedInstanceState) {super.onCreate (saveDinstanceState); setContentView (r.layout.activity_main); mchart = (piechart) findViewById (r.id.spread_pie_chart); Piedatampiedata = getpiedata (4, 100); Showchart (McHart, Mpiedata); } private void showchart (piechartpiechart, piedatapiedata) {piechart.setholecolortransparent (true); piechart.setholeradius (60f); //Radiuspiechart.setTransparentcircleradius(64f); // lingkaran tembus piechart.setholeradius (0) // solid circle piechart.setdescription ("test pie chart"); // mchart.setDrawyValues (true); piechart.setdrawcentext (true); // Teks dapat ditambahkan di tengah diagram lingkaran piechart.setdrawoleenabled (true); piechart.setrotationangle (90); // sudut rotasi awal // menggambar nilai deskripsi yang sesuai ke dalam slice // mchart.setDrawxValues (true); // Aktifkan rotasi bagan dengan sentuh piechart.setrotationenabled (true); // dapat diputar secara manual // menampilkan nilai persentase piechart.setusepercentValues (true); // Persentase tampilan // mchart.setunit ("); // Tampilkan persentase // mchart.setunit ("); // mchart.setdrawunitsinchart (true); // tambahkan pendengar pilihan // mchart.setonChartValueselectedListener (ini); // mchart.settouchenabled (false); // mchart.setonanimationListener (ini); piechart.setCenterText ("pendapatan triwulanan"); // teks di tengah diagram lingkaran // atur data piechart.setData (piedata); // Undo semua sorotan // piechart.highlightvalues (null); // piechart.invalidate (); Legenda mlegend = piechart.getlegend (); // atur grafik skala mlegend.setPosition (legendposition.right_of_chart); // Tampilkan di paling kanan // mlegend.setform (legendform.line); // Atur bentuk grafik skala, defaultnya adalah mlegend square.setxentryspace (7F); mlegend.setyentryspace (5F); piechart.animatexy (1000, 1000); // atur animasi // mchart.spin (2000, 0, 360); } / ** * * @param Count dibagi menjadi beberapa bagian * @param range * / privatePiedAtagetPiedata (int count, range float) {arraylist <string> xValues = ArrayList baru <string> (); // xval digunakan untuk mewakili konten pada setiap pie untuk (inti = 0; i <count; i ++) {xvalues.add ("triwulanan" + (i + 1)); // Layar di PIE adalah Quarterly1, Quarterly2, Quarterly3, Quarterly4} ArrayList <TREST> yVALUES = Daftar ArrayList baru <TREST> (); // YVAL digunakan untuk mewakili data aktual yang merangkum setiap blok pie // data diagram lingkaran/** * Bagilah diagram lingkaran menjadi empat bagian, dan rasio numerik dari empat bagian adalah 14: 14: 34: 38 * sehingga persentase yang diwakili oleh 14 adalah 14% */float triwietly1 = 14; Float Quarterly2 = 14; Float Quarterly3 = 34; Float Quarterly4 = 38; yvalues.add (entri baru (triwully1, 0)); yValues.Add (entri baru (Quarterly2, 1)); yValues.Add (entri baru (Quarterly3, 2)); yvalues.add (entri baru (Quarterly4, 3)); // Koleksi piedatasetpiedataet axis = new piedataset (yValues, "triwulanan pendapatan 2014"/*tampil di grafik skala*/); piedataset.setslicespace (0F); // atur jarak antara pai grafik arraylist <integer> colors = new ArrayList <Integer> (); // pie chart color.add (color.rgb (205, 205, 205)); Colors.add (Color.RGB (114, 188, 223)); colors.add (color.rgb (255, 123, 124)); Colors.add (Color.rgb (57, 135, 200)); piedataset.setColors (warna); DisplayMetrics Metrics = getResources (). GetDisplayMetrics (); floatpx = 5 * (metrics.densitydpi / 160f); piedataset.setselectionHift (px); // Panjang status piedatapiedata yang dipilih = piedata baru (xvalues, piedataset); Returnpiedata; }} Rendering adalah sebagai berikut:
MPAANDROIDCHART BAGAN PERPUSTAKAAN PERPUSTAKAAN OPEN SUMBER PERPUSTAKAAN
1. Salin paket mandroidchartlibrary-2-0-8.jar ke dalam proyek Libs
2. Tentukan file XML
3. Kode logika Java utama adalah sebagai berikut.
packageCom.example.mpandroidlinechart; imporJava.util.arraylist; importcom.github.mikephil.chartting.charts.linechart; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.components.legendform; importcom.github.mikephil.charting.data.entry; importcom.github.mikephil.charting.data.linedataset; importcom.github.mikephil.charting.data.linedataset; impor android.support.v7.app.actionBaractivity; importAndroid.graphics.color; importAndroid.os.bundle; MainActivity kelas publik memperluas ActionBaractivity {PrivatelInechartMlinechart; // MTF jenis kelip pribadi; @Override Protected void onCreate (bundle savedInstanceState) {super.onCreate (saveDinstanceState); setContentView (r.layout.activity_main); mlinechart = (linechart) findViewById (r.id.spread_line_chart); // mtf = typeface.createFromasset (getAssets (), "opensans-bold.ttf"); Linedatamlinedata = getLinedata (36, 100); Showchart (Mlinechart, Mlinedata, Color.rgb (114, 188, 223)); } // Atur pajangan void private style tampilan (linechartlinechart, linedatalinedata, warna int) {linechart.setDrawBorders (false); // Di mana menambahkan batas ke bagan baris // Tidak ada deskripsi teks linechart.setDescription (""); // Deskripsi Data // Jika tidak ada data, ini akan ditampilkan, mirip dengan ListView EMTPYVIEWLINECHART.SETNODATETEXTDESCRIPTION ("Anda perlu memberikan data untuk grafik."); // mengaktifkan / menonaktifkan latar belakang grid linechart.setDrawGridBackground (false); // apakah akan menampilkan tabel warna linechart.setGridBackgroundColor (color.white & 0x70fffff); // Warna tabel, di sini adalah untuk mengatur transparansi untuk warna // aktifkan gigi sentuh linechart.settouchenabled (true); // atur apakah itu dapat disentuh // aktifkan penskalaan dan seret linechart.setDragenabled (true); // dapatkah Anda menyeret dan menjatuhkan linechart.setscaleenabled (true); // Bisakah Anda skala // jika dinonaktifkan, penskalaan dapat dilakukan pada sumbu x- dan y secara terpisah linechart.setpinchzoom (false); // linechart.setBackgroundColor (warna); // atur latar belakang // tambahkan data linechart.setData (linedata); // Atur data // Dapatkan legenda (hanya mungkin setelah pengaturan data) legenda mlegend = linechart.getLegend (); // Atur ikon skala, yang merupakan nilai grup y // ubah legenda ... // mlegend.setposition (legendposition.left_of_chart); mlegend.setform (legendform.circle); // style mlegend.setformsize (6f); // font mlegend.settextcolor (color.white); // color // mlegend.settypeface (mtf); // font linechart.animatex (2500); // Immediate execution of animation, x-axis} /** * Generate a data* @param count Indicates how many coordinate points there are in the chart* @param range Used to generate random numbers within range* @return */ privateLineDatagetLineData(int count, float range) { ArrayList<String>xValues = new ArrayList<String>(); untuk (inti = 0; i <count; i ++) {// Data yang ditampilkan pada sumbu x, secara default, subskrip numerik digunakan untuk menampilkan xvalues.add (""+i); } // Y-AXIS Data ArrayList <TREST> yVALUES = NEW ARRAYLIST <TREST> (); untuk (inti = 0; i <count; i ++) {float value = (float) (math.random () * range)+3; yvalues.add (entri baru (nilai, i)); } // Buat dataset dan berikan tipe // Y-AXIS set data linedataSetLinedataSet = new LinedataSet (yValues, "test line chart" /*ditampilkan pada grafik skala* /); // mlinedataset.setfillalpha (110); // mlinedataset.setFillColor (color.red); // Gunakan set sumbu y untuk mengatur parameter linedataset.setlinewidth (1.75F); // linewidth linedataset.setcirclessize (3f); // tampilkan ukuran lingkaran linedataset.setColor (color.white); // Tampilkan warna linedataset.setcirclecolor (color.white); // Warna lingkaran linedataset.setHighlightColor (color.white); // Warna arraylist garis yang disorot <LinedataSet> linedataSets = new ArrayList <LinedataSet> (); LinedataSets.add (LinedataSet); // Tambahkan dataset // Buat objek data dengan dataset linedatalinedata = new linedata (xValues, linedataSets); Returnlinedata; }} Rendering adalah sebagai berikut:
MPAandroidChart Open Source Chart Library Bar Chart
1. Salin paket mandroidchartlibrary-2-0-8.jar ke dalam proyek Libs
2. Tentukan file XML
3. Kode logika Java utama adalah sebagai berikut.
packageCom.jackie.mpandoidbarchart; importjava.util.arraylist; importcom.github.mikephil.chartting.charts.barchart; importcom.github.mikep hil.chartting.charts.linechart; importcom.github.mikephil.chartting.components.legend; importcom.github.mikephil.chartting.components.legend Formulir; importcom.github.mikephil.charting.components.xaxis; importcom.github.mikephil.chartting.components.xaxis.xaxisposisi; importcom.githu b.mikephil.chartting.data.bardata; importcom.github.mikephil.chartting.data.bardataset; importcom.github.mikephil.chartting.data.barentry; import android.support.v7.app.ActionBarActivity;importandroid.graphics.Color;importandroid.os.Bundle;public class MainActivity extends ActionBarActivity {privateBarChartmBarChart;privateBarDatamBarData;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (r.layout.activity_main); mbarchart = (barchart) findviewById (r.id.spread_bar_chart); mbardata = getbardata (4, 100); showbarchart (mbarchart, mbardata);} private void showbarchart (barchartbarchart, bardatabardata) {barchart.setDrawBorders (false); /// di mana harus menambahkan perbatasan di bagan garis barchart.setDescription (""); // Deskripsi Data // Jika tidak ada data, ini akan ditampilkan, mirip dengan ListView's EmptyViewBarchART.SetNodateatextDescription ("Anda perlu memberikan data untuk bagan."); Barchart.setDrawGridBackground (false); // apakah akan menampilkan tabel warna barchart.setGridBackgroundColor (color.white & 0x70fffff); // Warna tabel, di sini adalah untuk mengatur transparansi untuk warna barchart.settouchenabled (true); // atur apakah barchart.setDragenabled (true); // apakah barchart.setscaleenabled (true); // apakah barchart.setpinchzoom (false); // // barchart.setBackgroundColor (); // atur latar belakang barchart.setDrawBarshadow (true); Barchart.setData (bardata); // Setel data legenda mlegend = barchart.getLegend (); // atur ikon skala mlegend.setForm (legendform.circle); // style mlegend.setformsize (6f); // font mlegend.setTextColor (color.black); // Color // X-AXIS Pengaturan // xaxisxaxis = Barchart.getXaxis (); // xaxis.setposition (xaxisposition.bottom); Barchart.animatex (2500); // Eksekusi Animasi Segera, X-Axis} PrivateBardAtagetBardata (int count, rentang float) {ArrayList <String> xValues = ArrayList baru <string> (); untuk (inti = 0; i <count; i ++) {xValues.add ("th" + 1) (i + 1) {xValues. ArrayList <BarEntry> (); untuk (inti = 0; i <count; i ++) {float value = (float) (math.random ()*nomor acak dalam rentang/*100*/)+3; yvalues.add (baru barentry (nilai, i)); } // Dataset dari BardatasetBardataSet Axis BardatasetBardataSet = baru bardataset (yValues, "test pie chart"); bardataset.setColor (color.rgb (114, 188, 223)); ArrayList <Bardataset> bardatasets = new ArrayList <Bardataset> (); bardatasets.add (bardataset); // Tambahkan dataset bardatabardata = bardata baru (xValues, bardatasets); returnbardata;}} packageCom.Jackie.mpandoidBarchart; importjava.util.arraylist; importcom.github.mikephil.chartting.charts.barchart; importcom.github.mikephil.chart ing.charts.linechart; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.chartting.components.legend; importcom.github.mikephil.charting.components. .Legend.legendform; importcom.github.mikephil.charting.Components.xaxis; importcom.github.mikephil.chartting.conponents.xaxis.xaxisposisi; importco m.github.mikephil.chartting.data.bardata; importcom.github.mikephil.chartting.data.bardataset; importcom.github.mikephil.chartting.data.barentry; impor android.support.v7.app.ActionBarActivity;importandroid.graphics.Color;importandroid.os.Bundle;public class MainActivity extends ActionBarActivity {privateBarChartmBarChart;privateBarDatamBarData;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (r.layout.activity_main); mbarchart = (barchart) findviewById (r.id.spread_bar_chart); mbardata = getbardata (4, 100); showbarchart (mbarchart, mbardata);} private void showbarchart (barchartbarchart, bardatabardata) {barchart.setDrawBorders (false); /// di mana harus menambahkan perbatasan di bagan garis barchart.setDescription (""); // Deskripsi Data // Jika tidak ada data, ini akan ditampilkan, mirip dengan ListView's EmptyViewBarchART.SetNodateatextDescription ("Anda perlu memberikan data untuk bagan."); Barchart.setDrawGridBackground (false); // apakah akan menampilkan tabel warna barchart.setGridBackgroundColor (color.white & 0x70fffff); // Warna tabel, di sini adalah untuk mengatur transparansi untuk warna barchart.settouchenabled (true); // atur apakah barchart.setDragenabled (true); // apakah barchart.setscaleenabled (true); // apakah barchart.setpinchzoom (false); // // barchart.setBackgroundColor (); // atur latar belakang barchart.setDrawBarshadow (true); Barchart.setData (bardata); // Setel data legenda mlegend = barchart.getLegend (); // atur ikon skala mlegend.setForm (legendform.circle); // style mlegend.setformsize (6f); // font mlegend.setTextColor (color.black); // Color // X-AXIS Pengaturan // xaxisxaxis = Barchart.getXaxis (); // xaxis.setposition (xaxisposition.bottom); Barchart.animatex (2500); // Eksekusi Animasi Segera, X-Axis} PrivateBardAtagetBardata (int count, rentang float) {ArrayList <String> xValues = ArrayList baru <string> (); untuk (inti = 0; i <count; i ++) {xValues.add ("th" + 1) (i + 1) {xValues. ArrayList <BarEntry> (); untuk (inti = 0; i <count; i ++) {float value = (float) (math.random ()*nomor acak dalam rentang/*100*/)+3; yvalues.add (baru barentry (nilai, i)); } // Dataset dari BardatasetBardataSet Axis BardatasetBardataSet = baru bardataset (yValues, "test pie chart"); bardataset.setColor (color.rgb (114, 188, 223)); ArrayList <Bardataset> bardatasets = new ArrayList <Bardataset> (); bardatasets.add (bardataset); // Tambahkan dataset bardatabardata = bardata baru (xvalues, bardataSets); returnbardata;}} Rendering adalah sebagai berikut:
Di atas adalah pengantar penggunaan pustaka bagan open source mpaandroidchart, yang terkait dengan diagram lingkaran, bagan garis, dan bagan batang. Saya harap ini akan membantu semua orang.