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

Jfreechart學習筆記2-簡單bar圖形創建

系統 1710 0
    
package com.langhua.bar;

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.CategoryLabelPositions;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
/**
 *  條狀測試
 * @author Administrator
 *
 */
public class BarChar {
	private static final long serialVersionUID = 1L;

	public static void main(String[] args) {
		//創建數據
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		//數據初始化
		dataset.addValue(1.0, "北京", "蘋果");
		dataset.addValue(7.0, "北京", "香蕉");
		dataset.addValue(-3.0, "北京", "桔子");
		dataset.addValue(2.0, "上海", "蘋果");
		dataset.addValue(3.0, "上海", "香蕉");
		dataset.addValue(2.0, "上海", "桔子");
		//創建 JFreeChart 對象
		JFreeChart chart = ChartFactory.createBarChart("Bar Chart 例子","水果(X)", "價格(Y)", dataset,PlotOrientation.VERTICAL,true,true,false);
		//配置JFreeChart對象相關信息,如:字體大小,顏色,防止亂碼
		BarChar.configFont(chart);
		//輸出
		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("c:\\Bar.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg,0.99f,chart,800,600,	null);
			fos_jpg.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	private static void configFont(JFreeChart chart) {
		//設置邊框寬度
		chart.setBorderStroke(new BasicStroke(1));
		//設置邊框是否可見
		chart.setBorderVisible(true);
		//設置邊框著色
		chart.setBorderPaint(Color.cyan);		
		//設置背景顏色
		//chart.setBackgroundPaint(Color.YELLOW);		
		// 配置字體
		Font xfont = new Font("宋體", Font.CENTER_BASELINE, 20);// 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));

		// 底部字體樣式,防止亂碼
		chart.getLegend().setItemFont(kfont);

		//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);
		//分類軸邊距,同種類型之間的距離
		//這是分類之間的距離,和BAR與BAR之間的距離有差別
		//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); 
		//設置Bar的顏色
		BarRenderer renderer = (BarRenderer) plot.getRenderer();
		
		renderer.setSeriesPaint(0, Color.gray);
		renderer.setSeriesPaint(1, Color.orange);
		// 每個BAR之間的間隔
		renderer.setItemMargin(0.0f);
		//每個BAR的最大寬度
		//renderer.setMaximumBarWidth(0.5f);
	}
}

  

亂碼解決的方法
1.重新設置標題的字體和內容
    chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));
  

2.重新設置X軸標題字體和刻度字體
    //設置X軸標題字體
domainAxis.setLabelFont(xfont);
//設置X軸字體
domainAxis.setTickLabelFont(xfont);
  

3.重新設置Y軸標題字體和刻度字體
    //設置Y軸標題字體
rangeAxis.setLabelFont(yfont);
//設置Y軸字體
rangeAxis.setTickLabelFont(yfont);
  

4.設置圖象最下方,底部的字體
    
chart.getLegend().setItemFont(kfont);

  


Bar3D的創建和Bar大部分基本相同,但是創建的時候方法不同
    
JFreeChart chart = ChartFactory.createBarChart3D("Bar Chart 例子","水果(X)", "價格(Y)", dataset,PlotOrientation.VERTICAL,true,true,false);

  







Jfreechart學習筆記2-簡單bar圖形創建


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99久久国产综合精品麻豆 | 免费网站看v片在线成人国产系列 | 夜夜夜夜夜夜夜工噜噜噜 | 亚洲夜夜操 | 91麻豆精品一二三区在线 | 国产精品久久福利新婚之夜 | 男人你懂的网站 | 蜜桃综合网 | 欧美6699在线视频免费 | 亚洲欧美精品日韩欧美 | 久久另类| 亚洲欧美日韩成人一区在线 | 成人欧美一区二区三区在线 | 久久综合色婷婷 | 欧美精品v欧洲精品 | 一级高清在线观看影片 | 亚洲欧美日韩中文字幕在线一 | 国产成人精品久久一区二区三区 | 久草在线视频首页 | 激情亚洲婷婷 | 四虎永久视频 | 亚洲精品久久久久久久777 | 精品一区二区三区色花堂 | 夜夜骑日日操 | 欧美日韩福利视频一区二区三区 | 精品日韩视频 | 精品国产欧美 | 国产l精品国产亚洲区在线观看 | 天天亚洲综合 | 天天操天天干天天射 | 深夜福利免费 | 性欧美欧美之巨大69 | 国产情侣偷国语对白 | 天天弄| 成人日b视频 | 久久一区二区精品综合 | 欧美香蕉视频在线观看 | 午夜视频精品 | 天天干天天干天天色 | 99精品国产久热在线观看66 | 奇米在线视频观看 |