JFREECHART adalah proyek Java di situs open source SourceForge.net. Ini terutama digunakan untuk berbagai bagan, termasuk: diagram lingkaran, bagan batang (bagan batang normal dan bagan batang stack), grafik garis, grafik area, grafik distribusi, grafik campuran, grafik Gantt, dan beberapa dasbor.
Untuk menerapkan JFReechart untuk menggambar, Anda memerlukan dua paket toples: jfreechart.jar dan jcommon.jar, unduhan alamat.
Berikut adalah contoh menggambar grafik garis:
paket yuth.jfree.demo; /*** Buat bagan baris menggunakan Dataset CategoryDataset* Ketika ada banyak data, nilai koordinat horizontal tidak dapat sepenuhnya terlihat di JPanel, dan ditampilkan sebagai elipsis. * Solusi: * Metode 1. Saat menyimpan laporan sebagai gambar, atur lebar gambar menjadi cukup besar (2000 atau 3000), sehingga gambar dapat menampilkan nilai koordinat horizontal. * Metode ini mengobati gejala tetapi bukan penyebab akar, jadi ada metode kedua* Metode 2: Atur lable pada sumbu x untuk memiringkannya 45 derajat. */ impor java.awt.basicstroke; impor java.awt.color; impor java.awt.dimension; impor java.awt.font; impor java.awt.geom.ellipse2d; impor java.io.file; impor java.io.ioException; impor java.net.url; impor java.text.decimalformat; impor java.util.random; impor javax.swing.imageicon; impor javax.swing.jpanel; impor org.jfree.chart.chartFactory; impor org.jfree.chart.chartpanel; impor org.jfree.chart.chartutilities; impor org.jfree.chart.jfreechart; impor org.jfree.chart.axis.categoryaxis; impor org.jfree.chart.axis.categorylabelpositions; impor org.jfree.chart.axis.numberxis; impor org.jfree.chart.labels.StandardCategoryItemLabelGenerator; impor org.jfree.chart.plot.categoryplot; impor org.jfree.chart.plot.plotorientation; impor org.jfree.chart.renderer.category.lineandshaperenderer; impor org.jfree.chart.title.texttitle; impor org.jfree.data.category.categoryDataset; impor org.jfree.data.category.defaultCategoryDataset; impor org.jfree.ui.applikasiFrame; impor org.jfree.ui.horizontalalignment; impor org.jfree.ui.rectagleedge; impor org.jfree.ui.rectangleinsets; impor org.jfree.ui.refineryutilities; kelas publik linechartdemo1 memperluas aplikasi {private static final long serialversionuid = -6354350604313079793l; / * Sintetis */kelas statis kelas $ demo $ linechartdemo1; public linechartdemo1 (string string) {super (string); Jpanel jpanel = createDeMopanel (); jpanel.setPreferredSize (dimensi baru (500, 270)); setContentPane (jpanel); } /*** Cara membedakan legenda yang berbeda: membedakan berdasarkan apakah parameter kedua dari DefaultCategoryDataset.AddValue () adalah sama. * Urutan data yang ditambahkan dalam legenda yang sama mempengaruhi tampilan akhir; Urutan data yang ditambahkan dalam legenda yang berbeda tidak mempengaruhi tampilan akhir. * @return */ private static CategoryDataset createTaset () {DefaultCategoryDataset DefaultCategoryDataSet = New DefaultCategoryDataSet (); //DefaultCategoryDataset.addvalue () Analisis parameter: (numerik, nama legenda, nilai koordinat horizontal) /* // Tambahkan metode data 1 // legenda 1 defaultCategoryDataset.addvalue (212.0, "pertama", "1001.0"); DefaultCategoryDataset.AddValue (504.0, "First", "1001.1"); DefaultCategoryDataset.AddValue (1520.0, "First", "1001.2"); // Legend 2 DefaultCategoryDataset.AddValue (712.0, "kedua", "1001.0"); DefaultCategoryDataset.AddValue (1204.0, "kedua", "1001.1"); DefaultCategoryDataset.AddValue (1820.0, "kedua", "1001.2"); /*///* // Tambahkan Metode Data 2 // Eksperimen Nomor Acak untuk Menghasilkan Hasil Uji Acak Random = Random Baru (12345); // Legend 1, 40 Data untuk (int i = 0; i <40; i ++) {DefaultCategoryDataset.AddValue (Random.nextInt (100000), "First", String.ValueOf (1000+i)); } // Legend 2, 40 Data untuk (int i = 0; i <40; i ++) {DefaultCategoryDataset.AddValue (acak.nextInt (100000), "kedua", string.ValueOf (1000+i)); } //*/return DefaultCategoryDataset; } private static JFreechart CreateChart (CategoryDataset CategoryDataset) {JFreechart JFreechart = ChartFactory.createLinechart ("Test JFreechart", // Judul Bagan "X", // Spindle Label (X-AXIS) "Y", // Range Axis (You-AXIS (X-AXIS (X-AXIS) "Y" Range Axis (Range Axis (You-AXIS (X-AXIS) " Plotorientation.vertikal, // orientasi false, // apakah akan memasukkan legenda true, // pesan cepat apakah false); // apakah akan menggunakan urls // ubah warna latar belakang bagan jfreechart.setBackgroundPaint (color.hite); CategoryPlot CategoryPlot = (CategoryPlot) jFreechart.getPlot (); CategoryPlot.setBackgroundPaint (Color.LightGray); Categoryplot.setrangegridlinepaint (color.white); CategoryPlot.SetRangeGridLinesVisible (false); // Ubah sumbu rentang. Kami mengubah nilai skala default (diizinkan untuk menampilkan desimal) untuk hanya menampilkan nilai skala integer. Numberaxis numberRaxis = (numberaxis) Categoryplot.getRangeaxis (); numberraxis.setStandardTickUnits (numberaxis.createIntegerChunits ()); // atur lable pada sumbu x untuk memiringkannya 45 derajat kategorika domainaxis = CategoryPlot.getDomAintaxis (); domainaxis.setCategoryLabelPositions (CategoryLabelPositions.up_45); // Atur lable pada sumbu x untuk memiringkannya 45 derajat domainaxis.setlowermargin (0,0); // atur jarak dari ujung kiri domainaxis.setuppermargin (0,0); // atur jarak dari ujung kanan gambar lineandshaperenderer lineandshaperenderer = (lineandshaperenderer) kategoriPlot .getRenderer (); lineandshaperenderer.setshapesvisible (true); lineandshaperenderer.setDrawoutlines (true); lineandshaperenderer.setusefillpaint (true); lineandshaperenderer.setbasefillpaint (color.white); lineandshaperenderer.setseriessTroke (0, New BasicStroke (3.0f)); lineandshaperenderer.seteriesOutlinestroke (0, New BasicStroke (2.0F)); lineandshaperenderer.setseriesshape (0, ellipse2d.double baru (-5.0, -5.0, 10.0, 10.0)); lineandshaperenderer.setitemmargin (0,4); // Tetapkan jarak dari setiap nilai sumbu x (tidak berfungsi ??) // tunjukkan nilai data decimalformat decimalformat1 = new decimalformat ("##. ##"); // format titik data yang menampilkan nilai data lineandshaperenderer.setbaseitemlabelgenerator (StandardCategoryItemeleBelGenererer.setBaseIteMlabelGenerator (baru StandardSatemoremoremoremelabelgelgenator (Newlabelgenorerer. " decimalformat1)); // Setel generator label item data lineandshaperenderer.setbaseitemlabelsvisible (true); // label item dasar ditampilkan lineandshaperenderer.setbaseshapesfilled (true); // menunjukkan ikon kecil yang solid pada titik data pengembalian jFreechart; } public static jpanel createMOPanel () {jFreechart jFreechart = createChart (createTaset ()); Coba {chartutilities.savechartasjpeg (file baru ("d: /linechartdemo1.png"), // jalur fisik untuk menyimpan file termasuk jalur dan nama file // 1.0f, // kualitas gambar, 0,0f ~ 1.0f jfreechart, // chart objek 1024, // watak gambar, ini akan menentukan apakah ini akan menentukan apakah ini akan menentukan apakah ini akan menentukan apakah ini. 768); } catch (ioException e) {// TODO AUTO-ENCEALATED Catch Block E.PrintStackTrace (); } // Image Height Return New ChartPanel baru (JFREECHART); } public static void main (string [] string) {linechartdemo1 linechartdemo1 = new linechartdemo1 ("jFreechart - line chart demo 1"); linechartdemo1.pack (); Refineryutilities.CenterFrameonscreen (LinechartDemo1); linechartdemo1.setVisible (true); } / * sintetis * / kelas statis kelas $ (string string) {class var_class; coba {var_class = class.forname (string); } catch (ClassNotFoundException ClassNotFoundException) {Throw NoClassDeffoundError baru (ClassNotFoundException.getMessage ()); } return var_class; }}Hasil Menjalankan:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.