使用JFreeChart绘制横向图,并设置颜色等参数
时间: 2024-03-11 07:47:10 浏览: 126
使用JFreeChart绘制横向图可以通过创建一个水平条形图来实现。以下是一个简单的示例代码,展示如何创建水平条形图并设置一些颜色和参数:
```
import java.awt.Color;
import java.awt.Dimension;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class HorizontalBarChartDemo extends ApplicationFrame {
public HorizontalBarChartDemo(String title) {
super(title);
JFreeChart chart = createChart();
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(500, 300));
setContentPane(chartPanel);
}
private static JFreeChart createChart() {
// 创建数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, "Series 1", "Category 1");
dataset.addValue(2.0, "Series 1", "Category 2");
dataset.addValue(3.0, "Series 1", "Category 3");
dataset.addValue(4.0, "Series 1", "Category 4");
// 创建图表
JFreeChart chart = ChartFactory.createBarChart(
"Horizontal Bar Chart Demo", // 标题
"Category", // x轴标签
"Value", // y轴标签
dataset, // 数据集
PlotOrientation.HORIZONTAL, // 图表方向
false, // 是否显示图例
false, // 是否显示工具提示
false // 是否生成URL链接
);
// 设置图表的背景颜色
chart.setBackgroundPaint(Color.white);
// 获取图表区域对象
CategoryPlot plot = (CategoryPlot) chart.getPlot();
// 设置图表区域的背景颜色及边框颜色
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
// 获取x轴对象
CategoryAxis domainAxis = plot.getDomainAxis();
// 设置x轴的标签字体和角度
domainAxis.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12));
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
// 获取y轴对象
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
// 设置y轴的标签字体
rangeAxis.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 12));
// 获取渲染器对象
BarRenderer renderer = (BarRenderer) plot.getRenderer();
// 设置渲染器的颜色
renderer.setSeriesPaint(0, Color.blue);
return chart;
}
public static void main(String[] args) {
HorizontalBarChartDemo demo = new HorizontalBarChartDemo("Horizontal Bar Chart Demo");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}
```
在上面的代码中,我们使用了`ChartFactory.createBarChart()`方法创建水平条形图。我们还通过`setBackgroundPaint()`方法设置了图表的背景颜色,通过`setDomainGridlinePaint()`和`setRangeGridlinePaint()`方法设置了图表区域的边框颜色。通过`getDomainAxis()`和`getRangeAxis()`方法获取x轴和y轴对象,通过`setTickLabelFont()`方法设置轴上的标签字体。通过`getRenderer()`方法获取渲染器对象,通过`setSeriesPaint()`方法设置渲染器的颜色。
阅读全文