JFreeChart 折线图

【1. 单条折线图】

      【测试用例】

  1. /** 单条折线  */  
  2.     @Test  
  3.     public void test_1() {  
  4.   
  5.         // 访问量统计  
  6.         TimeSeries timeSeries = new TimeSeries("某网站访问量统计", Month.class);  
  7.         // 添加数据  
  8.         timeSeries.add(new Month(12013), 100);  
  9.         timeSeries.add(new Month(22013), 200);  
  10.         timeSeries.add(new Month(32013), 300);  
  11.         timeSeries.add(new Month(42013), 400);  
  12.         timeSeries.add(new Month(52013), 560);  
  13.         timeSeries.add(new Month(62013), 600);  
  14.         timeSeries.add(new Month(72013), 750);  
  15.         timeSeries.add(new Month(82013), 890);  
  16.         timeSeries.add(new Month(92013), 120);  
  17.         timeSeries.add(new Month(102013), 400);  
  18.         timeSeries.add(new Month(112013), 1200);  
  19.         timeSeries.add(new Month(122013), 1600);  
  20.   
  21.         // 定义时间序列的集合  
  22.         TimeSeriesCollection lineDataset = new TimeSeriesCollection();  
  23.         lineDataset.addSeries(timeSeries);  
  24.   
  25.         JFreeChart chart = ChartFactory.createTimeSeriesChart("访问量统计时间折线图""月份""访问量", lineDataset, truetruetrue);  
  26.   
  27.         // 设置主标题  
  28.         chart.setTitle(new TextTitle("某网站访问量统计"new Font("隶书", Font.ITALIC, 15)));  
  29.         // 设置子标题  
  30.         TextTitle subtitle = new TextTitle("2013年度"new Font("黑体", Font.BOLD, 12));  
  31.         chart.addSubtitle(subtitle);  
  32.         chart.setAntiAlias(true);  
  33.   
  34.         // 设置时间轴的范围。  
  35.         XYPlot plot = (XYPlot) chart.getPlot();  
  36.         DateAxis dateaxis = (DateAxis) plot.getDomainAxis();  
  37.         dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat("M月"));  
  38.         dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH, 1));  
  39.   
  40.         // 设置曲线是否显示数据点  
  41.         XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer) plot.getRenderer();  
  42.         xylinerenderer.setBaseShapesVisible(true);  
  43.   
  44.         // 设置曲线显示各数据点的值  
  45.         XYItemRenderer xyitem = plot.getRenderer();  
  46.         xyitem.setBaseItemLabelsVisible(true);  
  47.         xyitem.setBasePositiveItemLabelPosition(  
  48.                 new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));  
  49.         xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());  
  50.         xyitem.setBaseItemLabelFont(new Font("Dialog"112));  
  51.         plot.setRenderer(xyitem);  
  52.   
  53.         TestUtil.printPng(chart, "3.1 折线图");  
  54.     }  
