亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Jfreechart學習筆記3-簡單Line圖形創建

系統 1567 0
    
package com.langhua.line;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.HorizontalAlignment;
import org.jfree.ui.RectangleEdge;
/**
 * 線狀圖形創建
 * @author Administrator
 *
 */
public class Line {

	public static void main(String[] args) {
		//數據
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(212, "Classes類", "JDK 1.0版本");
		dataset.addValue(504, "Classes類", "JDK 1.1版本");
		dataset.addValue(1520, "Classes類", "SDK 1.2版本");
		dataset.addValue(1842, "Classes類", "SDK 1.3版本");
		dataset.addValue(2991, "Classes類", "SDK 1.4版本");
		JFreeChart chart = ChartFactory.createLineChart(	"Java Standard Class Library","Release版本","Class數量",dataset,PlotOrientation.VERTICAL,false,	true,false	);
		//配置chart
		Line.configFont(chart);
		//設置標題
		TextTitle t = new TextTitle("Number of Classes By Release");
		t.setFont(new Font("Comic Sans MS", Font.PLAIN, 15));
		chart.addSubtitle(t);
		//設置標題,并把標題放到最下面的右邊
		TextTitle source = new TextTitle("Source: Java In A Nutshell (4th Edition) by David Flanagan (O’Reilly)");
		source.setFont(new Font("Comic Sans MS", Font.PLAIN, 15));
		//放到底部
		source.setPosition(RectangleEdge.BOTTOM);
		//放到右邊
		source.setHorizontalAlignment(HorizontalAlignment.RIGHT);
		//添加
		chart.addSubtitle(source);
		
		//設置背影色
		chart.setBackgroundPaint(Color.white);
		
		CategoryPlot plot = (CategoryPlot)chart.getPlot();
		
		//設置網格線
		plot.setRangeGridlinePaint(Color.white);
		// customise the range axis...(這個我不知道是啥子)		
		NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
		rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		//設置線與線之間的連結點的樣式,比如說是否空心,顏色等
		LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot	.getRenderer();
		renderer.setShapesVisible(true);
		renderer.setDrawOutlines(true);
		renderer.setUseFillPaint(true);
		renderer.setFillPaint(Color.yellow);
		
		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("c:\\Line.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,0.99f,chart,800,600,	null);
			fos_jpg.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
         	/**
	 * 解決亂碼和樣式等問題
	 * @param chart
	 */
	private static void configFont(JFreeChart chart) {
		// 配置字體
		Font xfont = new Font("宋體", Font.CENTER_BASELINE, 12);// X軸
		Font yfont = new Font("宋體", Font.CENTER_BASELINE, 20);// Y軸
		Font kfont = new Font("宋體", Font.CENTER_BASELINE, 18);// 底部
		Font titleFont = new Font("微軟雅黑", Font.CENTER_BASELINE, 25); // 圖片標題
		CategoryPlot plot = chart.getCategoryPlot();// 圖形的繪制結構對象
		//數據軸網格線條顏色
		plot.setRangeGridlinePaint(Color.BLUE);
		//數據軸網格線條筆觸
		plot.setRangeGridlineStroke(new BasicStroke(1.0f));
		// 圖片標題
		chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));

		//X軸
		CategoryAxis domainAxis = plot.getDomainAxis();
		//設置X軸標題字體
		domainAxis.setLabelFont(xfont);
		//設置X軸字體
		domainAxis.setTickLabelFont(xfont);
		//設置字體顏色
		domainAxis.setTickLabelPaint(Color.BLUE);
		//橫軸上的label斜顯示
		//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); 
		//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
		//分類軸邊距,同種類型之間的距離,比如說Row 1之間的
		//domainAxis.setCategoryMargin(0.2f);
		//分類軸下(左)邊距,就是離左邊的距離
		domainAxis.setLowerMargin(0.1);
		//分類軸下(右)邊距,就是離最右邊的距離
		domainAxis.setUpperMargin(0.1);
		
		//Y 軸
		ValueAxis rangeAxis = plot.getRangeAxis();
		//設置Y軸標題字體
		rangeAxis.setLabelFont(yfont);
		//設置Y軸字體
		rangeAxis.setTickLabelFont(yfont);
		// 字體顏色
		rangeAxis.setLabelPaint(Color.RED); 
	}
}

  


基于XY的Line

    
package com.langhua.line;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.RectangleInsets;
/**
 *  基于XY的Line
 * @author Administrator
 *
 */
