JFreeChart 画图,非常不错!

首先,需要把要用到的两个jar包下来,本例用的是jfreechart-1.0.10.jar,jcommon-1.0.13.jar。可以到该项目的官方网站上下载:http://www.jfree.org/

下面是jfreechart-1.0.10.jar包中org.jfree.chart.demo目录下的一个例子,看看他的效果,很不错哦!

 

 

以下是代码:

  
  
  
  
  1. package com.test.jfreechart;  
  2.  
  3. import java.awt.Color;  
  4. import java.awt.Dimension;  
  5. import java.awt.GradientPaint;  
  6.  
  7. import org.jfree.chart.ChartFactory;  
  8. import org.jfree.chart.ChartPanel;  
  9. import org.jfree.chart.JFreeChart;  
  10. import org.jfree.chart.axis.CategoryAxis;  
  11. import org.jfree.chart.axis.CategoryLabelPositions;  
  12. import org.jfree.chart.axis.NumberAxis;  
  13. import org.jfree.chart.demo.BarChartDemo1;  
  14. import org.jfree.chart.plot.CategoryPlot;  
  15. import org.jfree.chart.plot.PlotOrientation;  
  16. import org.jfree.chart.renderer.category.BarRenderer;  
  17. import org.jfree.data.category.CategoryDataset;  
  18. import org.jfree.data.category.DefaultCategoryDataset;  
  19. import org.jfree.ui.ApplicationFrame;  
  20. import org.jfree.ui.RefineryUtilities;  
  21.  
  22. public class BarChartDemo extends ApplicationFrame {  
  23.  
  24. /**  
  25. * Creates a new demo instance.  
  26. *   
  27. * @param title  
  28. * the frame title.  
  29. */  
  30. public BarChartDemo(String title) {  
  31. super(title);  
  32. CategoryDataset dataset = createDataset();  
  33. JFreeChart chart = createChart(dataset);  
  34. ChartPanel chartPanel = new ChartPanel(chart, false);  
  35. chartPanel.setPreferredSize(new Dimension(500, 270));  
  36. setContentPane(chartPanel);  
  37. }  
  38.  
  39. /**  
  40. Returns a sample dataset.  
  41. *   
  42. * @return The dataset.  
  43. */  
  44. private static CategoryDataset createDataset() {  
  45.  
  46. // row keys...  
  47. String series1 = "First";  
  48. String series2 = "Second";  
  49. String series3 = "Third";  
  50.  
  51. // column keys...  
  52. String category1 = "Category 1";  
  53. String category2 = "Category 2";  
  54. String category3 = "Category 3";  
  55. String category4 = "Category 4";  
  56. String category5 = "Category 5";  
  57.  
  58. // create the dataset...  
  59. DefaultCategoryDataset dataset = new DefaultCategoryDataset();  
  60.  
  61. dataset.addValue(1.0, series1, category1);  
  62. dataset.addValue(4.0, series1, category2);  
  63. dataset.addValue(3.0, series1, category3);  
  64. dataset.addValue(5.0, series1, category4);  
  65. dataset.addValue(5.0, series1, category5);  
  66.  
  67. dataset.addValue(5.0, series2, category1);  
  68. dataset.addValue(7.0, series2, category2);  
  69. dataset.addValue(6.0, series2, category3);  
  70. dataset.addValue(8.0, series2, category4);  
  71. dataset.addValue(4.0, series2, category5);  
  72.  
  73. dataset.addValue(4.0, series3, category1);  
  74. dataset.addValue(3.0, series3, category2);  
  75. dataset.addValue(2.0, series3, category3);  
  76. dataset.addValue(3.0, series3, category4);  
  77. dataset.addValue(6.0, series3, category5);  
  78.  
  79. return dataset;  
  80.  
  81. }  
  82.  
  83. /**  
  84. * Creates a sample chart.  
  85. *   
  86. * @param dataset  
  87. * the dataset.  
  88. *   
  89. * @return The chart.  
  90. */  
  91. private static JFreeChart createChart(CategoryDataset dataset) {  
  92.  
  93. // create the chart...  
  94. JFreeChart chart = ChartFactory.createBarChart("Bar Chart Demo 1", // chart  
  95. // title  
  96. "Category", // domain axis label  
  97. "Value", // range axis label  
  98. dataset, // data  
  99. PlotOrientation.VERTICAL, // orientation  
  100. true, // include legend  
  101. true, // tooltips?  
  102. false // URLs?  
  103. );  
  104.  
  105. // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...  
  106.  
  107. // set the background color for the chart...  
  108. chart.setBackgroundPaint(Color.white);  
  109.  
  110. // get a reference to the plot for further customisation...  
  111. CategoryPlot plot = (CategoryPlot) chart.getPlot();  
  112. plot.setBackgroundPaint(Color.lightGray);  
  113. plot.setDomainGridlinePaint(Color.white);  
  114. plot.setDomainGridlinesVisible(true);  
  115. plot.setRangeGridlinePaint(Color.white);  
  116.  
  117. // ******************************************************************  
  118. // More than 150 demo applications are included with the JFreeChart  
  119. // Developer Guide...for more information, see:  
  120. //  
  121. // > http://www.object-refinery.com/jfreechart/guide.html  
  122. //  
  123. // ******************************************************************  
  124.  
  125. // set the range axis to display integers only...  
  126. final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();  
  127. rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());  
  128.  
  129. // disable bar outlines...  
  130. BarRenderer renderer = (BarRenderer) plot.getRenderer();  
  131. renderer.setDrawBarOutline(false);  
  132.  
  133. // set up gradient paints for series...  
  134. GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f,  
  135. 0.0f, new Color(0, 0, 64));  
  136. GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f,  
  137. 0.0f, new Color(0, 64, 0));  
  138. GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,  
  139. 0.0f, new Color(64, 0, 0));  
  140. renderer.setSeriesPaint(0, gp0);  
  141. renderer.setSeriesPaint(1, gp1);  
  142. renderer.setSeriesPaint(2, gp2);  
  143.  
  144. CategoryAxis domainAxis = plot.getDomainAxis();  
  145. domainAxis.setCategoryLabelPositions(CategoryLabelPositions  
  146. .createUpRotationLabelPositions(Math.PI / 6.0));  
  147. // OPTIONAL CUSTOMISATION COMPLETED.  
  148.  
  149. return chart;  
  150.  
  151. }  
  152.  
  153. /**  
  154. * Starting point for the demonstration application.  
  155. *   
  156. * @param args  
  157. * ignored.  
  158. */  
  159. public static void main(String[] args) {  
  160. BarChartDemo1 demo = new BarChartDemo1("Bar Chart Demo 1");  
  161. demo.pack();  
  162. RefineryUtilities.centerFrameOnScreen(demo);  
  163. demo.setVisible(true);  
  164. }  
  165.  
  166. }  

 

你可能感兴趣的:(jfreechart,画图,非常,不错)