文章來源於 sina 煙鬼博客 寫於2009-09-30 09:48
原创:我用的是最新版本1.0.16
设置字体,在网上找的有的根本就不行,所以自己就尝试着自己去试,最后试出几种解决办法,希望能对大家有用:
JFreeChart chart;
对于乱码,下面的语句请尝试就一定可以解决:
//设置图表的标题
chart.getTitle().setFont(new Font("隶书", Font.ITALIC, 15));
//设置X轴下方标题
chart.getXYPlot().getDomainAxis().setLabelFont(new Font("隶书", Font.ITALIC, 15));
//设置X轴坐标字体
chart.getXYPlot().getDomainAxis().setTickLabelFont(new Font("隶书", Font.ITALIC, 15));
//设置Y轴左方标题
chart.getXYPlot().getRangeAxis().setLabelFont(new Font("隶书", Font.ITALIC, 15));
//设置Y轴坐标字体
chart.getXYPlot().getRangeAxis().setTickLabelFont(new Font("隶书", Font.ITALIC, 15));
//设置X轴下方方框里面的字体
chart.getLegend().setItemFont(new Font("隶书", Font.ITALIC, 15));
//对于饼状图有下列情况,可以设置饼状内容的字体
//要对它进行强制类型转换
PiePlot pieplot = (PiePlot) chart.getPlot();
pieplot.setLabelFont(new Font("宋体", 0, 12));
---------------------------------------------------------==========================
下面这样也可以解决一些:
JFreeChart chart = ChartFactory.createBarChart3D("肉类销量统计图",
"肉类",
"销量",
dataset,
PlotOrientation.VERTICAL,
false,
false,
false);
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体",Font.PLAIN, 20));
CategoryPlot plot = chart.getCategoryPlot();//获得图表区域对象
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setVisible(true);
plot.setDomainAxis(domainAxis);
ValueAxis rAxis = plot.getRangeAxis();
domainAxis.setTickLabelFont(new Font("宋体",Font.PLAIN,15));
domainAxis.setLabelFont(new Font("宋体",Font.PLAIN,15));
rAxis.setTickLabelFont(new Font("宋体",Font.PLAIN,15));
rAxis.setLabelFont(new Font("黑体",Font.PLAIN,15));
-=-=-=-=============================================
饼状图形乱码解决:
JFreeChart chart = ChartFactory.createPieChart3D("IT行业职业分布图", dataset, true, false, false);
chart.getLegend().setItemFont(new Font("宋体", 0, 12));
PiePlot pieplot = (PiePlot) chart.getPlot();
pieplot.setLabelFont(new Font("宋体", 0, 12));
pieplot.setNoDataMessageFont(new Font("宋体", 0, 12));
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体",Font.PLAIN, 20));
-----------------------------------------==========================================
一下是引用:http://blog.sina.com.cn/s/blog_5dc12c490100d911.html
org.jfree.chart.JFreeChart:图表对象,任何类型的图表的最终表现形式都是在该对象进行一些属性的定制。JFreeChart引擎本身提供了一个工厂类用于创建不同类型的图表对象
org.jfree.data.category.XXXDataSet:数据集对象,用于提供显示图表所用的数据。根据不同类型的图表对应着很多类型的数据集对象类
org.jfree.chart.plot.XXXPlot:图表区域对象,基本上这个对象决定着什么样式的图表,创建该对象的时候需要Axis、Renderer以及数据集对象的支持
org.jfree.chart.axis.XXXAxis:用于处理图表的两个轴:纵轴(RangeAxis)和横轴(DomainAxis)
org.jfree.chart.render.XXXRender:负责如何显示一个图表对象
org.jfree.chart.urls.XXXURLGenerator:用于生成Web图表中每个项目的鼠标点击链接
XXXXXToolTipGenerator:用于生成图象的帮助提示,不同类型图表对应不同类型的工具提示类.
1、DataSet的类型
PieDataset接口,实现类是DefaultPieDataset,用来作为饼图的数据源
CatagoryDataset接口,实现类是DefaultCatagoryDataset,用来作为柱状图的数据源(当然,接口IntervalXYDataset也可作为它的数据源)
CatagoryDataset接口和XYDataset接口可以作为折线图的数据源
XYDataset接口,实现类是TimeSeriesCollection,作为时间序列图的数据源
2、ChartFactory工厂类,由它来产生JFreeChart对象
3、Plot对象,通过JFreeChart对象得到,然后通过Plot对象对图形内部进行进一步调整(例如,折线的类型等),当然,对于不同类型的图形,有不同的实现子类。
4.中文乱码问题:
-
plot.getDomainAxis().setLabelFont(font); //x轴外围字体
-
plot.getDomainAxis().setTickLabelFont(font); //x轴刻度字体
-
plot.getRangeAxis().setLabelFont(font); //y轴外围字体
-
plot.getRangeAxis().setTickLabelFont(font); //y轴刻度字体
-
jfreechart.getTitle().setFont(new Font("宋体", Font.CENTER_BASELINE, 20)); //标题字体
-
jfreechart.getLegend().setItemFont(font); //设置最底下方框内的字体
5.// 设置图表的背景颜色
chart.setBackgroundPaint(new Color(11, 95, 141));
// 自定义图表的标题的字体和颜色
TextTitle title = chart.getTitle();
title.setFont(new Font("汉真广标", Font.BOLD, 25));
title.setPaint(Color.YELLOW);
// 获得图表对象的引用
PiePlot plot = (PiePlot) chart.getPlot();
GradientPaint bg = new GradientPaint(0,50,new Color(248,253,255),0,250,new Color(205,237,252));
plot.setBackgroundPaint(bg);
// 设置饼图各组成部分的绘制颜色
Color color[] = new Color[lossTitle.length];
color[0] = new Color(99,99,0);
color[1] = new Color(255,169,66);
color[2] = new Color(255,0,66);
for(int i = 0;i < color.length;i++)
{
plot.setSectionPaint(i, color[i]);
// 分离显示饼图中表示"JAVA"的那部分圆弧
if (lossTitle[i].equals("损耗电量"))
plot.setExplodePercent(i, 0.15);
}
// 设置是否使用反锯齿功能
//chart.setAntiAlias(false);
// 设置饼图标签的绘制字体
plot.setLabelFont(new Font("Courier New", Font.PLAIN, 12));
// 设置饼图的外观为椭圆形还是正圆形
plot.setCircular(false);
// 结束自定义图表绘制的相关属性
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
// 设置图片生成格式
String fileName = ServletUtilities.saveChartAsPNG(chart, width, height, info, session);
// 设置图片生成路径
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
=----------=-=---------------------------------------------=
分享到:
相关推荐
下面将详细阐述如何解决JFreeChart中文乱码问题,并提供不同图表类型的具体配置示例。 1. **柱状图(CategoryPlot)**:在柱状图中,我们需要设置`CategoryPlot`的`domainAxis`和`rangeAxis`的字体,以及图例的字体。...
这个文件可以用来解决JFreeChart在Linux下显示中文乱码的问题。 解决步骤如下: 1. **安装字体**:首先,你需要将“simsun.ttc”字体文件安装到你的Linux系统中。这通常涉及到将字体文件复制到系统的字体目录...
### JFreeChart中文乱码问题解决 在使用Java进行数据可视化的过程中,经常需要用到JFreeChart这一强大的图表绘制库。然而,在处理中文字符时,开发者往往会遇到一个常见的问题——中文乱码。本文将深入探讨如何解决...
#### 三、解决问题的方法 为了解决中文乱码问题,我们需要自定义图表中各个组件所使用的字体,并确保这些字体是支持中文显示的。以下是一些关键步骤: 1. **定义字体**:首先定义支持中文显示的字体。例如,可以...
通过以上步骤,你应该能够在Linux环境中成功解决JFreeChart的中文乱码问题。记住,关键在于正确配置字体和确保Java能够找到并使用这些字体。在实际开发过程中,根据具体环境和需求,可能需要进行一些额外的调整。
因此,针对JFreeChart中的中文乱码问题,本文将汇总并整理一系列有效的解决方案。 #### JFreeChart简介 JFreeChart是一款开源Java图表库,它提供了丰富的API来创建高质量的图表。JFreeChart支持多种类型的图表,...
本文将详细介绍如何解决jfreechart中文乱码问题。 首先,乱码问题通常与字符编码有关。在Java Web应用中,确保页面的编码设置正确至关重要。在给定的jsp文件中,可以看到`contentType="text/html;charset=UTF-8"`这...
Jfreechart 中文乱码的解决方法,网上共享的资源
JFreeChart乱码解决方法 - 企业应用 - Java
这是一款专为Linux设计的中文字体,包含了大量汉字,可以有效地解决JFreeChart在Linux环境下的中文乱码问题。将“zysong.ttf”字体文件添加到系统中,可以让JFreeChart在绘制图表时能够正确渲染中文字符。 在Java...
Linux下JFreechart中文乱码的解决.docx
**JFreeChart 实例教程与应用详解** JFreeChart 是一个功能强大的 Java 图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图、甘特图等。这个教程将帮助你深入理解和使用 ...
`zysong.ttf` 文件可能是一个包含中文字符的TrueType字体文件,可以尝试在JFreechart中加载这个字体以解决乱码问题。 **解决方案** 1. **检查Java版本**:确认Java版本与JFreechart兼容,并更新到最新稳定版本。 ...
这些资源提供了丰富的实例,帮助开发者解决实际问题,并激发创新。 总结起来,JFreeChart 是一个强大且灵活的图表库,为Java开发者提供了丰富的数据可视化工具。无论是在简单的个人项目还是复杂的商业应用中,它都...
《深入解析JFreeChart:源码、库与实例探索》 JFreeChart,作为一个强大的Java图表库,被广泛应用于各种需要展示数据可视化的项目中。它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,使得...
本人精心收集的资料!打包成CHM格式方便学习和查阅! 共有85篇关于JFreechart的教程+示例+中英文API! 还有很多在实际应用中碰到的常见问题的讨论帖! 没分的朋友可以加我QQ(11573639)!
针对上述问题,可以通过以下几种方法来解决jFreeChart中的中文乱码问题: ##### 1. 设置支持中文的字体 最直接的方法是为jFreeChart中的各个元素(如轴标签、图例等)指定一个支持中文的字体。例如,在示例代码中...
这是一个获取用户信息的投票系统,包含需求及代码,可以了解投票系统的基本需求,如何分析和设计数据库、使用JSP +JavaBean+Struts2+JDBC+JFreeChart进行开发、学会MySQL数据库的基本使用、使用JFreeChart画柱状图、...
这个特定的版本,被称为“JFreeChart无中文乱码版本”,特别优化了解决在处理中文字符时可能出现的乱码问题,使得在中文环境下使用JFreeChart变得更加友好。 JFreeChart支持多种类型的图表,包括但不限于柱状图、...