JAVA Swing使用JFreeChart实现折线图绘制
效果如下:
实现步骤:
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实现折线图绘制的更多相关文章
- JFreeChart 之折线图
JFreeChart 之折线图 一.JFreeChart 简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets ...
- 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)
利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...
- qt外部数据传入实现动态的折线图绘制
在嵌入式开发中,实现数据收集与显示很常见,对于希望数据稳定的应用来说, 折现图的表现形式很符合条件. 本实现是通过qt的signal-slot来 ...
- Python_散点图与折线图绘制
在数据分析的过程中,经常需要将数据可视化,目前常使用的:散点图 折线图 需要import的外部包 一个是绘图 一个是字体导入 import matplotlib.pyplot as plt fro ...
- [Python Study Notes]折线图绘制
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- JFreeChart画折线图
请见Github博客: http://wuxichen.github.io/Myblog/htmlcss/2014/09/01/JFreechartLinechart.html
- OpenGL——折线图柱状图饼图绘制
折线图绘制代码: #include<iostream> //旧版本 固定管线 #include<Windows.h> #include <GL/glut.h> // ...
- Matplotlib数据可视化(4):折线图与散点图
In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...
- java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)
最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了: 1. jfreechart-1.0.13.jar 2. ...
随机推荐
- 【CV】CVPR2015_A Discriminative CNN Video Representation for Event Detection
A Discriminative CNN Video Representation for Event Detection Note here: it's a learning note on the ...
- 分布式版本控制系统Git的安装与使用(作业2)
(本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103) 分布式版本控制系统Git的安装与使用 一.安装Git b ...
- [2017BUAA软工]第零次作业
第一部分:结缘计算机 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 我当初选择计算机,是因为:1.北航的前辈对北航计算机专业评价非常高:2.我也喜欢通过编程来代替我完成 ...
- PAT 甲级 1044 Shopping in Mars
https://pintia.cn/problem-sets/994805342720868352/problems/994805439202443264 Shopping in Mars is qu ...
- [转帖]以Windows服务方式运行ASP.NET Core程序
以Windows服务方式运行ASP.NET Core程序 原作者blog: https://www.cnblogs.com/guogangj/p/9198031.htmlaspnet的blog 需要持 ...
- ACDsee的安装过程
http://www.ddooo.com/softdown/76175.htm ACDSee 18中文版安装教程: 1.ACDSee 18分为32位和64位版本,我们先选择合适系统的中文版本开始安装, ...
- 当返回值为json字符串时 如何获得其中的json数组
json数据格式 {"IPPORT":"192.168.0.12","time":"2017-04-05 09:12:06&quo ...
- java面向对象的核心思想
java面向对象的特征之一:封装 1.封装性的使用 package edu.tongji.classdemo; /* 封装性 1.封装的目的:保护某些属性和方法不被外部所见 2.封装的实现 为属性和方 ...
- python主成分分析
#-*- coding: utf-8 -*- #主成分分析 降维 import pandas as pd #参数初始化 inputfile = '../data/principal_component ...
- WPF将数据库和GridView绑定并更改GridView模板
首先来看一下如何使用GridView,在前台的话代码如下:这里仅仅举出一个例子,GridView是作为子项嵌套在ListView中的,这里的数据源是通过绑定的方式来绑定到GridView中的. < ...