效果如下:

  

实现步骤:

  1.导入JAR包

    

    jfreechart官网下载的zip文件中包含这两个jar包

  2.代码编写

 import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.ui.TextAnchor; import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat; public class TimeSeriesChart {
private TimeSeriesChart() { // A网站的访问量统计
TimeSeries timeSeries1 = new TimeSeries("A", Month.class);
// 添加数据
timeSeries1.add(new Month(1, 2016), 154);
timeSeries1.add(new Month(2, 2016), 256);
timeSeries1.add(new Month(3, 2016), 312);
timeSeries1.add(new Month(4, 2016), 489);
timeSeries1.add(new Month(5, 2016), 563);
timeSeries1.add(new Month(6, 2016), 555);
timeSeries1.add(new Month(7, 2016), 359);
timeSeries1.add(new Month(8, 2016), 291);
timeSeries1.add(new Month(9, 2016), 123);
timeSeries1.add(new Month(10, 2016), 438);
timeSeries1.add(new Month(11, 2016), 286); // A网站的访问量统计
TimeSeries timeSeries2 = new TimeSeries("A", Month.class);
// 添加数据
timeSeries2.add(new Month(1, 2016), 124);
timeSeries2.add(new Month(2, 2016), 326);
timeSeries2.add(new Month(3, 2016), 12);
timeSeries2.add(new Month(4, 2016), 567);
timeSeries2.add(new Month(5, 2016), 546);
timeSeries2.add(new Month(6, 2016), 123);
timeSeries2.add(new Month(7, 2016), 222);
timeSeries2.add(new Month(8, 2016), 545);
timeSeries2.add(new Month(9, 2016), 56);
timeSeries2.add(new Month(10, 2016), 543);
timeSeries2.add(new Month(11, 2016), 221); // 定义时间序列的集合
TimeSeriesCollection lineDataset = new TimeSeriesCollection();
lineDataset.addSeries(timeSeries1);
lineDataset.addSeries(timeSeries2); // JFreeChart chart = ChartFactory.createXYStepChart("Time line graph", "M", "F", xySeriesCollection, PlotOrientation.HORIZONTAL, false, false, false);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Time line graph", "M", "F", lineDataset, false, false, false);
//设置主标题
chart.setTitle(new TextTitle("A,B网站访问量统计对比图"));
//设置子标题
TextTitle subtitle = new TextTitle("2016年度", new Font("宋体", Font.BOLD, 12));
chart.addSubtitle(subtitle); chart.setAntiAlias(true); //设置时间轴的范围。
XYPlot plot = (XYPlot) chart.getPlot();
DateAxis dateaxis = (DateAxis) plot.getDomainAxis();
dateaxis.setDateFormatOverride(new SimpleDateFormat("M"));
dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH, 1)); //设置曲线是否显示数据点
XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer) plot.getRenderer();
xylinerenderer.setBaseShapesVisible(true); //设置曲线显示各数据点的值
XYItemRenderer xyitem = plot.getRenderer();
xyitem.setBaseItemLabelsVisible(true);
xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
xyitem.setBaseItemLabelFont(new Font("Dialog", Font.BOLD, 12));
plot.setRenderer(xyitem); JPanel jPanel = new ChartPanel(chart); JFrame frame = new JFrame("JFreechart Test");
frame.add(jPanel);
frame.setBounds(0, 0, 800, 600);
frame.setVisible(true);
} public static void main(String[] args) {
TimeSeriesChart timeSeriesChart = new TimeSeriesChart();
}
}

JAVA Swing使用JFreeChart实现折线图绘制的更多相关文章

  1. JFreeChart 之折线图

    JFreeChart 之折线图 一.JFreeChart 简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets ...

  2. 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)

    利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...

  3. qt外部数据传入实现动态的折线图绘制

    在嵌入式开发中,实现数据收集与显示很常见,对于希望数据稳定的应用来说,               折现图的表现形式很符合条件.               本实现是通过qt的signal-slot来 ...

  4. Python_散点图与折线图绘制

    在数据分析的过程中,经常需要将数据可视化,目前常使用的:散点图  折线图 需要import的外部包  一个是绘图 一个是字体导入 import matplotlib.pyplot as plt fro ...

  5. [Python Study Notes]折线图绘制

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...

  6. JFreeChart画折线图

    请见Github博客: http://wuxichen.github.io/Myblog/htmlcss/2014/09/01/JFreechartLinechart.html

  7. OpenGL——折线图柱状图饼图绘制

    折线图绘制代码: #include<iostream> //旧版本 固定管线 #include<Windows.h> #include <GL/glut.h> // ...

  8. Matplotlib数据可视化(4):折线图与散点图

    In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...

  9. java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)

    最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了: 1.       jfreechart-1.0.13.jar 2.    ...

随机推荐

  1. TRIO-basic变量的状态位

    TRIO运动控制器在应用中,我们一般会用一个VR寄存器的状态位来控制一些报警信号,这样有利于代码的优化,同时和触摸屏设置报警信息大大的方便和节约时间. 首先测试了一下一个寄存器可以设置多少个状态位. ...

  2. [转载]sql 盲注之正则表达式攻击

    [转载]sql 盲注之正则表达式攻击 -----------------------------------------MYSQL 5+-------------------------------- ...

  3. Html5计算MD5值

    教程: http://www.tuicool.com/articles/InEBNz 组件: https://github.com/satazor/js-spark-md5

  4. Linux内核分析 读书笔记 (第七章)

    第七章 链接 1.链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储器并执行. 2.链接可以执行于编译时,也就是在源代码被翻译成机器代码时:也可以执行于 ...

  5. 结对项目 https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1

    所选项目名称:文本替换      结对人:傅艺伟 github地址 : https://github.com/quchengyu/jiedui/tree/quchengyu-patch-1 用一个新字 ...

  6. 第三个Sprint冲刺第5天

    成员:罗凯旋.罗林杰.吴伟锋.黎文衷 各成员努力完成最后冲刺

  7. FZU软工第五次作业-词组频率分析

    目录 00.前言: 01.分工: 02.PSP表格: 03.解题思路描述与设计实现说明: 解题思路简述: 关键代码 04.附加题设计与展示: 设计的创意独到之处 实现思路 实现成果展示 05.关键代码 ...

  8. HDU 2043 密码

    http://acm.hdu.edu.cn/showproblem.php?pid=2043 Problem Description 网上流传一句话:"常在网上飘啊,哪能不挨刀啊-" ...

  9. Cron Expression的用途

    对于一些MIS系统,DeadLine,需要用户自己制定事件规则,Cron Expression应该可以派上用场. Cron Maker: http://www.cronmaker.com/

  10. react + dva + ant架构后台管理系统(一)

    一.什么是dva dva是蚂蚁金服推出的一个单页应用框架,对 redux, react-router, redux-saga进行了上层封装,没有引入新的概念,但是极大的程度上提升了开发效率: 二.安装 ...