MPAANDREIDCHART แผนภูมิแผนภูมิโอเพ่นซอร์ส
ฉันจะแนะนำให้คุณรู้จักกับไอคอนโอเพนซอร์ส MPAANDREIDCHART ไม่เพียง แต่สามารถวาดแผนภูมิสถิติต่าง ๆ บนอุปกรณ์ Android ได้ แต่ยังลากและซูมชาร์ตซึ่งยืดหยุ่นได้มาก MpandroidChart ยังมีประเภทแผนภูมิทั่วไป: แผนภูมิบรรทัดแผนภูมิวงกลมแผนภูมิแท่งและแผนภูมิกระจาย
mpandroidchartlibrary.jar แพ็คเกจดาวน์โหลดที่อยู่:
https://github.com/philjay/mpandroidchart/releases
ส่วนใหญ่ใช้แผนภูมิวงกลมต่อไปนี้:
1. ดาวน์โหลดแพ็คเกจ mpandroidchartlibrary-2-0-8.jar ล่าสุดจากที่อยู่ด้านบนและคัดลอกลงใน libs ของโครงการ
2. กำหนดไฟล์ XML
3. รหัสตรรกะ Java หลักมีดังนี้
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; นำเข้า Android.support.v7.app.actionBaractivity; importandroid.graphics.color; importandroid.os.bundle; importandroid.util.displaymetrics; MainActivity ระดับสาธารณะขยายการดำเนินการ {PrivatePieChartMChart; @Override ป้องกันโมฆะ 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); } Void Private Void Showchart (PiechartPiechart, Piedatapiedata) {Piechart.SetholeColoRTransparent (จริง); Piechart.Setholeradius (60F); //radiuspiechart.setTransparentCircleradius(64F); // วงกลมโปร่งแสง // piechart.setholeradius (0) // วงกลมแข็ง piechart.setdescription ("ทดสอบแผนภูมิพาย"); // mChart.SetDrawyValues (จริง); piechart.setDrawcenterText (จริง); // ข้อความสามารถเพิ่มได้ในช่วงกลางของแผนภูมิวงกลม piechart.setdrawholeenabled (จริง); piechart.setrotationangle (90); // มุมการหมุนเริ่มต้น // วาดค่าคำอธิบายที่สอดคล้องกันลงในชิ้น // mChart.SetDrawXValues (จริง); // เปิดใช้งานการหมุนของแผนภูมิโดย touch piechart.setrotationenabled (จริง); // สามารถหมุนได้ด้วยตนเอง // แสดงค่าเปอร์เซ็นต์ piechart.setUsepercentValues (จริง); // แสดงเปอร์เซ็นต์ // mChart.SetUnit ("); // แสดงเปอร์เซ็นต์ // mChart.SetUnit ("); // mChart.SetDrawunitsInchart (จริง); // เพิ่มตัวเลือกผู้ฟัง // mChart.SetOnChartValuesElectedListener (นี่); // MCHART.SetTouChenabled (เท็จ); // MCHART.SetOnAnimationListener (นี่); Piechart.SetCenterText ("รายได้รายไตรมาส"); // ข้อความตรงกลางของแผนภูมิวงกลม // ตั้งค่าข้อมูล piechart.setdata (piedata); // ยกเลิกการไฮไลท์ทั้งหมด // piechart.highlightvalues (null); // piechart.invalidate (); Legend Mlegend = piechart.getLegend (); // ตั้งค่ากราฟมาตราส่วน mlegend.setPosition (legendPosition.right_of_chart); // แสดงทางด้านขวาสุด // mlegend.setform (legendform.line); // ตั้งค่ารูปร่างของกราฟมาตราส่วนค่าเริ่มต้นคือตาราง mlegend.setxentryspace (7f); Mlegend.Setyentryspace (5F); piechart.animatexy (1,000, 1,000); // ตั้งค่าแอนิเมชั่น // MCHART.SPIN (2000, 0, 360); } / ** * * @param นับแบ่งออกเป็นหลายส่วน * ช่วง @param * / privatepiedatagetpiedata (จำนวน int, ช่วงลอย) {arraylist <String> xvalues = new ArrayList <String> (); // xvals ใช้เพื่อแสดงเนื้อหาในแต่ละพายสำหรับ (inti = 0; i <count; i ++) {xvalues.add ("รายไตรมาส" + (i + 1)); // การแสดงผลบนวงกลมคือไตรมาส 1, ไตรมาส 2, ไตรมาส 3, ไตรมาส 4} arraylist <entry> yvalues = new ArrayList <enting> (); // yvals ใช้เพื่อแสดงข้อมูลจริงห่อหุ้มแต่ละบล็อกพาย // ข้อมูลแผนภูมิพาย/** * แบ่งแผนภูมิวงกลมออกเป็นสี่ส่วนและอัตราส่วนตัวเลขของสี่ส่วนคือ 14: 14: 34: 38 * ดังนั้นเปอร์เซ็นต์ที่แสดงโดย 14 คือ 14% */Float Quarterly1 = 14; ลอยไตรมาส 2 = 14; ลอยไตรมาส 3 = 34; ลอยไตรมาส 4 = 38; yvalues.add (รายการใหม่ (ไตรมาส 1, 0)); yvalues.add (รายการใหม่ (ไตรมาส 2, 1)); yvalues.add (รายการใหม่ (ไตรมาส 3, 2)); yvalues.add (รายการใหม่ (ไตรมาส 4, 3)); // คอลเลกชันของ y-axis piedatasetpiedataset = ใหม่ piedataset (yvalues, "รายได้รายไตรมาส 2014"/*แสดงในแผนภูมิสเกล*/); piedataset.setslicespace (0f); // ตั้งค่าระยะห่างระหว่างแผนภูมิวงกลม ArrayList <Integer> สี = new ArrayList <Integer> (); // pie แผนภูมิสี 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 (สี); DisplayMetrics metrics = getResources (). getDisplayMetrics (); floatpx = 5 * (metrics.densitydpi / 160f); Piedataset.SetSelectionShift (PX); // ความยาวของสถานะที่เลือก piedatapiedata = ใหม่ piedata (xvalues, piedataset); returnpiedata; - การเรนเดอร์มีดังนี้:
แผนภูมิบรรทัดโอเพ่นซอร์ส MPAANDREIDCHART
1. คัดลอกแพ็คเกจ MandroidChartLibrary-2-0-8.JAR ลงใน LIBS ของโครงการ
2. กำหนดไฟล์ XML
3. รหัสตรรกะ Java หลักมีดังนี้
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; นำเข้า Android.support.v7.app.actionBaractivity; importandroid.graphics.color; importandroid.os.bundle; MainActivity ระดับสาธารณะขยายการดำเนินการ {privateLineChartMlineChart; // ตัวอักษรส่วนตัว MTF; @Override ป้องกันโมฆะ 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)); } // ตั้งค่าสไตล์การแสดงผลโมฆะ private void Showchart (LinechartLineChart, linedatalinedata, int สี) {linechart.setDrawborders (เท็จ); // สถานที่ที่จะเพิ่มพรมแดนลงในแผนภูมิบรรทัด // ไม่มีคำอธิบายข้อความ linechart.setDescription (""); // ข้อมูลคำอธิบาย // ถ้าไม่มีข้อมูลสิ่งนี้จะปรากฏขึ้นคล้ายกับ ListView EmtpyViewLineChart.SetNodatatextDescription ("คุณต้องให้ข้อมูลสำหรับชาร์ต"); // เปิดใช้งาน / ปิดการใช้งานพื้นหลังกริด linechart.SetDrawGridbackground (เท็จ); // ไม่ว่าจะแสดงสี linechart.setGridbackgroundColor (color.white & 0x70fffff); // สีของตารางที่นี่คือการตั้งค่าความโปร่งใสสำหรับสี // เปิดใช้งาน Touch Gears Linechart.settouchenabled (จริง); // ตั้งค่าว่าสามารถสัมผัสได้ // เปิดใช้งานการปรับขนาดและการลาก linechart.setDragenabled (จริง); // คุณสามารถลากและวาง linechart.setscaleenabled (จริง); // คุณสามารถปรับขนาด // ถ้าปิดใช้งานการปรับสเกลสามารถทำได้บน x- และ y-axis แยก linechart.setpinchzoom (เท็จ) // linechart.setbackgroundcolor (สี); // ตั้งค่าพื้นหลัง // เพิ่ม data linechart.setdata (linedata); // ตั้งค่าข้อมูล // รับตำนาน (เป็นไปได้หลังจากการตั้งค่าข้อมูล) Mlegend = linechart.getLegend (); // ตั้งค่าไอคอนสเกลซึ่งเป็นค่าของกลุ่ม y // แก้ไขตำนาน ... // mlegend.setPosition (legendPosition.left_of_chart); mlegend.setForm (legendform.circle); // style mlegend.setFormsize (6f); // font mlegend.settextcolor (color.white); // color // mlegend.settypeface (mtf); // การดำเนินการทันทีของแอนิเมชั่น x-axis}/ *** สร้างข้อมูล* @param นับจำนวนคะแนนพิกัดที่มีอยู่ในแผนภูมิ* @param ช่วงที่ใช้ในการสร้างตัวเลขสุ่มภายในช่วง* @return*/ privateLinedAtAgetLinedata สำหรับ (inti = 0; i <count; i ++) {// ข้อมูลที่แสดงบนแกน x โดยค่าเริ่มต้นตัวห้อยตัวเลขจะใช้เพื่อแสดง xvalues.add (""+i); } // y-axis data arraylist <enting> yvalues = new ArrayList <entry> (); สำหรับ (inti = 0; i <count; i ++) {ค่า float = (float) (math.random () * ช่วง)+3; yvalues.add (รายการใหม่ (ค่า, i)); } // สร้างชุดข้อมูลและให้ชุดข้อมูล // y-axis ชุด linedataSetLinedAtAset = linedataset ใหม่ (yvalues, "แผนภูมิบรรทัดทดสอบ" /*แสดงบนแผนภูมิสเกล* /); // mlinedataset.setFillalpha (110); // mlinedataSet.setFillColor (color.red); // ใช้ชุด y-axis เพื่อตั้งค่าพารามิเตอร์ linedataset.setlineWidth (1.75F); // linewidth linedataset.setCirclesize (3F); // แสดงขนาดวงกลม linedataset.setColor (color.white); // แสดงสี linedataset.setCircleColor (color.white); // สีของวงกลม linedataset.SethighlightColor (color.white); // สีของ arraylist บรรทัดที่ไฮไลต์ <LinedAtaset> linedAtasets = new ArrayList <LinedAtaset> (); linedatasets.add (linedataset); // เพิ่มชุดข้อมูล // สร้างวัตถุข้อมูลด้วยชุดข้อมูล linedatalinedata = new linedata (xvalues, linedatasets); returnlinedata; - การเรนเดอร์มีดังนี้:
MPAANDROIDCHART แผนภูมิแผนภูมิห้องสมุดโอเพ่นซอร์ส
1. คัดลอกแพ็คเกจ MandroidChartLibrary-2-0-8.JAR ลงใน LIBS ของโครงการ
2. กำหนดไฟล์ XML
3. รหัสตรรกะ Java หลักมีดังนี้
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 แบบฟอร์ม; 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; นำเข้า Android.support.v7.app.actionBaractivity; importandroid.graphics.color; importandroid.os.bundle; Mainactivity Public Public Explates ActionBaractivity {PrivateBarchartMbarchart; PrivateBardatambardata; {super.oncreate (savedinstancestate); setContentView (r.layout.activity_main); mbarchart = (barchart) findViewById (r.id.spread_bar_chart); mbardata = getBardata (4, 100); showbarchart (mbarchart, mbardata);} โมฆะส่วนตัว showbarchart (barchartbarchart, bardatabardata) {barchart.setDrawborders (เท็จ); /// สถานที่ที่จะเพิ่มเส้นขอบบนแผนภูมิบรรทัด barchart.setDescription (""); // ข้อมูลคำอธิบาย // ถ้าไม่มีข้อมูลสิ่งนี้จะปรากฏขึ้นคล้ายกับ emportviewbarchart.setNodatatextDescription ("คุณต้องให้ข้อมูลสำหรับแผนภูมิ"); barchart.setDrawGridbackground (เท็จ); // ว่าจะแสดงตารางสี Barchart.setGridbackgroundColor (color.white & 0x70fffff); // สีของตารางที่นี่คือการตั้งค่าความโปร่งใสสำหรับ color barchart.settouchenabled (จริง); // ตั้งค่าว่า barchart.setDragenabled (จริง); // ไม่ว่าจะเป็น barchart.setscaleenabled (จริง); // ไม่ว่าจะเป็น barchart.setpinchzoom (เท็จ); // // barchart.setbackgroundcolor (); // ตั้งค่าพื้นหลัง barchart.setDrawbarshadow (จริง); barchart.setdata (bardata); // ตั้งค่าตำนานข้อมูล mlegend = barchart.getlegend (); // ตั้งค่าไอคอนมาตราส่วน mlegend.setForm (legendform.circle); // style mlegend.setFormsize (6f); // FONT MLEGEND.SETTEXTCOLOR (COLOR.BLACK); // color // การตั้งค่า x-axis // xaxisxaxis = barchart.getxaxis (); // xaxis.setPosition (xaxisposition.bottom); barchart.animatex (2500); // การดำเนินการทันทีของแอนิเมชั่น, x-axis} privateBardatagetBardata (จำนวน int, ช่วงลอย) {arrayList <String> xvalues = new ArrayList <String> (); สำหรับ (inti = 0; i <count; i ++) {xvalues.add ( ArrayList <Barentry> (); สำหรับ (inti = 0; i <count; i ++) {ค่า float = (float) (math.random ()*หมายเลขสุ่มภายในช่วง/*100*/)+3; yvalues.add (barentry ใหม่ (ค่า, i)); } // ชุดข้อมูลของ y-axis bardatasetBardataset = ใหม่ bardataset (yvalues, "ทดสอบแผนภูมิพาย"); bardataset.setColor (color.rgb (114, 188, 223)); arraylist <Bardataset> bardatasets = new ArrayList <Bardataset> (); bardatasets.add (bardataset); // เพิ่มชุดข้อมูล bardatabardata = ใหม่ bardata (xvalues, bardatasets); returnbardata;}} packageCom.jackie.mpandoidbarchart; importJava.util.arrayList; importcom.github.mikephil.charting.charts.barchart; importcom.github.mikephil.chart.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; m.github.mikephil.charting.data.bardata; importcom.github.mikephil.charting.data.bardataset; importcom.github.mikephil.charting.data.barentry; Android.support.v7.app.actionBaractivity; importandroid.graphics.color; importandroid.os.bundle; Mainactivity Public Public Explates ActionBaractivity {PrivateBarchartMbarchart; PrivateBardatambardata; {super.oncreate (savedinstancestate); setContentView (r.layout.activity_main); mbarchart = (barchart) findViewById (r.id.spread_bar_chart); mbardata = getBardata (4, 100); showbarchart (mbarchart, mbardata);} โมฆะส่วนตัว showbarchart (barchartbarchart, bardatabardata) {barchart.setDrawborders (เท็จ); /// สถานที่ที่จะเพิ่มเส้นขอบบนแผนภูมิบรรทัด barchart.setDescription (""); // ข้อมูลคำอธิบาย // ถ้าไม่มีข้อมูลสิ่งนี้จะปรากฏขึ้นคล้ายกับ emportviewbarchart.setNodatatextDescription ("คุณต้องให้ข้อมูลสำหรับแผนภูมิ"); barchart.setDrawGridbackground (เท็จ); // ว่าจะแสดงตารางสี Barchart.setGridbackgroundColor (color.white & 0x70fffff); // สีของตารางที่นี่คือการตั้งค่าความโปร่งใสสำหรับ color barchart.settouchenabled (จริง); // ตั้งค่าว่า barchart.setDragenabled (จริง); // ไม่ว่าจะเป็น barchart.setscaleenabled (จริง); // ไม่ว่าจะเป็น barchart.setpinchzoom (เท็จ); // // barchart.setbackgroundcolor (); // ตั้งค่าพื้นหลัง barchart.setDrawbarshadow (จริง); barchart.setdata (bardata); // ตั้งค่าตำนานข้อมูล mlegend = barchart.getlegend (); // ตั้งค่าไอคอนมาตราส่วน mlegend.setForm (legendform.circle); // style mlegend.setFormsize (6f); // FONT MLEGEND.SETTEXTCOLOR (COLOR.BLACK); // color // การตั้งค่า x-axis // xaxisxaxis = barchart.getxaxis (); // xaxis.setPosition (xaxisposition.bottom); barchart.animatex (2500); // การดำเนินการทันทีของแอนิเมชั่น, x-axis} privateBardatagetBardata (จำนวน int, ช่วงลอย) {arrayList <String> xvalues = new ArrayList <String> (); สำหรับ (inti = 0; i <count; i ++) {xvalues.add ( ArrayList <Barentry> (); สำหรับ (inti = 0; i <count; i ++) {ค่า float = (float) (math.random ()*หมายเลขสุ่มภายในช่วง/*100*/)+3; yvalues.add (barentry ใหม่ (ค่า, i)); } // ชุดข้อมูลของ y-axis bardatasetBardataset = ใหม่ bardataset (yvalues, "ทดสอบแผนภูมิพาย"); bardataset.setColor (color.rgb (114, 188, 223)); arraylist <Bardataset> bardatasets = new ArrayList <Bardataset> (); bardatasets.add (bardataset); // เพิ่มชุดข้อมูล bardatabardata = ใหม่ bardata (xvalues, bardatasets); returnbardata;}} การเรนเดอร์มีดังนี้:
ข้างต้นคือการแนะนำการใช้ห้องสมุดแผนภูมิโอเพ่นซอร์ส MPAandroidChart ซึ่งเกี่ยวข้องกับแผนภูมิวงกลมแผนภูมิเส้นและแผนภูมิแท่ง ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน