使用JFreeChart创建图象

使用JFreeChart来创建图表 一、简介:JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。为了创建一个可以在web浏览器上查看到图表一般有两种做法:第一种就是使用applet利用java本身对图形的支持来显示一个图表;第二种就是直接在web服务器 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 作者:孤魂一笑(bingo_ge@hotmail.com) 日期:2003-05-08 一:jfreechart介绍 jfreechart是一个免费创建图片的java工具.可以创建如下图形: 饼图(pie charts;) 曲线图(line charts ) 柱状图(horizontal/vertical bar charts) 甘特图(Gantt charts; ) XY plots and scatter plots; time series, high/low/open/close charts and candle stick charts; combination charts; Pareto charts; bubble charts; wind plots, meter charts and symbol charts; 从以下地址可以看到jfreechart可以创建的图形类型 http://www.jfree.org/jfreechart/samples.html sourceforge有一个基于jfreechart的项目Cewolf可以很方便的在jsp/servlet中创建图片 jfreechart目前(2003-05-08)版本为0.98 希望得到详细的信息或下载jfreechart请访问如下站点: http://www.jfree.org/jfreechart/ 二:特别说明: jfreechart是一个开源项目,但是文档是需要40美金去购买的。 还有一个很重要的问题,jfreechart如果使用中文,他使用的默认字体 显示出来的中文会很模糊,你可能需要修改源代码。 下面我就举几个简单的例子说明一下如何使用jfreechart创建图片 在开发中有可能会导入以下的类 import com.jrefinery.chart.ChartFactory; import com.jrefinery.chart.ChartUtilities; import com.jrefinery.chart.JFreeChart; import com.jrefinery.chart.TextTitle; import com.jrefinery.chart.axis.NumberAxis; import com.jrefinery.chart.plot.CategoryPlot; import com.jrefinery.chart.plot.PiePlot; import com.jrefinery.data.Day; import com.jrefinery.data.DefaultCategoryDataset; import com.jrefinery.data.DefaultPieDataset; import com.jrefinery.data.TimeSeries; import com.jrefinery.data.TimeSeriesCollection; import com.jrefinery.data.TimeSeriesDataPair; 在0.98以后包由com.jrefinery.*改变为:org.jfree 三:创建饼图 //图片标题 String title = "空调2002年市场占有率"; //设定数据源 DefaultPieDataset piedata = new DefaultPieDataset(); //第一个参数为名称,第二个参数是double数 piedata.setValue("联想", 27.3); piedata.setValue("长城", 12.2); piedata.setValue("海尔", 5.5); piedata.setValue("美的", 17.1); piedata.setValue("松下", 9.0); piedata.setValue("科龙", 19.0); //创建JFreeChart,都使用ChartFactory来创建JFreeChart,很标准的工厂设计模式 JFreeChart chart = ChartFactory.createPieChart(title, piedata, true, true, true); //设定图片标题 chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15))); //chart.addSubtitle(new TextTitle("2002财年分析", new Font("隶书", Font.ITALIC, 12))); //设定背景 chart.setBackgroundPaint(Color.white); //chart.s //饼图使用一个PiePlot PiePlot pie = (PiePlot)chart.getPlot(); //pie.setSectionLabelType(PiePlot.NAME_AND_PERCENT_LABELS); pie.setSectionLabelType(PiePlot.NAME_AND_VALUE_LABELS); //设定显示格式(名称加百分比或数值) pie.setPercentFormatString("#,###0.0#%"); //设定百分比显示格式 pie.setBackgroundPaint(Color.white); pie.setSectionLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12)); //设定背景透明度(0-1.0之间) pie.setBackgroundAlpha(0.6f); //设定前景透明度(0-1.0之间) pie.setForegroundAlpha(0.90f); //输出文件到指定目录 String rfname = MathUtil.getRoundCode(12) ".jpeg"; String fileName = "d:/test/" rfname; try { //可以保存文件为jpg或png格式。 ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600); //第一个参数为文件名 //第二个参数质量 //第三个参数为哪个chart创建图片 //第四个宽度 //第五个高度 } catch (IOException exz) { System.out.print("....Cant't Create image File"); } 其实使用JFreeChart创建图片很简单,不同的的图片类型区别在于设置数据集 四:创建曲线图 // create a default chart based on some sample data... //曲线图标题 String title = "趋势分析"; //曲线图X轴提示 String domain = "月份走势"; //曲线图Y轴提示 String range = "应收余额"; //曲线图自标题 String subtitleStr = "2003财年分析"; //创建时间数据源 //每一个TimeSeries在图上是一条曲线 TimeSeries ca = new TimeSeries("用友"); for (int i = 1999; i < 2005; i ) { for (int mon = 0; mon < 12; mon ) { //ca.add(new Month(mon 1, i), new Double(500 Math.random() * 100)); //TimeSeriesDataPair是一个时间点的数值体现 ca.add( new TimeSeriesDataPair( new Day(1, mon 1, i), new Double(500 Math.random() * 100))); } } TimeSeries ibm = new TimeSeries("金碟"); for (int i = 1999; i < 2005; i ) { for (int mon = 0; mon < 12; mon ) { //ibm.add(new Month(mon 1,i),new Double(400-Math.random()*100)); ibm.add( new TimeSeriesDataPair( new Day(1, mon 1, i), new Double(400 - Math.random() * 100))); } } TimeSeries king = new TimeSeries("东软"); for (int i = 1999; i < 2005; i ) { for (int mon = 0; mon < 12; mon ) { //ibm.add(new Month(mon 1,i),new Double(400-Math.random()*100)); king.add( new TimeSeriesDataPair( new Day(1, mon 1, i), new Double(300 - Math.random() * 100))); } } //时间曲线数据集合 TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(ca); dataset.addSeries(ibm); dataset.addSeries(king); //dataset.addSeries(jpy); //dataset.addSeries(mav); //时间曲线元素 JFreeChart chart = ChartFactory.createTimeSeriesChart( title, domain, range, dataset, true, true, false); // then customise it a little... TextTitle subtitle = new TextTitle(subtitleStr, new Font("黑体", Font.BOLD, 12)); chart.addSubtitle(subtitle); chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15))); //pie.setSeriesLabelFont(new Font("黑体", Font.BOLD, 15)); chart.setBackgroundPaint( new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue)); //sysout //输出文件到指定目录 String rfname = MathUtil.getRoundCode(22) ".jpeg"; String fileName = "d:/test/" rfname; try { //for //System.out.println(); ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600); // log.info("....Create image File:" fileName); } catch (IOException exz) { System.out.print("....Cant't Create image File"); } 五:创建柱状图 String title = "柱状图测试"; String domain = "单位比较"; String range = "数值"; //CategoryDataset data = DemoDatasetFactory.createCategoryDataset(); DefaultCategoryDataset data = new DefaultCategoryDataset(); for (int r = 0; r < 5; r ) { String rowKey = "单位 [" (r 1) "]" ; //第一层循环:分析对象 for (int c = 0; c < 6; c ) { //第二层循环:分析对象在时间点上的数据 String columnKey = "2001年" (c 1) "月"; data.addValue(new Double(r * c 5), rowKey, columnKey); } } JFreeChart chart = ChartFactory.createVerticalBarChart( title, domain, range, data, true, true, false); // then customise it a little... chart.setBackgroundPaint( new GradientPaint(0, 0, Color.white, 1000, 0, Color.red)); chart.setTitle(new TextTitle(title, new Font("隶书", Font.ITALIC, 15))); CategoryPlot plot = (CategoryPlot)chart.getPlot(); plot.setForegroundAlpha(0.9f); plot.setValueLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12)); //plot.setSectionLabelFont(new Font("黑体", Font.TRUETYPE_FONT, 12)); //注意以下代码 NumberAxis verticalAxis = (NumberAxis)plot.getRangeAxis(); verticalAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); // 输出文件到指定目录 String rfname = MathUtil.getRoundCode(22) "b.jpeg"; String fileName = "d:/test/" rfname; try { ChartUtilities.saveChartAsJPEG(new File(fileName), 100, chart, 600, 600); // log.info("....Create image File:" fileName); } catch (IOException exz) { System.out.print("....Cant't Create image File"); } 六:结束语 个人感觉JFreeChart可以满足大部分图片创建的需要,美中不足的是:对字体的设置做的 不够好,特别是使用中文的时候字体很不清晰。因为这个原因建议你自己去修改他的源代码 最好使用properties文件去设置字体.还有就是文档要钱所以要多花点时间去看源代码。或多 上社区.因为时间等原因我只介绍了三种图片的创建,其他类型的图片可以参考jfreechart提 供的例子。
YOLOv8环境搭建+训练自己的数据详细项目 直接按照路径会有问题,找到自己 requirements.txt 文件路径,我这里是pip install -r D:\ultralytics-main\ultralytics-main\requirements.txt。首先去自己的anaconda的安装的envs(虚拟环境),在导航栏输入cmd,进入命令窗口。到官方网站下载yolo模型 ,下载好后解压,里面有个文件requirements.txt。然后安装ultralytics ,这是必须的。 阅读详情

相关推荐

UDS 诊断 - CommunicationControl(通信控制)(0x28)服务 诊断

字节参数名称字节值#1CommunicationControl(通信控制)请求SID0x28#2#3communicationType(通信类型)#4nodeIdentificationNumer(节点标识符)(高位字节)controlType 为 0x04 或 0x05 时,使用该参数#5nodeIdentificationNumer(节点标识符)(低位字节)controlType 为 0x04 或 0x05 时,使用该参数。

耳朵东金子千的博客 1822

jfreechart图形绘制(一)

jfreechart图形绘制(一) 代码: package number1; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; impo

独守夕阳余晖 913

Ansys Lumerical | 薄膜铌酸锂电光调制器的仿真与优化

本文详细介绍了使用Ansys Lumerical进行薄膜铌酸锂电光调制器仿真与优化的全流程。从基础原理到电学仿真、光学模拟技巧,再到设计优化实战经验,帮助工程师掌握这一先进光电器件的仿真方法。重点解析了薄膜铌酸锂的Pockels效应和Mach-Zehnder结构设计,并提供了常见问题排查指南和最新发展动态。

vulkan6gpu的博客 1200

jfreechart使用

http://blog.sina.com.cn/s/blog_405da78d010000ap.htmlJFreeChart的主页地址为:http://www.jfree.org/jfreechart/index.htmlJFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求。JfreeChart配置和安装加入jfreechart_xxx.jar jcommon_xxx.jar gnujaxp.jarJFreeChart产生图形的流程创建一个数据源(dataset)来包含将

