Jfreechart هو مشروع Java على موقع Open Source SourceForge.net. يتم استخدامه بشكل أساسي لمجموعة متنوعة من المخططات ، بما في ذلك: مخططات الدائرية ، المخططات الشريطية (المخططات العادية ومخططات شريط المكدس) ، المخططات الخطية ، المخططات المنطقة ، المخططات التوزيع ، المخططات المختلطة ، مخططات Gantt ، وبعض لوحات المعلومات.
لتطبيق Jfreechart لرسم الصور ، تحتاج إلى حزم اثنين من الجرة: Jfreechart.jar و jcommon.jar ، عنوان التنزيل.
فيما يلي مثال على رسم مخطط خط:
حزمة yuth.jfree.demo ؛ /*** قم بإنشاء مخطط سطر باستخدام مجموعة بيانات CatevoryDatAset* عندما يكون هناك الكثير من البيانات ، لا يمكن رؤية قيمة الإحداثي الأفقي بالكامل في JPanel ، ويتم عرضها على أنها حذف. * الحل: * الطريقة 1. عند حفظ التقرير كصورة ، قم بتعيين عرض الصورة لتكون كبيرة بما يكفي (2000 أو 3000) ، بحيث يمكن للصورة عرض قيمة الإحداثيات الأفقية. * تعالج هذه الطريقة الأعراض ولكن ليس السبب الجذري ، لذلك هناك طريقة ثانية* الطريقة 2: اضبط lable على المحور السيني لإمالة 45 درجة. */ استيراد java.awt.BasicStroke ؛ استيراد java.awt.color ؛ استيراد java.awt.dimension ؛ استيراد java.awt.font ؛ استيراد java.awt.geom.ellipse2d ؛ استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد java.net.url ؛ استيراد java.text.decimalformat ؛ استيراد java.util.random ؛ استيراد javax.swing.imageicon ؛ استيراد javax.swing.jpanel ؛ استيراد org.jfree.chart.chartfactory ؛ استيراد org.jfree.chart.chartpanel ؛ استيراد org.jfree.chart.ChartUtilities ؛ استيراد org.jfree.chart.jfreechart ؛ استيراد org.jfree.chart.axis.categoryaxis ؛ استيراد org.jfree.chart.axis.categorylabelpositions ؛ استيراد org.jfree.chart.axis.numberaxis ؛ استيراد org.jfree.chart.labels.standardCategoryItemLabelGenerator ؛ استيراد org.jfree.chart.plot.categoryplot ؛ استيراد org.jfree.chart.plot.plotorientation ؛ استيراد org.jfree.chart.renderer.category.LineAndshaperenderer ؛ استيراد org.jfree.chart.title.texttitle ؛ استيراد org.jfree.data.category.categorydataset ؛ استيراد org.jfree.data.category.defaultCategoryDataset ؛ استيراد org.jfree.ui.applicationFrame ؛ استيراد org.jfree.ui.horizontalalignment ؛ استيراد org.jfree.ui.RectangleDge ؛ استيراد org.jfree.ui.RectangleInsets ؛ استيراد org.jfree.ui.refineryutabilities ؛ الطبقة العامة LinechartDemo1 يمتد ApplicationFrame {Private Static Final Long SerialVersionuid = -6354350604313079793L ؛ / * CONTHETIC */static class $ demo $ linechartdemo1 ؛ public linechartdemo1 (سلسلة سلسلة) {super (string) ؛ jpanel jpanel = createMopanel () ؛ jpanel.setPreferredSize (Dimension New (500 ، 270)) ؛ setContentpane (jpanel) ؛ } /*** كيفية التمييز بين الأساطير المختلفة: التمييز بناءً على ما إذا كانت المعلمة الثانية من defaultCategoryDATASET.ADDVALUE () هي نفسها. * يؤثر ترتيب البيانات المضافة في نفس الأسطورة على الشاشة النهائية ؛ لا يؤثر ترتيب البيانات المضافة في الأساطير المختلفة على الشاشة النهائية. * @return */ private static categorydataset createatataset () {defaultCategoryDataset defaultCategoryDataset = new DefaultCategoryDataset () ؛ //defaultcategorydataset.addvalue () تحليل المعلمة: (العددي ، اسم الأسطورة ، قيمة الإحداثيات الأفقية) /* // إضافة طريقة البيانات 1 // Legend 1 DefaultCategoryDataset.addvalue (212.0 ، "،" ، "1001.0") ؛ DefaultCategoryDataset.addvalue (504.0 ، "First" ، "1001.1") ؛ DefaultCategoryDataset.addvalue (1520.0 ، "First" ، "1001.2") ؛ // Legend 2 DefaultCategoryDataset.addvalue (712.0 ، "Second" ، "1001.0") ؛ DefaultCategoryDataset.addvalue (1204.0 ، "Second" ، "1001.1") ؛ DefaultCategoryDataset.addvalue (1820.0 ، "Second" ، "1001.2") ؛ /*////* // إضافة طريقة البيانات 2 // التجربة رقم عشوائي لإنشاء نتائج الاختبار عشوائي = جديد عشوائي (12345) ؛ // Legend 1 ، 40 بيانات لـ (int i = 0 ؛ i <40 ؛ i ++) {defaultCategoryDataset.addvalue (random.nextint (100000) ، "first" ، string.valueof (1000+i)) ؛ }. } //*/return defaultCategoryDataset ؛ } jfreechart private jfreechart createChart (categorydataset catevorydataset) {jfreechart jfreechart = chartfactory.createlinechart ("jfreechart test" ، // chart title "x" ، // spindle label (x-axis) "y" ، // range axis label (y-axis) plotorientation.Vertical ، // الاتجاه خطأ ، // ما إذا كان يجب تضمين Legend True ، // رسالة موجسة ما إذا كانت خاطئة) ؛ // ما إذا كنت تريد استخدام urls // تغيير لون الخلفية للمخطط jfreechart.setbackgroundpaint (color.white) ؛ categoryplot catevoryplot = (categoryplot) jfreechart.getPlot () ؛ categoryplot.setbackgroundpaint (color.lightgray) ؛ categoryplot.setRangeGridLinePaint (color.hite) ؛ categoryplot.setRangeGridLinesVisible (false) ؛ // تعديل محور النطاق. نقوم بتغيير قيمة المقياس الافتراضي (المسموح لعرض العشرية) لعرض قيم مقياس عدد صحيح فقط. numberAxis numberRaxis = (numberaxis) categoryplot.getRangeAxis () ؛ numberRaxis.SetStandardTickUnits (numberaxis.createInteGertickUnits ()) ؛ . domainaxis.setCategoryLpelpositions (categorylabelpositions.up_45) ؛ // قم بتعيين Lable على محور X لإمالة It 45 Degrees Domainaxis.setLowerMargin (0.0) ؛ // قم بتعيين المسافة من الطرف الأيسر من مجال الصورة. . lineandshaperenderer.setShapesVisible (صحيح) ؛ lineandshaperenderer.setdrawoutlines (true) ؛ lineandshaperenderer.setusefillpaint (true) ؛ lineandshaperenderer.setBaseFillPaint (color.hite) ؛ Lineandshaperenderer.SetSeriessTroke (0 ، New BasicStroke (3.0f)) ؛ Lineandshaperenderer.SetSeriesOutlinestroke (0 ، New BasicStroke (2.0f)) ؛ lineandshaperenderer.setseriesshape (0 ، new elipse2d.double (-5.0 ، -5.0 ، 10.0 ، 10.0)) ؛ lineandshaperenderer.setItemMargin (0.4) ؛ // قم بتعيين تباعد كل قيمة من المحور السيني (لا يعمل ؟؟) // إظهار قيمة البيانات decimalformat decimalformat1 = new decimalformat ( قم بتعيين مولد تسمية عنصر البيانات lineandshaperender.setbaseitemlabelsvisible (true) ؛ // عرض تسمية العنصر الأساسي lineAndShaperender.setBaseshapeseving (true) ؛ // إظهار أيقونات صغيرة صلبة عند نقطة البيانات Jfreechart ؛ } jpanel static public createMopanel () {jfreechart jfreechart = createChart (createAtAset ()) ؛ جرب {chartutilities.savechartasjpeg (ملف جديد ("d: /linechartdemo1.png") ، // يتضمن المسار الفعلي لحفظ الملف المسار واسم الملف // 1.0F ، Ellipsis 768) ؛ } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ } // ارتفاع الصورة إرجاع chartpanel جديد (jfreechart) ؛ } الفراغ الثابت العام (سلسلة [] سلاسل) {linechartdemo1 linechartdemo1 = new LinechartDemo1 ("Jfreechart - Line Chart Demo 1") ؛ Linechartdemo1.pack () ؛ refineryutalities.CenterFrameScareen (LinechartDemo1) ؛ linechartdemo1.setVisible (صحيح) ؛ } / * CANTHETAL * / static class $ (سلسلة سلسلة) {class var_class ؛ حاول {var_class = class.forname (string) ؛ } catch (classNotFoundException classNotFoundException) {رمي noclassDeffounderror (classnotfoundException.getMessage ()) ؛ } إرجاع var_class ؛ }}نتائج التشغيل:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.