MPAandroidchart Open Source -Diagramm -Bibliothekskartendiagramm
Ich werde Sie in ein Symbol Open Source Library MPAandroidchart vorstellen. Es kann nicht nur verschiedene statistische Diagramme auf Android -Geräten zeichnen, sondern auch die Diagramme ziehen und zoomen, was sehr flexibel zu verwenden ist. Mpandroidchart verfügt auch über gemeinsame Diagrammtypen: Zeilendiagramme, Kreisdiagramme, Balkendiagramme und Streudiagramme.
mpandroidchartlibrary.jar Paket herunterladen Adresse:
https://github.com/philjay/mpandroidchart/releases
Das Folgende implementiert hauptsächlich das folgende Kreisdiagramm:
1. Laden Sie das neueste MpandroidchartLibrary-2-0-8.jar-Paket von der obigen Adresse herunter und kopieren Sie es in die LIBs des Projekts
2. Definieren Sie die XML -Datei
3. Der Haupt -Java -Logikcode ist wie folgt.
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; MainActivity der öffentlichen Klasse erweitert ActionBarActivity {privatePieChartmchart; @Override Protected void OnCreate (Bündel 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.setHholeColorTransparent (wahr); piechart.setholeradius (60f); //RadiusPieChart.setTransparentCircleradius(64f); // Translucent Circle // piechart.setholeradius (0) // Festkreis piechart.setDescription ("Testkartendiagramm"); // mchart.setdrawyValues (true); pieChart.setDrawCenterText (true); // Der Text kann in der Mitte des Kreisdiagramms piechart.setdrawHoleenabled (true) hinzugefügt werden. piechart.setRotationangle (90); // Anfangsdrehungswinkel // Zeichnet den entsprechenden Beschreibungswert in den Slice // mchart.setDrawxValues (true); // Rotation des Diagramms durch Touch PieChart.setRotationEnabled (true) aktivieren; // kann manuell gedreht werden // prozentuale Werte piechart.setusetercentValues (true); // Prozentsätze anzeigen // mchart.setunit ("); // Prozentsätze anstellen // mchart.setunit ("); // mchart.setdrawunitsinchart (true); // einen Auswahlhörer hinzufügen // mchart.setonChartValuesLectedListener (this); // mchart.Settouchenabled (false); // mchart.setonanimationListener (this); piechart.setCentertext ("Quarterly Revenue"); // Text in der Mitte des Kreisdiagramms // Daten piechart.setData (piedata) festlegen; // alle Highlights // piechart.HighlightValues (null) rückgängig machen; // piechart.invalidate (); Legend mleGend = piechart.getLegend (); // Setzen Sie die Maßstabsgrafik mleGend.setPosition (legendposition.right_of_chart); // ganz rechts anzeigen // mlegend.setform (legendform.line); // Setzen Sie die Form des Skalierungsdiagramms, die Standardeinstellung ist quadratisch mleGend.setXEntrySpace (7F); MleGend.SetyEntrySpace (5F); piechart.Animatexy (1000, 1000); // Setzen Sie die Animation // mchart.spin (2000, 0, 360); } / ** * * @param count in mehrere Teile geteilt * @param range * / privatepiedatagetpiedata (int count, float range) {arrayList <string> xValues = new ArrayList <string> (); // xvals wird verwendet, um den Inhalt an jedem Kuchen für (inti = 0; i <count; i ++) {xvalues.add ("vierteljährlich" + (i + 1)) darzustellen; // Das Display auf dem Kuchen ist Quarterly1, Quarterly2, Quarterly3, Quarterly4} ArrayList <eintrag> yValues = new ArrayList <eintrag> (); // YVals wird verwendet, um die tatsächlichen Daten darzustellen, die jeden Kreisblock einkapseln // Kreisdiagrammdaten/** * Teilen Sie ein Kreisdiagramm in vier Teile, und das numerische Verhältnis der vier Teile beträgt 14: 14: 34: 38 *, so dass der durch 14 repräsentierte Prozentsatz 14% */Float Quarterly1 = 14; 14; Float Quarterly2 = 14; Float Quarterly3 = 34; Float Quarterly4 = 38; yValues.add (neuer Eintrag (Quarterly1, 0)); yvalues.add (neuer Eintrag (vierteljährlich 2, 1)); yValues.add (neuer Eintrag (Quarterly3, 2)); yvalues.add (neuer Eintrag (Quarterly4, 3)); // Die Sammlung der y-achse piedatasetpiedataset = new piedataset (YValues, "Quarterly Revenue 2014"/*in der Skala-Tabelle*/) zeigen; piedataset.setslicesspace (0F); // Setzen Sie den Abstand zwischen Kreisdiagrammen ArrayList <GanzEger> colors = new ArrayList <GanzEger> (); // Kreisdiagrammfarben.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 (Farben); DisplayMetrics metrics = getResources (). GetDisplayMetrics (); floatpx = 5 * (metrics.DensityDPI / 160f); piedataset.SetSelectionShift (PX); // Die Länge des ausgewählten Zustands piedatapiedata = new piedata (xValues, piedataset); returnpiedata; }} Die Renderings sind wie folgt:
MPAandroidchart Open Source -Diagramm -Bibliotheksleitungsdiagramm
1. Kopieren Sie das Mandroidchartlibrary-2-0-8.jar-Paket in die LIBs des Projekts
2. Definieren Sie die XML -Datei
3. Der Haupt -Java -Logikcode ist wie folgt.
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; MainActivity der Öffentlichkeit Klasse erweitert ActionBarActivity {privatelinechArtmlinechArt; // private Schriftart MTF; @Override Protected void OnCreate (Bündel SavedInstancestate) {Super.oncreate (SavedInstancestate); setContentView (r.layout.Activity_main); mlinechart = (lineechart) findViewById (R.Id.spread_line_chart); // mtf = typeface.createfromasset (getassets (), "OpenSANS-BOLD.TTF"); Linedatamlinedata = getlineata (36, 100); Showchart (Mlinechart, Mlinedata, Color.RGB (114, 188, 223)); } // Setzen Sie den Anzeigestil Private void showchart (lineChartlinechart, linedatalinedata, int color) {lineChart.setDrawborders (false); // wo das Zeilendiagramm Grenzen hinzufügen/keine Beschreibung Text linechart.setDescription (""); // Datenbeschreibung // Wenn keine Daten vorhanden sind, wird dies angezeigt, ähnlich wie ListView EmtpyViewLinechart.setnodatatextDescription ("Sie müssen Daten für die Tabelle bereitstellen."). // Grid -Hintergrund lineechart.setDrawGridbackground (Falsch) aktivieren / deaktivieren; // ob die Tabelle Farbe lineechart.setGridbackgroundColor (color.white & 0x70fffff) angezeigt wird; // Die Farbe der Tabelle besteht hier darin, eine Transparenz für die Farbe zu setzen // Touch Gears lineechart.settouchenabled (true) aktivieren. // Stellen Sie fest, ob es berührt werden kann // Skalierung und Ziehen von linechart.setDRagenabled (true) aktivieren; // können Sie linechart.setsCaleenable (true) ziehen und fallen lassen? // können Sie skalieren // Wenn deaktiviert, kann die Skalierung auf X- und Y-Achse separat lineechart.setpinchzoom (false) durchgeführt werden. // lineechart.setbackgroundColor (Farbe); // Hintergrund festlegen // Daten lineechart.setData (Linedata) hinzufügen; // Daten festlegen // Die Legende (erst nach dem Einstellen von Daten) Legende mleGend = lineChart.getlegend () abrufen; // Setzen Sie das Skalierungssymbol, das der Wert der Gruppe von Y // die Legende ändern ... // mleGend.setPosition (legendposition.left_of_chart); mleGend.setform (legendform.circle); // style mleGend.setformSize (6f); // font mleGend.setTextColor (color.white); // color // mleGend.settTypeFace (MTF); // font lineChart.animimimimatex (2500); // Sofortige Ausführung der Animation, x-achse}/ *** generieren Sie eine Daten* @Param-Anzahl zeigt an, wie viele Koordinatenpunkte im Diagramm enthalten sind für (inti = 0; i <count; i ++) {// Daten, die auf der X-Achse angezeigt werden, wird numerischer Index verwendet, um xValues.add (""+i) anzuzeigen; } // y-achse Data ArrayList <eintrags> yValues = new ArrayList <eintrags> (); für (inti = 0; i <count; i ++) {float value = (float) (math.random () * Bereich)+3; yValues.add (neuer Eintrag (Wert, i)); } // Erstellen Sie einen Datensatz und geben Sie ihm einen Typ // y-achse-Datensatz LINEDATASETLINEDATASET = NEW LINEDATASET (YVALUES, "TEST-Zeilendiagramm" /*angezeigt auf dem Skala-Diagramm* /); // mlinedataset.setfillalpha (110); // mlinedataset.setFillcolor (color.red); // Verwenden Sie den y-achse-Satz, um den Parameter Linedataset.SetlineWidth (1.75F) festlegen. // linewidth linedataset.setcirclesize (3F); // Zeigen Sie die Kreisgröße Linedataset.setColor (color.white) an; // Zeigen Sie die Farbgefütterung an. // Die Farbe des Kreises Linedataset.SethighlightColor (color.white); // die Farbe der hervorgehobenen LinienarrayList <Linedataset> linedatasets = new ArrayList <Linedataset> (); linedatasets.add (linedataset); // die Datensätze hinzufügen // Erstellen Sie ein Datenobjekt mit den Datensätzen linedatalinedata = new linedata (XVALUES, LINEDATASETS); Rückkehrung; }} Die Renderings sind wie folgt:
MPAandroidchart Open Source Diagramm -Bibliotheks -Bar Diagramm
1. Kopieren Sie das Mandroidchartlibrary-2-0-8.jar-Paket in die LIBs des Projekts
2. Definieren Sie die XML -Datei
3. Der Haupt -Java -Logikcode ist wie folgt.
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; Import android.support.v7.app.actionBaractivity; importandroid.graphics.color; importandroid.os.bundle; öffentliche Klasse MainActivity erweitert die AktionBaraktivität {privateBarchartMBarchart; privatBardatambardata; @Overrideprotected void auf creature (bundle savedinstancestate) {super.oncreate (savedInstancestate); setContentView (r.layout.Activity_main); showBarchart (mBarchart, mbardata);} private void showBarchart (barchartBarchart, bardatabardata) {barchart.setDrawborders (false); /// Wo addieren Borders Online -Diagramm Barchart.setDescription (""); // Datenbeschreibung // Wenn keine Daten vorhanden sind, wird dies angezeigt, ähnlich wie bei ListViews leereViewBarchart.setnodatatextDescription ("Sie müssen Daten für das Diagramm bereitstellen."). Barchart.setDrawgridbackground (Falsch); // ob die Tabelle Farbe Barchart.setGridbackgroundColor (color.white & 0x70fffff) angezeigt wird; // Die Farbe der Tabelle besteht hier darin, eine Transparenz für die Farbe barchart.settouchenabled (true) festzulegen. // festlegen, ob Barchart.setDRagenabled (true); // ob barchart.setscaleenabled (true); // ob barchart.setpinchzoom (false); // // barchart.setbackgroundColor (); // Hintergrund barchart.setdrawbarshadow (true); barchart.setData (bardata); // Data Legend mleGend = barchart.getLegend () festlegen; // Skalierungs -Symbol mleGend.setform (legendform.circle); // style mleGend.setformSize (6F); // font mleGend.setTextColor (color.black); // color // x-axiseinstellung // xaxisxaxis = barchart.getXaxis (); // xaxis.setPosition (xaXisposition.bottom); barchart.Animatex (2500); // Sofortige Ausführung der Animation, x-achse} privateBardatagetbardata (int count, float range) {arrayList <string> xValues = new ArrayList <string> (); für (inti = 0; i <count; i ++) {xvalues.add ("th" (i + 1) "viertel"); ArrayList <BAREentry> (); für (inti = 0; i <count; i ++) {float value = (float) (math.random ()*Zufallszahl innerhalb von Bereich/*100*/)+3; yValues.add (neuer Barentry (value, i)); } // Datensatz des y-achse bardatasetbardataset = new bardataset (yvalues, "test kartendiagramm"); bardataset.setColor (color.rgb (114, 188, 223)); ArrayList <Bardataset> bardatasets = new ArrayList <Bardataset> (); bardatasets.add (bardataset); // Die Datensätze 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.xaxisposition; Importco 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; öffentliche Klasse MainActivity erweitert die AktionBaraktivität {privateBarchartMBarchart; privatBardatambardata; @Overrideprotected void auf creature (bundle savedinstancestate) {super.oncreate (savedInstancestate); setContentView (r.layout.Activity_main); showBarchart (mBarchart, mbardata);} private void showBarchart (barchartBarchart, bardatabardata) {barchart.setDrawborders (false); /// Wo addieren Borders Online -Diagramm Barchart.setDescription (""); // Datenbeschreibung // Wenn keine Daten vorhanden sind, wird dies angezeigt, ähnlich wie bei ListViews leereViewBarchart.setnodatatextDescription ("Sie müssen Daten für das Diagramm bereitstellen."). Barchart.setDrawgridbackground (Falsch); // ob die Tabelle Farbe Barchart.setGridbackgroundColor (color.white & 0x70fffff) angezeigt wird; // Die Farbe der Tabelle besteht hier darin, eine Transparenz für die Farbe barchart.settouchenabled (true) festzulegen. // festlegen, ob Barchart.setDRagenabled (true); // ob barchart.setscaleenabled (true); // ob barchart.setpinchzoom (false); // // barchart.setbackgroundColor (); // Hintergrund barchart.setdrawbarshadow (true); barchart.setData (bardata); // Data Legend mleGend = barchart.getLegend () festlegen; // Skalierungs -Symbol mleGend.setform (legendform.circle); // style mleGend.setformSize (6F); // font mleGend.setTextColor (color.black); // color // x-axiseinstellung // xaxisxaxis = barchart.getXaxis (); // xaxis.setPosition (xaXisposition.bottom); barchart.Animatex (2500); // Sofortige Ausführung der Animation, x-achse} privateBardatagetbardata (int count, float range) {arrayList <string> xValues = new ArrayList <string> (); für (inti = 0; i <count; i ++) {xvalues.add ("th" (i + 1) "viertel"); ArrayList <BAREentry> (); für (inti = 0; i <count; i ++) {float value = (float) (math.random ()*Zufallszahl innerhalb von Bereich/*100*/)+3; yValues.add (neuer Barentry (value, i)); } // Datensatz des y-achse bardatasetbardataset = new bardataset (yvalues, "test kartendiagramm"); bardataset.setColor (color.rgb (114, 188, 223)); ArrayList <Bardataset> bardatasets = new ArrayList <Bardataset> (); bardatasets.add (bardataset); // Die Datensätze bardatabardata = new bardata (xvalues, bardatasets); returnBardata;}} hinzufügen;}} Die Renderings sind wie folgt:
Das obige ist die Einführung in die Verwendung der MPAandroidChart Open Source -Diagrammbibliothek, die sich auf das Kreisdiagramm, das Zeilendiagramm und das Balkendiagramm bezieht. Ich hoffe, es wird für alle hilfreich sein.