public class XYLine {
	public static void main(String[] args){
		XYSeries series1 = new XYSeries("第一");
		series1.add(1.0, 1.0);
		series1.add(2.0, 4.0);
		series1.add(3.0, 3.0);
		series1.add(4.0, 5.0);
		series1.add(5.0, 5.0);
		series1.add(6.0, 7.0);
		series1.add(7.0, 7.0);
		series1.add(8.0, 8.0);
		
		XYSeries series2 = new XYSeries("第二");
		series2.add(1.0, 5.0);
		series2.add(2.0, 7.0);
		series2.add(3.0, 6.0);
		series2.add(4.0, 8.0);
		series2.add(5.0, 4.0);
		series2.add(6.0, 4.0);
		series2.add(7.0, 2.0);
		series2.add(8.0, 1.0);
		series2.add(9.0, 1.0);
		series2.add(10.0, 1.0);
		series2.add(8.1, 1.2);
		series2.add(8.2, 1.3);
		series2.add(8.5, 1.4);		
		series2.add(11.0, 1.0);
		
		XYSeries series3 = new XYSeries("第三");
		series3.add(3.0, 4.0);
		series3.add(4.0, 3.0);
		series3.add(5.0, 2.0);
		series3.add(6.0, 3.0);
		series3.add(7.0, 6.0);
		series3.add(8.0, 3.0);
		series3.add(9.0, 4.0);
		series3.add(10.0, 3.0);	
		
		XYSeries series4 = new XYSeries("第四");
		series4.add(2.0, 4.0);
		series4.add(3.0, 3.0);
		series4.add(6.0, 2.0);
		series4.add(1.0, 3.0);
		series4.add(2.0, 6.0);
		
		XYSeriesCollection dataset = new XYSeriesCollection();
		dataset.addSeries(series1);
		dataset.addSeries(series2);
		dataset.addSeries(series3);
		dataset.addSeries(series4);
		
		JFreeChart chart = ChartFactory.createXYLineChart("Line Chart例子","X坐標","Y坐標",dataset,PlotOrientation.VERTICAL,true,true,false	);
		XYLine.configFont(chart);
		// 背景色
		chart.setBackgroundPaint(Color.white);
		// 獲得XYPlot對象
		XYPlot plot = (XYPlot) chart.getPlot();
		//設置坐標后面的背景色
		plot.setBackgroundPaint(Color.lightGray);
		
		plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
		plot.setDomainGridlinePaint(Color.white);
		plot.setRangeGridlinePaint(Color.white);
		XYLineAndShapeRenderer renderer	= (XYLineAndShapeRenderer) plot.getRenderer();
		renderer.setShapesVisible(true);
		renderer.setShapesFilled(true);
		// change the auto tick unit selection to integer units only...
		NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
		rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		
		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("c:\\LineXY.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,0.99f,chart,800,600,	null);
			fos_jpg.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * 配置字體等信息
	 * @param chart
	 */
	private static void configFont(JFreeChart chart) {
		// 配置字體
		Font xfont = new Font("宋體", Font.CENTER_BASELINE, 12);// X軸
		Font yfont = new Font("宋體", Font.CENTER_BASELINE, 20);// Y軸
		Font kfont = new Font("宋體", Font.CENTER_BASELINE, 18);// 底部
		Font titleFont = new Font("微軟雅黑", Font.CENTER_BASELINE, 25); // 圖片標題
		XYPlot plot = (XYPlot) chart.getPlot();// 圖形的繪制結構對象
		//數據軸網格線條顏色
		plot.setRangeGridlinePaint(Color.BLUE);
		//數據軸網格線條筆觸
		plot.setRangeGridlineStroke(new BasicStroke(1.0f));
		// 圖片標題
		chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));
		chart.getLegend().setItemFont(kfont);

		//X軸
		ValueAxis domainAxis = plot.getDomainAxis();
		//設置X軸標題字體
		domainAxis.setLabelFont(xfont);
		//設置X軸字體
		domainAxis.setTickLabelFont(xfont);
		//設置字體顏色
		domainAxis.setTickLabelPaint(Color.BLUE);
		//橫軸上的label斜顯示
		//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); 
		//domainAxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
		//分類軸邊距,同種類型之間的距離,比如說Row 1之間的
		//domainAxis.setCategoryMargin(0.2f);
		//分類軸下(左)邊距,就是離左邊的距離
		domainAxis.setLowerMargin(0.1);
		//分類軸下(右)邊距,就是離最右邊的距離
		domainAxis.setUpperMargin(0.1);
		
		//Y 軸
		ValueAxis rangeAxis = plot.getRangeAxis();
		//設置Y軸標題字體
		rangeAxis.setLabelFont(yfont);
		//設置Y軸字體
		rangeAxis.setTickLabelFont(yfont);
		// 字體顏色
		rangeAxis.setLabelPaint(Color.RED); 

	}
}


  






Jfreechart學習筆記3-簡單Line圖形創建


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美福利在线视频 | 在线观看黄色免费视频 | 综合亚洲精品一区二区三区 | 狠狠色噜噜噜噜狠狠狠狠狠狠奇米 | 亚洲精品视频免费看 | 日本高清中文字幕一区二区三区 | 国产或人精品日本亚洲77美色 | 热久久国产| 视频亚洲一区 | 久久国产精品夜色 | 亚洲欧美视屏 | 激情五月色婷婷丁香伊人 | 国产欧美日韩精品第二区 | 中文欧美一级强 | 天天干夜夜想 | 久久国产精品一国产精品 | sese视频在线| 美日韩在线视频 | 日本aaaa级毛片在线看 | 国产亚洲精品国产第一 | 清纯唯美亚洲综合日韩第 | 国产一二三区在线观看 | 最新永久地址 | 全黄毛片 | 成人午夜亚洲影视在线观看 | 2020国产成人精品视频人 | 韩国网站爱久久 | 一级毛片特级毛片黄毛片 | 日日夜夜欧美 | 欧美一区二区三区视频在线观看 | 欧美三级成人理伦 | 国产三级观看久久 | 亚洲涩涩精品专区 | 天天干天天射天天爽 | 欧美人成人亚洲专区中文字幕 | 欧美性猛交xxxxxxxx软件 | 欧美在线播放一区二区 | 国产成人精品曰本亚洲78 | 国产欧美日韩综合一区二区三区 | 日本一级黄色录像 | 亚洲图片综合区另类图片 |