利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)
利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)
通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFactory的createXYAreaChart()方法获得JFreeChart类的实例,在封装用来绘制区域图的数据时,既可以利用CategoryDataset数据集,也可以利用XYDataset数据集。
XYDataset数据集主要用来绘制与日期相关的统计图,这种统计图的横轴通常为日期标度,纵轴为数值标度,JFreeChart提供了格式化坐标轴标度的功能;在格式化横轴的日期标度时,可以通过java.text.SimpleDateFormat类格式化日期的输出格式,SimpleDateFormat类继承于java.text.DateFormat类。例如,通过下面的代码可以将日期和时间进行格式化:
DateFormat dateFormatDA = new SimpleDateFormat("yyyy-MM-dd"); // 年以4位显示
DateFormat dateFormatDB = new SimpleDateFormat("yy-MM-dd"); // 年以2位显示
DateFormat dateFormatTA = new SimpleDateFormat("HH:MM:SS"); // 24小时的形式显示
DateFormat dateFormatTB = new SimpleDateFormat("HH:MM:SS a"); // 12小时的形式显示
说明:这里只是给出了几个典型的格式化方式,读者可以在此基础上举一反三。
还可以通过org.jfree.chart.axis.DateTickUnit类定义日期标度的单位和间隔,其中一个构造函数的定义如下:
DateTickUnit(int unit, int count, DateFormat formatter)
参数说明
l unit:日期标度的统计单位。
l count:日期标度的输出间隔。
l formatter:日期标度的格式化方式。
在格式化纵轴的数值标度时,可以通过java.text.DecimalFormat类格式化数值的输出格式,例如可以将数值进行如下格式化:
DecimalFormat decimalFormat = new DecimalFormat("0.00"); // 保留小数点后两位
DecimalFormat decimalFormat = new DecimalFormat("0%"); // 以百分比的形式输出
说明:这里只是给出了几个典型的格式化方式,读者可以在此基础上举一反三。
还可以通过org.jfree.chart.axis.NumberTickUnit类定义数值标度的间隔,其中一个构造函数的定义如下:
NumberTickUnit(double size, NumberFormat formatter)
参数说明
l size:数值标度的输出间隔。
l formatter:日期标度的格式化方式。
示例14-05 每日股票走势区域图分析
下面来看一个绘制区域图的例子,该例绘制的区域图效果如图14.8所示。
图14.8 每日股票走势区域图分析
代码14-05 光盘位置:光盘\mingrisoft\14\sl\05
定义日期轴,每隔两小时输出一个标记,代码如下:
DateAxis domainAxis = new DateAxis("统计时间" + date);
DateFormat dateFormat = new SimpleDateFormat("HH");
DateTickUnit unit = new DateTickUnit(DateTickUnit.HOUR, 2, dateFormat);
domainAxis.setTickUnit(unit);
plot.setDomainAxis(domainAxis);
定义数值轴,以百分比的形式输出,并且每隔5个百分比输出一个标记,代码如下:
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
DecimalFormat decimalFormat = new DecimalFormat("0%");
NumberTickUnit ntu = new NumberTickUnit(0.05, decimalFormat);
rangeAxis.setTickUnit(ntu);
最新文章
- 用SignalR 2.0开发客服系统[系列4:负载均衡的情况下使用SignalR]
- Android 笔记 AutoCompleteTextView day8
- 转-decorators.xml的用法-http://blog.csdn.net/gavinloo/article/details/7458062
- echo选项
- Threejs 使用的3D格式
- linux包之coreutils之du和df命令
- 【CocoaPods】配置CocoaPods前 - 本地安装好Ruby环境
- HDU5088——Revenge of Nim II(高斯消元&;矩阵的秩)(BestCoder Round #16)
- Codeforces Gym 100418J Lucky tickets 数位DP
- 手机端H5点击类目自动定位到相应内容
- canvas.toDataURL(type, args)
- [linux]ubuntu14.04通过apt-get安装软件失败
- 【Hook技术】实现从";任务管理器";中保护进程不被关闭 + 附带源码 + 进程保护知识扩展
- 设计模式08---设计模式之抽象工厂模式(Abstract Factory)
- The Linux Storage Stack Diagram 内核 4.0 版的 I/O 栈
- jenkins新建slave
- React Native Android开发环境配置
- pheatmap, gplots heatmap.2和ggplot2 geom_tile实现数据聚类和热图plot
- Requests+正则表达式抓取猫眼电影TOP100
- JSHFJK师德师风幅度十分时尚大方JSHFJK