利用java生成柱状图
2008-11-17 17:27
543 查看
在本人博客中将会列出柱状图、饼图、动态曲线图、静态曲线图、折线图,所有的代码都是参照于网上,在加上一些个人的注释,希望能过对大家有所帮助。
所有图片都是利用JFreeChart来生成,所以我们首先需要下载JFreeChart包(建议大家使用JFreeChart-1.0.9,我在使用JFreeChart-1.0.11版本的时候,一直出现IO异常)
下载地址:http://download.csdn.net/source/337198
此篇为柱状图:
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
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.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChart3DDemo {
/**
* 创建jpg格式的柱状图
*
* @param String
* histogramName = 柱状图名称
*
* @param String
* xName = 目录轴的显示标签(横轴名称)
*
* @param String
* yName = 数值轴的显示标签(纵轴名称)
*
* @param String
* exportPath = 输出路径+文件名称
*
* @return true/false = 成功/失败
*
* @author Yangw
*
* @timer 2008-11-07
*/
public static boolean BarChart3DToJpg(String histogramName, String xName,
String yName, String exportPath) {
/** 柱状图的标签总类及数量 */
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(47000, "", "葡萄");
dataset.addValue(38000, "", "柚子");
dataset.addValue(31000, "", "苹果");
dataset.addValue(25000, "", "梨子");
JFreeChart chart = ChartFactory.createBarChart3D(histogramName, xName,
yName, dataset, PlotOrientation.VERTICAL, false, false, false);// PlotOrientation.VERTICAL设置图标方向
/** 设置标题 */
chart.setTitle(new TextTitle(histogramName, new Font("黑体", Font.ITALIC,
22)));
/** 设置图表部分 */
CategoryPlot plot = (CategoryPlot) chart.getPlot();
/** 取得横轴 */
CategoryAxis categoryAxis = plot.getDomainAxis();
/** 设置横轴显示标签的字体 */
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
/** 分类标签平行显示 */
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD);
/** 分类标签字体 */
categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));
/** 取得纵轴 */
NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
/** 设置纵轴显示标签字体 */
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 42));
FileOutputStream fos = null;
try {
fos = new FileOutputStream(exportPath);
/** 生成png格式图片 */
ChartUtilities.writeChartAsPNG(fos, chart, 800, 600);
<
94a7
li class="alt"> /** 生成jpeg格式图片 */
// ChartUtilities.writeChartAsJPEG(fos, 1, chart, 800, 600, null);
fos.close();
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
/** 测试 */
public static void main(String[] args) throws IOException {
System.out.println(BarChart3DDemo.BarChart3DToJpg("水果销量统计图", "水果",
"销量", "D://f.png"));
}
}
所有图片都是利用JFreeChart来生成,所以我们首先需要下载JFreeChart包(建议大家使用JFreeChart-1.0.9,我在使用JFreeChart-1.0.11版本的时候,一直出现IO异常)
下载地址:http://download.csdn.net/source/337198
此篇为柱状图:
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
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.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChart3DDemo {
/**
* 创建jpg格式的柱状图
*
* @param String
* histogramName = 柱状图名称
*
* @param String
* xName = 目录轴的显示标签(横轴名称)
*
* @param String
* yName = 数值轴的显示标签(纵轴名称)
*
* @param String
* exportPath = 输出路径+文件名称
*
* @return true/false = 成功/失败
*
* @author Yangw
*
* @timer 2008-11-07
*/
public static boolean BarChart3DToJpg(String histogramName, String xName,
String yName, String exportPath) {
/** 柱状图的标签总类及数量 */
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(47000, "", "葡萄");
dataset.addValue(38000, "", "柚子");
dataset.addValue(31000, "", "苹果");
dataset.addValue(25000, "", "梨子");
JFreeChart chart = ChartFactory.createBarChart3D(histogramName, xName,
yName, dataset, PlotOrientation.VERTICAL, false, false, false);// PlotOrientation.VERTICAL设置图标方向
/** 设置标题 */
chart.setTitle(new TextTitle(histogramName, new Font("黑体", Font.ITALIC,
22)));
/** 设置图表部分 */
CategoryPlot plot = (CategoryPlot) chart.getPlot();
/** 取得横轴 */
CategoryAxis categoryAxis = plot.getDomainAxis();
/** 设置横轴显示标签的字体 */
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
/** 分类标签平行显示 */
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD);
/** 分类标签字体 */
categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));
/** 取得纵轴 */
NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
/** 设置纵轴显示标签字体 */
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 42));
FileOutputStream fos = null;
try {
fos = new FileOutputStream(exportPath);
/** 生成png格式图片 */
ChartUtilities.writeChartAsPNG(fos, chart, 800, 600);
<
94a7
li class="alt"> /** 生成jpeg格式图片 */
// ChartUtilities.writeChartAsJPEG(fos, 1, chart, 800, 600, null);
fos.close();
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
/** 测试 */
public static void main(String[] args) throws IOException {
System.out.println(BarChart3DDemo.BarChart3DToJpg("水果销量统计图", "水果",
"销量", "D://f.png"));
}
}
相关文章推荐
- 利用JFreeChart生成简单柱状图(Java)
- 利用JFreeChart生成简单柱状图(Java)
- java中利用类名生成Class对象,通过class对象创建实体类的理解
- Java利用Zxing生成二维码
- Java利用POI生成Excel强制换行
- java利用dom4j对输入的任意对象生成xml文件
- jFreeChart利用CategoryDatase,ChartFactory.createBarChart生成的柱状图
- Ubuntu下,Java中利用JNI调用codeblocks c++生成的动态库的使用步骤
- Axis2发布webservice(3)--axis2生成wsdl文件,并利用wsdl文件来生成WebService的Java代码
- java利用poi包 为excel生成超链接
- 利用wsdl2java工具生成webservice的客户端代码
- Java 利用 HttpURLConnection 读取页面 返回字节流(生成静态页面)
- 利用Eclipse和JSmooth生成java EXE可执行文件
- 利用javah技术生成jni接口的详细步骤
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- JAVA 利用XML生成json完成接口对接实现
- 利用Java生成静态HMTL页面的方法----------转自http://playfish.iteye.com/blog/150386
- JAVA利用JXL导出/生成 EXCEL1
- 利用FreeMarker生成java源代码
- Java中利用IText7生成PDF