Jfreechart - это Java Project на сайте Open Source Sounce.net.net. Он в основном используется для различных диаграмм, в том числе: круговые диаграммы, барные диаграммы (обычные барные диаграммы и стековые схемы), линейные диаграммы, диаграммы площади, распределительные диаграммы, смешанные диаграммы, диаграммы Гантта и некоторые панели панели.
Чтобы применить JFreeChart для рисования фотографий, вам нужно два пакета JAR: JFreechart.jar и Jcommon.jar, загрузка адреса.
Вот пример рисования линейной диаграммы:
Пакет yuth.jfree.demo; /*** Создать линейную диаграмму с использованием набора данных CategoryDataset* Когда есть много данных, значение горизонтальной координаты не может быть полностью замечено в JPanel, и она отображается как эллипсис. * Решение: * Метод 1. При сохранении отчета в качестве изображения установите ширину изображения достаточно большой (2000 или 3000), чтобы изображение могло отображать горизонтальное значение координат. * Этот метод относится к симптомам, но не коренной причиной, поэтому существует второй метод* Метод 2: Установите Lable на оси X, чтобы наклонить его на 45 градусов. */ import java.awt.basicsstroke; импортировать 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.chartuTities; Импорт 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; Import org.jfree.data.category.categoryDataset; Import org.jfree.data.category.defaultcategoryDataset; Импорт org.jfree.ui.applicationframe; Импорт org.jfree.ui.horizontalAlignment; Импорт org.jfree.ui.rectanglegedge; Импорт org.jfree.ui.rectanglesinsets; Импорт org.jfree.ui.refineryUtivity; открытый класс LineChartDemo1 Extends ApplicationFrame {Private Static Long Long SerialVersionUID = -6354350604313079793L; / * Синтетический */Статический класс класса $ demo $ linechartdemo1; public lineChartDemo1 (String String) {super (String); Jpanel jpanel = createMopanel (); jpanel.setPreferredSize (новое измерение (500, 270)); SetContentPane (jPanel); } /*** Как отличить различные легенды: различать на основе того, является ли второй параметр DefaultCategoryDataset.AddValue () одинаковым. * Порядок данных, добавленный в той же легенде, влияет на окончательный дисплей; Порядок данных, добавленных в различных легендах, не влияет на окончательный дисплей. * @return */ private static CategoryDataset createAtaset () {defaultCategoryDataset defaultCategoryDataset = new DefaultCategoryDataset (); //Defaultcategorydataset.addvalue () Анализ параметров: (численное, имя легенды, горизонтальное значение координаты) /* // Добавить метод данных 1 // Легенда 1 DefaultCategoryDataset.AddValue (212.0, «First», «1001.0»); DefaultCategoryDataset.AddValue (504.0, "First", "1001.1"); DefaultCategoryDataset.AddValue (1520.0, "First", "1001.2"); // Легенда 2 DefaultCategoryDataset.AddValue (712.0, «второй», «1001.0»); DefaultCategoryDataset.AddValue (1204.0, «второй», «1001.1»); DefaultCategoryDataset.AddValue (1820.0, «Второе», «1001.2»); /*///* // Добавить метод данных 2 // Эксперимент Случайное число, чтобы генерировать результаты теста случайный случайный = новый случайный (12345); // Легенда 1, 40 Данные для (int i = 0; i <40; i ++) {defaultCategoryDataset.AddValue (random.nextint (100000), "First", String.valueof (1000+i)); } // Legend 2, 40 Данные для (int i = 0; i <40; i ++) {defaultCategoryDataset.AddValue (random.nextint (100000), "второе", String.valueof (1000+i)); } //*/return defaultCategoryDataset; } private static jfreechart createChart (CategoryDataset CategoryDataset) {jfreeChart jfreeChart = chartFactory.createlineChart ("jfreeChart test", // название диаграммы "x", // Категория Spindle (x-осевая) "y", // range Plotorientation.vertical, // ориентация false, // включить ли легенда True, // Приглашение сообщения, независимо от того, использует ли URL // изменить цвет фона диаграммы jfreechart.setbackgroundpaint (color.white); CategoryPlot CategoryPlot = (CategoryPlot) jfreeChart.getPlot (); CategoryPlot.SetBackgroundPaint (color.lightgray); CategoryPlot.SetRangeGridlinePaint (color.white); CategoryPlot.SetRangeGridLinesVisible (false); // Измените ось диапазона. Мы изменяем значение шкалы по умолчанию (разрешено отображать десятичные значения), чтобы отобразить только значения целочисленной шкалы. NumberAxis numberraxis = (numberAxis) CategoryPlot.getRangeAxis (); numberraxis.setstandardtickunits (numberaxis.createintegertickunits ()); // Установите Lable на оси x, чтобы наклонить его на 45 градусов категории Domainaxis = CategoryPlot.getDomaInaxis (); domainaxis.setcategorylabelpositions (CategoryLabelPositions.up_45); // Установить Lable на оси x, чтобы наклонить его на 45 градусов Domainaxis.SetLowerMargin (0,0); // Установить расстояние от левого конца изображения Domainaxis.setUppermargin (0,0); // Установить расстояние от правого конца изображения LineAndshaperenderer lineandshaperenderer = (lineandshaperenderer) Categoryplot .getRenderer (); lineandshaperenderer.setshapesvisible (true); lineandshaperenderer.setdrawoutlines (true); lineandshaperenderer.setusefillpaint (true); lineandshaperenderer.setbasefillpaint (color.white); lineandshaperenderer.setseriesstroke (0, New BasicStroke (3.0F)); lineandshaperenderer.setseriesoutlinestroke (0, New BasicStroke (2.0F)); lineandshaperenderer.setseriesshape (0, new ellipse2d.double (-5.0, -5.0, 10.0, 10.0)); LineAndshaperenderer.setItemmargin (0,4); // Установите расстояние каждого значения оси x (не работает? Установите генератор метки элемента данных lineandshaperenderer.setBaseItemLabelSvisible (true); // Основная метка элемента LineAndshaperenderer.setBaseShapesFiled (true); // Показать твердые небольшие значки в точке данных return jfreechart; } public static jPanel createMopanel () {jfreechart jfreechart = createChart (creativeAtaset ()); try { ChartUtilities.saveChartAsJPEG( new File("D:/LineChartDemo1.png"), //The physical path to save the file includes the path and file name// 1.0f, //Image quality, 0.0f~1.0f jfreechart, //Chart object 1024, //Image width, this will determine whether the horizontal axis value of the chart can be fully displayed or ellipsis 768); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); } // Высота изображения возвращает новую chartpanel (jfreechart); } public static void main (string [] strings) {lineChartDemo1 lineChartDemo1 = new LineChartDemo1 ("jfreechart - линейная диаграмма демо 1"); linechartdemo1.pack (); RefineryUtility.centerFrameOnscreen (LineChartDemo1); linechartdemo1.setvisible (true); } / * Synthetic * / Static Class Class $ (String String) {class var_class; try {var_class = class.forname (string); } catch (classnotfoundexception classnotfoundexception) {бросить новый noclassdeffounderror (classnotfoundexception.getmessage ()); } вернуть var_class; }}Результаты работы:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.