/** 单条折线  */
	@Test
	public void test_1() {

		// 访问量统计
		TimeSeries timeSeries = new TimeSeries("某网站访问量统计", Month.class);
		// 添加数据
		timeSeries.add(new Month(1, 2013), 100);
		timeSeries.add(new Month(2, 2013), 200);
		timeSeries.add(new Month(3, 2013), 300);
		timeSeries.add(new Month(4, 2013), 400);
		timeSeries.add(new Month(5, 2013), 560);
		timeSeries.add(new Month(6, 2013), 600);
		timeSeries.add(new Month(7, 2013), 750);
		timeSeries.add(new Month(8, 2013), 890);
		timeSeries.add(new Month(9, 2013), 120);
		timeSeries.add(new Month(10, 2013), 400);
		timeSeries.add(new Month(11, 2013), 1200);
		timeSeries.add(new Month(12, 2013), 1600);

		// 定义时间序列的集合
		TimeSeriesCollection lineDataset = new TimeSeriesCollection();
		lineDataset.addSeries(timeSeries);

		JFreeChart chart = ChartFactory.createTimeSeriesChart("访问量统计时间折线图", "月份", "访问量", lineDataset, true, true, true);

		// 设置主标题
		chart.setTitle(new TextTitle("某网站访问量统计", new Font("隶书", Font.ITALIC, 15)));
		// 设置子标题
		TextTitle subtitle = new TextTitle("2013年度", new Font("黑体", Font.BOLD, 12));
		chart.addSubtitle(subtitle);
		chart.setAntiAlias(true);

		// 设置时间轴的范围。
		XYPlot plot = (XYPlot) chart.getPlot();
		DateAxis dateaxis = (DateAxis) plot.getDomainAxis();
		dateaxis.setDateFormatOverride(new java.text.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", 1, 12));
		plot.setRenderer(xyitem);

		TestUtil.printPng(chart, "3.1 折线图");
	}

      【结果图片】


【2. 多条折线图】

     【测试用例】

  1. /** 多条折线    */  
  2.     @Test  
  3.     public void test_2(){  
  4.         // 访问量统计  
  5.         TimeSeries timeSeries=new TimeSeries("A网站访问量统计", Month.class);  
  6.         // 添加数据  
  7.         timeSeries.add(new Month(1,2013), 100);  
  8.         timeSeries.add(new Month(2,2013), 200);  
  9.         timeSeries.add(new Month(3,2013), 300);  
  10.         timeSeries.add(new Month(4,2013), 400);  
  11.         timeSeries.add(new Month(5,2013), 560);  
  12.         timeSeries.add(new Month(6,2013), 600);  
  13.         timeSeries.add(new Month(7,2013), 750);  
  14.         timeSeries.add(new Month(8,2013), 890);  
  15.         timeSeries.add(new Month(9,2013), 120);  
  16.         timeSeries.add(new Month(10,2013), 400);  
  17.         timeSeries.add(new Month(11,2013), 1200);  
  18.         timeSeries.add(new Month(12,2013), 1600);  
  19.           
  20.         // 访问量统计  
  21.         TimeSeries timeSeries2=new TimeSeries("B网站访问量统计", Month.class);  
  22.         // 添加数据  
  23.         timeSeries2.add(new Month(1,2013), 50);  
  24.         timeSeries2.add(new Month(2,2013), 100);  
  25.         timeSeries2.add(new Month(3,2013), 150);  
  26.         timeSeries2.add(new Month(4,2013), 200);  
  27.         timeSeries2.add(new Month(5,2013), 220);  
  28.         timeSeries2.add(new Month(6,2013), 300);  
  29.         timeSeries2.add(new Month(7,2013), 340);  
  30.         timeSeries2.add(new Month(8,2013), 400);  
  31.         timeSeries2.add(new Month(9,2013), 450);  
  32.         timeSeries2.add(new Month(10,2013), 500);  
  33.         timeSeries2.add(new Month(11,2013), 70);  
  34.         timeSeries2.add(new Month(12,2013), 800);  
  35.           
  36.         // 定义时间序列的集合  
  37.         TimeSeriesCollection lineDataset=new TimeSeriesCollection();  
  38.         lineDataset.addSeries(timeSeries);  
  39.         lineDataset.addSeries(timeSeries2);  
  40.           
  41.         JFreeChart chart=ChartFactory.createTimeSeriesChart("访问量统计时间折线图""月份""访问量", lineDataset, truetruetrue);  
  42.           
  43.         //设置主标题  
  44.         chart.setTitle(new TextTitle("A,B网站访问量统计对比图"new Font("隶书", Font.ITALIC, 15)));   
  45.         //设置子标题  
  46.         TextTitle subtitle = new TextTitle("2013年度"new Font("黑体", Font.BOLD, 12));  
  47.         chart.addSubtitle(subtitle);   
  48.         chart.setAntiAlias(true);   
  49.           
  50.         //设置时间轴的范围。  
  51.         XYPlot plot = (XYPlot) chart.getPlot();   
  52.         DateAxis dateaxis = (DateAxis)plot.getDomainAxis();  
  53.         dateaxis.setDateFormatOverride(new java.text.SimpleDateFormat("M月"));  
  54.         dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1));   
  55.           
  56.         //设置曲线是否显示数据点  
  57.         XYLineAndShapeRenderer xylinerenderer = (XYLineAndShapeRenderer)plot.getRenderer();  
  58.         xylinerenderer.setBaseShapesVisible(true);   
  59.           
  60.         //设置曲线显示各数据点的值  
  61.         XYItemRenderer xyitem = plot.getRenderer();   
  62.         xyitem.setBaseItemLabelsVisible(true);  
  63.         xyitem.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));   
  64.         xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());  
  65.         xyitem.setBaseItemLabelFont(new Font("Dialog"112));   
  66.         plot.setRenderer(xyitem);  
  67.           
  68.         TestUtil.printPng(chart, "3.2 折线图");  
  69.     }  