哇哈哈 1267

强化学习赋能宇树机器狗:Isaac Gym与MuJoCo仿真训练全解析

本文详细解析了如何利用Isaac Gym和MuJoCo两大仿真平台为宇树机器狗构建强化学习训练管道。内容涵盖环境配置、模型导入、PPO算法框架设计、奖励函数构建以及从仿真到实机的策略迁移技巧,为开发者提供了一套完整的宇树狗仿真训练实践方案。

zeta9的博客 621

将pytroch模型转为paddlelite模型并集成到android程序中

在android中使用paddlelite加载yolov5模型识别opencv读取的摄像头信息

qq_56460466的博客 1555

(问题贴)Java导出word文档,包含图片、文字、表格、饼图、环形图(遇到的问题)

没啥好说的

weixin_45691427的博客 1万+

全面分析总结解决Could not transfer artifact org.apache.maven.plugins等此类问题的方法

全面分析总结解决Could not transfer artifact org.apache.maven.plugins,Could not transfer artifact xxx from/to xxx等此类问题的方法

ccjjjjdff的博客 1万+

JFreeCharts画k线图

记录下画k线组合图的过程。                  首先,k线图里包含了蜡烛图、折线图、柱状图,上面图例。然后,折线图和蜡烛图画在了一个plot里面。柱状图单独一个plot。        先说说蜡烛图。JFreeCharts里专门提供了一个叫OHLCSeries(open、high、low、close)的类来存放蜡烛图数据。构造方法直接指定时间,然后指定OHLC数据就完成

4906

WSL2+Docker+Ollama:解锁Windows本地GPU加速运行DeepSeek-R1模型

本文详细介绍了在Windows系统上,通过WSL2、Docker和Ollama的组合方案,实现本地GPU加速运行DeepSeek-R1模型的全过程。该方案解决了Windows环境下Ollama默认无法调用NVIDIA显卡的痛点,通过配置Docker的GPU支持,强制将计算任务分配给GPU,从而显著提升文本生成速度与效率,为开发者提供了一个便捷的本地AI测试环境。

weixin_28452161的博客 358

工业音频故障检测:从CNN到Transformer的技术演进

音频信号处理是工业设备预测性维护的核心技术之一,通过分析设备运行时产生的声波特征实现故障预警。传统方法依赖梅尔频率倒谱系数(MFCC)等手工特征,而深度学习技术尤其是Transformer架构,通过自注意力机制突破了CNN在跨频段特征提取上的局限。Audio Spectrogram Transformer(AST)等先进模型在工业场景中展现出91.2%的高召回率,显著优于传统方案。这种非接触式监测技术结合边缘计算优化,已成功应用于石油化工、电力能源等领域,实现提前72小时预测轴承故障,单项目可避免数百万元的

weixin_30467861的博客 328

菜鸟学JFreeChart-初学JFreeChart

有问题没解决。。这是个豆腐渣文章 所有的源代码和开发文档为都有上传,链接地址:点击打开链接 http://download.csdn.net/detail/xuanyuanlei1020/8440985 一 使用JFreeChart创建图表遵循三步: 1 创建一个dataset ,将要化成图表的数据储存起来。 2 创建一个JFreeChart的对象,这个对象负责将图表绘制出

xuanyuanlei1020的专栏 1198

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

使用JFreeChart创建图象【转载】

使用JFreeChart创建图象【转载】一:jfreechart介绍 jfreechart是一个免费创建图片的java工具.可以创建如下图形:饼图(pie charts;) 曲线图(line charts ) 柱状图(horizontal/vertical bar charts) 甘特图(Gantt charts) XY plots and scatter plots

Louis的专栏 1792

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

使用JFreeChart创建图象遇到问题,提示java.lang.noclassdeffounderror: org/jfree/chart/ChartPanel

使用eclipse编码的时候,想用jfreechart包实现图像化的显示,所以进行了下载和使用。 JFreeChart下载和导入 1、从官网下载一个最新的jfreechart包 2、将其解压到电脑上Java文件夹下的lib包中(这并不会使项目自动导入jfreechart,仅仅是为了找起来方便,也可以解压到你觉得方便的文件夹中) 3、打开eclipse,右击需要导入jar的项目,点击Properties,在弹出的窗口中找到Java Build Path 4、选中ClassPath(很重要!!!)

Sprinautummer的博客 1305

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 用ZipOutputStream压缩目录
下一篇: Servlet中如何捕获Session事件
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值