JFreeChart(四)之线型图
转载自 JFreeChart线型图
线图或折线图来显示信息为一系列由直线段连接的数据点(标记)。线图显示数据在相同的时间频率如何变化。本章从一个给定的业务数据演示如何使用JFreeChart创建线型图。
业务数据
下面的示例绘制折线图显示从1970年开始学校在不同年份开通数量。
给定的数据如下:
年份 | 学校数量 |
---|---|
1970 | 15 |
1980 | 30 |
1990 | 60 |
2000 | 120 |
2013 | 240 |
2014 | 300 |
基于AWT的应用
以下是对从上述给定的信息创建线型图的代码。此代码可以帮助在AWT的应用程序嵌入一个折线图。
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;public class LineChart_AWT extends ApplicationFrame
{public LineChart_AWT( String applicationTitle , String chartTitle ){super(applicationTitle);JFreeChart lineChart = ChartFactory.createLineChart(chartTitle,"Years","Number of Schools",createDataset(),PlotOrientation.VERTICAL,true,true,false);ChartPanel chartPanel = new ChartPanel( lineChart );chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );setContentPane( chartPanel );}private DefaultCategoryDataset createDataset( ){DefaultCategoryDataset dataset = new DefaultCategoryDataset( );dataset.addValue( 15 , "schools" , "1970" );dataset.addValue( 30 , "schools" , "1980" );dataset.addValue( 60 , "schools" , "1990" );dataset.addValue( 120 , "schools" , "2000" );dataset.addValue( 240 , "schools" , "2010" );dataset.addValue( 300 , "schools" , "2014" );return dataset;}public static void main( String[ ] args ) {LineChart_AWT chart = new LineChart_AWT("School Vs Years" ,"Numer of Schools vs years");chart.pack( );RefineryUtilities.centerFrameOnScreen( chart );chart.setVisible( true );}
}
保存LineChart_AWT.java文件如上面的Java代码,然后从命令提示符下编译并运行它,如下所示:
$javac LineChart_AWT.java
$java LineChart_AWT
如果一切顺利,它会编译并运行生成以下线图:
创建JPEG图像
让我们重新编写上面的例子,在命令行执行生成JPEG图像。
import java.io.*;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;public class LineChart
{public static void main( String[ ] args ) throws Exception{DefaultCategoryDataset line_chart_dataset = new DefaultCategoryDataset();line_chart_dataset.addValue( 15 , "schools" , "1970" );line_chart_dataset.addValue( 30 , "schools" , "1980" );line_chart_dataset.addValue( 60 , "schools" , "1990" );line_chart_dataset.addValue( 120 , "schools" , "2000" );line_chart_dataset.addValue( 240 , "schools" , "2010" ); line_chart_dataset.addValue( 300 , "schools" , "2014" );JFreeChart lineChartObject = ChartFactory.createLineChart("Schools Vs Years","Year","Schools Count",line_chart_dataset,PlotOrientation.VERTICAL,true,true,false);int width = 640; /* Width of the image */int height = 480; /* Height of the image */ File lineChart = new File( "LineChart.jpeg" ); ChartUtilities.saveChartAsJPEG(lineChart ,lineChartObject, width ,height);}
}
让我们保存LineChart.java文件如上面的Java代码,然后从命令提示符下编译并运行它,如下所示:
$javac LineChart.java
$java LineChart
如果一切顺利,它将编译和执行在当前的目录中创建JPEG图像文件namedLineChart.jpeg。
JFreeChart(四)之线型图相关推荐
- Python科研绘图第一期——线型图(Line)、条型图(Bar)、散点图(Scatter)、子图(subplot)
速览: 目录 一.线性图 二.条形图 三.散点图 四.子图 一.线型图 图1.2代码 import matplotlib.pyplot as plt import numpy as np plt.r ...
- R语言gganimate包创建可视化gif动图、可视化动图:、gganimate包创建动态线型图动画基于transition_time函数、使用geom_point函数显示动画移动的数据点
R语言gganimate包创建可视化gif动图.可视化动图:.gganimate包创建动态线型图动画基于transition_time函数.使用geom_point函数显示动画移动的数据点 目录
- R语言gganimate包创建可视化gif动图:gganimate包创建动态线型图动画基于transition_time函数、使用geom_point函数显示动画移动的数据点、并保留线图中的全部数据点
R语言gganimate包创建可视化gif动图:gganimate包创建动态线型图动画基于transition_time函数.使用geom_point函数显示动画移动的数据点.并保留线图中的全部数据点 ...
- JFreeChart应用实例-折线图
http://www.tuicool.com/articles/Nr2Yna JFreeChart在制作折线图的时候可以使用两种不同的方式 package Line;import java.awt.C ...
- 【视觉项目】【day5】8.25号实验记录(修完BUG,28张测试图,13个样本,四张测试图误判,这比之前效果好很多了)
目录 修改完BUG后的程序以及效果 优化思路,增强正确识别率(待验证) 修改完BUG后的程序以及效果 修改代码后的测试结果:(利用连通域面积将明显比本张测试图的瓶子要小的模板提前去除,减少误判) 这样 ...
- 四色原型图进行业务建模的思考
一般的需求,我们利用用例图就可以表达清楚了,如果再复杂些,我们可能还得再配合序列图.状态图等加于说明.但是,在非常复杂的业务逻辑中,怎么样才能找出它们的联系?而且还能更好地拥抱OO(面向对象),OO的 ...
- pandas绘图_Pandas内置绘图方法(线型图、柱状图、密度图)
Series和DataFrame都有一个用于生成各类图表的plot方法. 线型图 默认情况下,它们所生成的是线型图 >>> import pandas as pd >>& ...
- 二十四式长生图——清手抄本(扫描版)
道家却病延年密本分享.这本<廿四式长生图>是道教修气炼功夫的图谱,作者不详,封面印章为"润之",是清末的一个手钞本,目前藏于海外. 此书内容,文字概要,图示清楚,动作简 ...
- 地图四色着图的C语言实现
四色问题又称四色猜想.四色定理,是世界三大数学猜想之一.四色定理是一个著名的数学定理,通俗的说法是:每个平面地图都可以只用四种颜色来染色,而且没有两个邻接的区域颜色相同.1976年借助电子计算机证明了 ...
最新文章
- 麦肯锡报告:传统车企正面临出行的数字化颠覆
- 3、Python字典集合
- 实现el-dialog的拖拽,全屏,缩小功能
- 【Linux】 iptables vs firewalld
- qt初学者 第一个小程序 小界面
- boost::mp11::mp_fill相关用法的测试程序
- ip复原Java,力扣:复原IP地址
- 解决html2canvas截取页面部分div黑屏问题
- 我爱计算机视觉精华文章分类汇总(2018年12月13日)
- 4. PSR-4 --- 自动加载
- Macx OS下没有GCC问题
- ff14个服务器位置,新人求推荐个服务器
- 3D控件Aspose.3D 18年新版V18.1发布 | 附下载
- Linux上安装rz、sz命令
- vb.net SpeechLib 播报语音封装类
- 08-22 CDR数据时钟恢复电路
- python showinfo函数_Python 函数
- html5 微网页 点餐_使用HTML5和微数据向网页添加电话号码
- matlab心线代码,matlab心形线
- 利达主机联网接线端子_利达主机怎么编辑中文 利达主机接线端子说明
热门文章
- 7-3 最小生成树-kruskal (10 分)(思路+详解+并查集详解+段错误超时解决)宝 Come
- 10-5 5-5 查询只卖三种不同型号PC的厂商 (20 分)
- 7-34 任务调度的合理性 (25 分)(思路加详解+兄弟们冲呀)
- Java 多线程:线程优先级
- [蓝桥杯2016初赛]煤球数目-找规律
- 蓝桥杯2017初赛-分巧克力-二分
- 数据结构----单源最短路径Dijkstra
- java解压中文乱码_java使用解压zip文件,文件名乱码解决方案
- 2019-02-28-算法-进化(盛最多水的容器)
- 类欧几里得(模板题推导)