JFreeChart生成图片设置字符集
时间: 2023-07-04 16:07:43 浏览: 115
JFreeChart生成图片并显示
JFreeChart 默认使用系统的字符集,在生成图片时可能会出现中文乱码的问题。可以通过设置 JFreeChart 的字体来解决这个问题。
以下是一个示例代码:
```java
import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
public class ChartDemo {
public static void main(String[] args) {
// 创建数据集
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");
// 创建图表
JFreeChart chart = ChartFactory.createBarChart(
"Title",
"Category",
"Value",
dataset,
PlotOrientation.VERTICAL,
false,
true,
false);
// 设置字体
Font font = new Font("SimSun", Font.PLAIN, 12); // 使用宋体字体
chart.getTitle().setFont(font);
chart.getLegend().setItemFont(font);
chart.getCategoryPlot().getDomainAxis().setLabelFont(font);
chart.getCategoryPlot().getRangeAxis().setLabelFont(font);
chart.getCategoryPlot().getDomainAxis().setTickLabelFont(font);
chart.getCategoryPlot().getRangeAxis().setTickLabelFont(font);
// 生成图片
ChartUtilities.saveChartAsJPEG(new File("chart.jpg"), chart, 400, 300);
}
}
```
在上面的代码中,我们创建了一个 `Font` 对象,使用 `SimSun` 字体(宋体),然后将它应用到图表的各个部分,包括标题、图例、坐标轴等。最后通过 `ChartUtilities.saveChartAsJPEG` 方法将图表保存为 JPEG 格式的图片。
阅读全文