MPAAndroidChart Open Source Chart Library Pie Chart
Je vous présenterai une bibliothèque open source icône MPAAndroidChart. Il peut non seulement dessiner divers graphiques statistiques sur les appareils Android, mais aussi faire glisser et zoomer les graphiques, qui est très flexible à utiliser. MpandroidChart a également des types de graphiques communs: graphiques de ligne, graphiques à secteurs, graphiques à barres et graphiques de dispersion.
Adresse de téléchargement du package mpandroidchartlibrary.jar:
https://github.com/philjay/mpandroidchart/releases
Ce qui suit implémente principalement le graphique à tarte suivant:
1. Téléchargez le dernier package MpandroidChartLibrary-2-0-8.jar à partir de l'adresse ci-dessus et copiez-le dans les LIB du projet
2. Définissez le fichier XML
3. Le code logique Java principal est le suivant.
importjava.util.arraylist; importcom.github.mikephil.charting.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; import android.support.v7.app.actionBarActivity; importAndroid.graphics.color; importAndroid.os.bundle; importAndroid.util.displayMetrics; La classe publique MainActivity étend ActionBarActivity {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); // Circle translucide // pichart.setholeradius (0) // cercle solide piechart.setDescription ("Test Pie Chart"); // mChart.setDrawyValues (true); pichart.setdrawCenterText (true); // Le texte peut être ajouté au milieu du graphique à tarte pichart.setDrawHoleenabled (true); pichart.setRotationAngle (90); // l'angle de rotation initial // dessine la valeur de description correspondante dans la tranche // mCHART.SetDrawxValues (true); // Activer la rotation du graphique par tactile pichart.setRotationEnabled (true); // peut être tourné manuellement // Afficher les valeurs de pourcentage Piechart.SetUsepercentValues (true); // Afficher les pourcentages // mChart.setUnit ("); // Afficher les pourcentages // mChart.setUnit ("); // mCHART.SetDrawunitsInChart (true); // Ajouter un écouteur de sélection // mChart.setOnChartValuesElectedListener (this); // mChart.SetTouchEnabled (false); // mChart.setonanimationListener (this); pichart.setCenterText ("Revenue trimestrielle"); // Texte au milieu du graphique à tarte // Définir les données Piechart.setData (Piedata); // UNDO TOUS les points forts // piechart.highlightValues (null); // pichart.invalidate (); Legend Mlegend = piechart.getLegend (); // Définit le graphique de l'échelle MleGend.SetPosition (LegendPosition.Right_Of_Chart); // Afficher à l'extrême droite // mlegend.setform (LegendForm.line); // Définit la forme du graphique d'échelle, la valeur par défaut est Square MleGend.SetxentrySpace (7F); MleGend.SetyEntrySpace (5F); pichart.animatexy (1000, 1000); // Définit l'animation // mChart.spin (2000, 0, 360); } / ** * * @param Count divisé en plusieurs parties * @param gamme * / privatePiedatagetPiedata (int count, gamme float) {arrayList <string> xvalues = new ArrayList <string> (); // XVALS est utilisé pour représenter le contenu sur chaque tarte pour (inti = 0; i <count; i ++) {xvalues.add ("Quarterly" + (i + 1)); // L'affichage sur le tarte est trimestriel1, trimestriel2, trimestriel3, trimestriel4} ArrayList <Nery> yValues = new ArrayList <Nery> (); // YVALS est utilisé pour représenter les données réelles encapsulant chaque bloc de tarte // Données du graphique à tarte / ** * Divisez un graphique à tarte en quatre parties, et le rapport numérique des quatre parties est de 14: 14: 34: 38 *, donc le pourcentage représenté par 14 est 14% * / Float Quarterly1 = 14; Float Quarterly2 = 14; Float Quarterly3 = 34; Float Quarterly4 = 38; yvalues.add (nouvelle entrée (Quarterly1, 0)); yvalues.add (nouvelle entrée (Quarterly2, 1)); yvalues.add (nouvelle entrée (Quarterly3, 2)); yvalues.add (nouvelle entrée (Quarterly4, 3)); // La collection de l'axe y-axe PiedatasetPiedataset = new Piedataset (Yvalues, "Quarterly Revenue 2014" / * Show on the Scale Chart * /); PiedAtaset.SetSlicespace (0f); // Définissez la distance entre les graphiques de tartes ArrayList <Integer> Colors = new ArrayList <Integer> (); // Couleurs du graphique à tarte.add (Color.rgb (205, 205, 205)); couleurs.add (color.rgb (114, 188, 223)); couleurs.add (color.rgb (255, 123, 124)); couleurs.add (color.rgb (57, 135, 200)); Piedataset.setColors (couleurs); DisplayMetrics Metrics = getResources (). GetDisplayMetrics (); floatpx = 5 * (metrics.densitydpi / 160f); Piedataset.SetSelectionhift (PX); // la longueur de l'état sélectionné Piedatapiedata = new Piedata (xvalues, PieDataset); returnPiedata; }} Les rendus sont les suivants:
MPAAndroidChart Open Source Chart Library Line Chart
1. Copiez le package MandroidChartLibrary-2-0-8.jar dans les LIB du projet
2. Définissez le fichier XML
3. Le code logique Java principal est le suivant.
packagecom.example.mpandroidlineChart; importjava.util.arraylist; importcom.github.mikephil.charting.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; import android.support.v7.app.actionBarActivity; importAndroid.graphics.color; importAndroid.os.bundle; La classe publique MainActivity étend ActionBarActivity {privatelineChartMlineChart; // Face privée MTF; @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)); } // Définissez le style d'affichage privé void showchart (LineChartlineChart, lineDatalinedata, int colore) {lineChart.setdrawBorders (false); // où ajouter des bordures au graphique de ligne // pas de description text LineChart.setDescription (""); // Description des données // S'il n'y a pas de données, cela sera affiché, similaire à ListView EmtpyViewlineChart.SetNodatatexTDescription ("Vous devez fournir des données pour le graphique."); // Activer / désactiver Background Grid LineChart.SetDrawGridBackground (false); // s'il faut afficher la table Color LineChart.SetGridBackgroundColor (Color.White & 0x70FFFFFF); // La couleur de la table, voici pour définir une transparence pour la couleur // Activer Touch Gears LineChart.SetToucheNabled (true); // Définissez si elle peut être touchée // Activer la mise à l'échelle et le glisser LineChart.SetDrageNabled (true); // pouvez-vous faire glisser et déposer LineChart.SetScaleenabled (true); // pouvez-vous évoluer // si désactivé, la mise à l'échelle peut être effectuée sur les axes x et y séparément LineChart.setpinchzoom (false); // linechart.setbackgroundColor (couleur); // Définir Background // Ajouter Data LineChart.setData (linedata); // Définir les données // Obtenez la légende (uniquement possible après la définition des données) Legend MleGend = LineChart.GetLegend (); // Définissez l'icône de l'échelle, qui est la valeur du groupe de y // Modifier la légende ... // 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); // Exécution immédiate de l'animation, x-axe} / ** * générer un nombre de données * @param indique le nombre de points de coordonnées dans la gamme * @param utilisée pour générer des nombres aléatoires dans la gamme * @return * / privateLinedatageTLeineData (int count, float plage) {ArrayList <string> xvalues = new ArrayList <string> ();); pour (inti = 0; i <count; i ++) {// Données affichées sur l'axe x, par défaut, l'indice numérique est utilisé pour afficher xvalues.add ("" + i); } // Les données Y-axis ArrayList <Nery> yValues = new ArrayList <Nery> (); pour (inti = 0; i <count; i ++) {float value = (float) (math.random () * plage) + 3; yvalues.add (nouvelle entrée (valeur, i)); } // Créez un ensemble de données et donnez-lui un type de données de type // y-axis lineDataSetlineDataset = new lineDataSet (yvalues, "Test Line Chart" / * affiché sur le graphique d'échelle * /); // mlineDataset.setFillalpha (110); // mlineDataSet.setFillColor (Color.Red); // utilise le jeu de l'axe y pour définir le paramètre lineDataSet.setLinewidth (1.75f); // lineWidth lineDataSet.setCircleSize (3f); // Affichez la taille du cercle linedataset.setColor (color.white); // Affichez la couleur linedataset.setCircleColor (Color.white); // la couleur du cercle linedataset.sethighlightcolor (couleur.white); // la couleur de la ligne en surbrillance ArrayList <LeneDataSet> lineDatAsets = new ArrayList <LeneDataSet> (); linedatasets.add (lineDataset); // Ajouter les ensembles de données // Créer un objet de données avec les ensembles de données linedatalinedata = new lineData (xvalues, lineDatasets); returnlineData; }} Les rendus sont les suivants:
MPAAndroidChart Open Source Chart Library Library Bar
1. Copiez le package MandroidChartLibrary-2-0-8.jar dans les LIB du projet
2. Définissez le fichier XML
3. Le code logique Java principal est le suivant.
packagecom.jackie.mpandoidbarchart; importjava.util.arraylist; importcom.github.mikephil.charting.charts.barchart; importcom.github.mikep hil.charting.charts.linechart; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.components.legend Form; importcom.github.mikephil.charting.components.xaxis; importcom.github.mikephil.charting.components.xaxis.xaxisposition; importcom.githu b.mikephil.charting.data.bardata; importcom.github.mikephil.charting.data.bardataset; importcom.github.mikephil.charting.data.barentry; importation; Android.Support.v7.app.ActionBarActivity; importAndroid.Graphics.Color; ImportAndroid.os.Bundle; la classe publique MainActivity étend ActionBarActivity {privateBarchartMbarchart; PrivateBardatambardata; @OverRideprotected Void OnCreate (bundle SavedInstanSate) {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); /// où ajouter des bordures sur le graphique en ligne barchart.setdescription (""); // description des données // S'il n'y a pas de données, cela sera affiché, similaire à l'EmptyViewBarchart de ListView. "); barchart.setdrawgridbackground (false); // s'il faut afficher le tableau Color Barchart.SetGridBackgroundColor (Color.White & 0x70FFFFFF); // La couleur de la table, voici pour définir une transparence pour la couleur barchart.setToucheNabled (true); // Définissez si Barchart.SetDrageNabled (true); // si Barchart.SetScaleenabled (true); // si barchart.setpinchzoom (false); // // barchart.setbackgroundcolor (); // Définit Background Barchart.SetDrawBarshadow (true); barchart.setData (Bardata); // Définir Data Legend MleGend = BarChart.getLegend (); // Set Scale Icon MleGend.SetForm (LegendForm.Circle); // style mleGend.SetFormsize (6f); // font mlegend.setTextColor (Color.Black); // Couleur // Paramètre x-axis // xaxisxaxis = barChart.getXaxis (); // xaxis.setPosition (xaxisposition.bottom); barchart.animatex (2500); // Exécution immédiate de l'animation, axe x-axe} privatebardatagetbardata (int count, gamme float) {arrayList <string> xvalues = new ArrayList <string> (); for (inti = 0; i <count; i ++) {xvalues.add ("th" + (i + 1) + "quart");} ArrayList <baRentRy> ArrayList <Barentry> (); pour (inti = 0; i <count; i ++) {float value = (float) (math.random () * Nombre aléatoire dans la plage / * 100 * /) + 3; yvalues.add (new Barentry (valeur, i)); } // Ensemble de données de l'axe y-axe BardatasetBardataset = new Bardataset (yvalues, "Test Pie Chart"); Bardataset.setColor (Color.rgb (114, 188, 223)); ArrayList <Bardataset> BardatAsets = new ArrayList <Bardataset> (); Bardatasets.add (Bardataset); // Ajouter les ensembles de données bardatabardata = new Bardata (xvalues, Bardatasets); returnBardata;}} packagecom.jackie.mpandoidbarchart; importjava.util.arraylist; importcom.github.mikephil.charting.charts.barchart; importcom.github.mikephil.chart ing.charts.linechart; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.components.legend; importcom.github.mikephil.charting.components. .Legend.legendform; importcom.github.mikephil.charting.components.xaxis; importcom.github.mikephil.charting.components.xaxis.xaxispose; m.github.mikephil.charting.data.bardata; importcom.github.mikephil.charting.data.bardataset; importcom.github.mikephil.charting.data.barentry; import; Android.Support.v7.app.ActionBarActivity; importAndroid.Graphics.Color; ImportAndroid.os.Bundle; la classe publique MainActivity étend ActionBarActivity {privateBarchartMbarchart; PrivateBardatambardata; @OverRideprotected Void OnCreate (bundle SavedInstanSate) {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); /// où ajouter des bordures sur le graphique en ligne barchart.setdescription (""); // description des données // S'il n'y a pas de données, cela sera affiché, similaire à l'EmptyViewBarchart de ListView. "); barchart.setdrawgridbackground (false); // s'il faut afficher le tableau Color Barchart.SetGridBackgroundColor (Color.White & 0x70FFFFFF); // La couleur de la table, voici pour définir une transparence pour la couleur barchart.setToucheNabled (true); // Définissez si Barchart.SetDrageNabled (true); // si Barchart.SetScaleenabled (true); // si barchart.setpinchzoom (false); // // barchart.setbackgroundcolor (); // Définit Background Barchart.SetDrawBarshadow (true); barchart.setData (Bardata); // Définir Data Legend MleGend = BarChart.getLegend (); // Set Scale Icon MleGend.SetForm (LegendForm.Circle); // style mleGend.SetFormsize (6f); // font mlegend.setTextColor (Color.Black); // Couleur // Paramètre x-axis // xaxisxaxis = barChart.getXaxis (); // xaxis.setPosition (xaxisposition.bottom); barchart.animatex (2500); // Exécution immédiate de l'animation, axe x-axe} privatebardatagetbardata (int count, gamme float) {arrayList <string> xvalues = new ArrayList <string> (); for (inti = 0; i <count; i ++) {xvalues.add ("th" + (i + 1) + "quart");} ArrayList <baRentRy> ArrayList <Barentry> (); pour (inti = 0; i <count; i ++) {float value = (float) (math.random () * Nombre aléatoire dans la plage / * 100 * /) + 3; yvalues.add (new Barentry (valeur, i)); } // Ensemble de données de l'axe y-axe BardatasetBardataset = new Bardataset (yvalues, "Test Pie Chart"); Bardataset.setColor (Color.rgb (114, 188, 223)); ArrayList <Bardataset> BardatAsets = new ArrayList <Bardataset> (); Bardatasets.add (Bardataset); // Ajouter les ensembles de données Bardatabardata = new Bardata (xvalues, bardatasets); returnBardata;}} Les rendus sont les suivants:
Ce qui précède est l'introduction de l'utilisation de la bibliothèque du graphique open source MPAAndroidChart, qui est liée au graphique à tarte, au graphique de ligne et à la barre. J'espère que ce sera utile à tout le monde.