做一个jfreechart的demo
时间: 2023-05-15 12:07:20 浏览: 70
好的,我可以为您提供一个简单的 JFreeChart 的 demo,您可以参考以下代码:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Paint;
import java.text.DecimalFormat;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class JFreeChartDemo extends JFrame {
private static final long serialVersionUID = 1L;
public JFreeChartDemo(String title) {
super(title);
CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 270));
setContentPane(chartPanel);
}
private CategoryDataset createDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10.0, "Series 1", "Category 1");
dataset.addValue(20.0, "Series 1", "Category 2");
dataset.addValue(30.0, "Series 1", "Category 3");
dataset.addValue(40.0, "Series 1", "Category 4");
dataset.addValue(50.0, "Series 2", "Category 1");
dataset.addValue(60.0, "Series 2", "Category 2");
dataset.addValue(70.0, "Series 2", "Category 3");
dataset.addValue(80.0, "Series 2", "Category 4");
return dataset;
}
private JFreeChart createChart(CategoryDataset dataset) {
JFreeChart chart = ChartFactory.createBarChart(
"JFreeChart Demo", // chart title
"Category", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(Color.white);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
DecimalFormat format = new DecimalFormat("##0.00");
rangeAxis.setNumberFormatOverride(format);
BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setDrawBarOutline(false);
Paint[] colors = new Paint[]{
new GradientPaint(0, 0, Color.blue),
new GradientPaint(0, 0, Color.green),
new GradientPaint(0, 0, Color.red),
new GradientPaint(0, 0, Color.yellow)
};
for (int i = 0; i < colors.length; i++) {
renderer.setSeriesPaint(i, colors[i]);
}
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
return chart;
}
public static void main(String[] args) {
JFreeChartDemo demo = new JFreeChartDemo("JFreeChart Demo");
demo.pack();
demo.setVisible(true);
}
}
希望这个 demo 能够帮助您入门 JFreeChart。