/** 多条折线    */
	@Test
	public void test_2(){
		// 访问量统计
		TimeSeries timeSeries=new TimeSeries("A网站访问量统计", Month.class);
		// 添加数据
		timeSeries.add(new Month(1,2013), 100);
		timeSeries.add(new Month(2,2013), 200);
		timeSeries.add(new Month(3,2013), 300);
		timeSeries.add(new Month(4,2013), 400);
		timeSeries.add(new Month(5,2013), 560);
		timeSeries.add(new Month(6,2013), 600);
		timeSeries.add(new Month(7,2013), 750);
		timeSeries.add(new Month(8,2013), 890);
		timeSeries.add(new Month(9,2013), 120);
		timeSeries.add(new Month(10,2013), 400);
		timeSeries.add(new Month(11,2013), 1200);
		timeSeries.add(new Month(12,2013), 1600);
		
		// 访问量统计
		TimeSeries timeSeries2=new TimeSeries("B网站访问量统计", Month.class);
		// 添加数据
		timeSeries2.add(new Month(1,2013), 50);
		timeSeries2.add(new Month(2,2013), 100);
		timeSeries2.add(new Month(3,2013), 150);
		timeSeries2.add(new Month(4,2013), 200);
		timeSeries2.add(new Month(5,2013), 220);
		timeSeries2.add(new Month(6,2013), 300);
		timeSeries2.add(new Month(7,2013), 340);
		timeSeries2.add(new Month(8,2013), 400);
		timeSeries2.add(new Month(9,2013), 450);
		timeSeries2.add(new Month(10,2013), 500);
		timeSeries2.add(new Month(11,2013), 70);
		timeSeries2.add(new Month(12,2013), 800);
		
		// 定义时间序列的集合
		TimeSeriesCollection lineDataset=new TimeSeriesCollection();
		lineDataset.addSeries(timeSeries);
		lineDataset.addSeries(timeSeries2);
		
		JFreeChart chart=ChartFactory.createTimeSeriesChart("访问量统计时间折线图", "月份", "访问量", lineDataset, true, true, true);
		
		//设置主标题
		chart.setTitle(new TextTitle("A,B网站访问量统计对比图", new Font("隶书", Font.ITALIC, 15))); 
		//设置子标题
		TextTitle subtitle = new TextTitle("2013年度", new Font("黑体", Font.BOLD, 12));
		chart.addSubtitle(subtitle); 
		chart.setAntiAlias(true); 
		
		//设置时间轴的范围。
		XYPlot plot = (XYPlot) chart.getPlot(); 
		DateAxis dateaxis = (DateAxis)plot.getDomainAxis();
		dateaxis.setDateFormatOverride(new java.text.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", 1, 12)); 
		plot.setRenderer(xyitem);
		
		TestUtil.printPng(chart, "3.2 折线图");
	}

     【结果图片】


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值