Barchart jfreeChart

anhtuank7c

Member
5/12/10
167
13
18
Mình có làm được cái Barchart như thế này :

Vấn đề là mình chưa biết cách ẩn cái vạch màu trắng trên mỗi cột trong biểu đồ.
Bạn nào biết chỉ mình với nhé.
đây là code của mình.
PHP:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BarChart;

import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.io.FileOutputStream;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
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.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;

/**
 *
 * @author TuanNA
 */
public class BarChart2D extends ApplicationFrame
{

	public BarChart2D(String title)
	{
		super(title);
		//create dataset
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(75, "Row 1", "Group 1");
		dataset.addValue(22, "Row 2", "Group 1");
		dataset.addValue(47, "Row 3", "Group 1");
		
		dataset.addValue(75, "Row 1", "Group 2");
		dataset.addValue(22, "Row 2", "Group 2");
		dataset.addValue(47, "Row 3", "Group 2");
		
		dataset.addValue(75, "Row 1", "Group 3");
		dataset.addValue(22, "Row 2", "Group 3");
		dataset.addValue(47, "Row 3", "Group 3");
		
		//create a chart
		JFreeChart chart = ChartFactory.createBarChart("BarChart 2D", "Category", "Value", dataset, PlotOrientation.VERTICAL, true, true, false);
		// panel
		ChartPanel panel = new ChartPanel(chart);
		panel.setPreferredSize(new Dimension(480, 350));
		setContentPane(panel);
		// control Color
		CategoryPlot plot = (CategoryPlot) chart.getPlot();
		plot.setBackgroundPaint(new Color(255,255,255));
		
		// set Color for Groupume, label
		BarRenderer renderer = (BarRenderer) plot.getRenderer();
		renderer.setSeriesPaint(0,new Color(230, 65, 58));
		renderer.setSeriesPaint(1,new Color(230, 65, 58));
		renderer.setSeriesPaint(2,new Color(230, 65, 58));
		renderer.setShadowVisible(false);
		
		
		// item margin
		renderer.setItemMargin(0.1);
		
		//set Category Axis
		CategoryAxis domainAxis = plot.getDomainAxis();
		domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI/6.0));
		// write to file
		try
		{
			File file1 = new File("C:\\Users\\TuanNA\\Documents\\ChartDemo\\web\\BarChart2D.png");
			FileOutputStream out = new FileOutputStream(file1);
			ChartUtilities.writeChartAsPNG(out, chart, 480, 350);
			out.close();
		}catch(Exception e)
		{
			System.out.print(e);
		}
	}
	public static void main(String [] args)
	{
	}
	
	
}
mình dùng trang jsp tạo đối tượng và hiển thị file ảnh lên web.
Cảm ơn các bạn đã quan tâm.
 

toannd

New Member
12/5/13
7
0
1
26
có ai biết vẽ biểu đồ trong java không giúp đỡ mình với! mình đang cần gấp
 

nong_dan

Active Member
21/4/11
326
95
28
có ai biết vẽ biểu đồ trong java không giúp đỡ mình với! mình đang cần gấp
vẽ thì mình chưa vẽ biểu đồ bao h. Nhưng có hướng đi cho bạn nè:(với biểu đồ hình cột)
+ Biểu đồ hình cột bao gồm 1 trục tọa độ, và các hình chữ nhật tương ứng
=> bạn tìm hiểu về graphics trong Java (tọa độ, cách vẽ hình chữ nhật, đường thẳng)
 

toannd

New Member
12/5/13
7
0
1
26
yêu cầu đề bài của mình là nhập vô 1 chuỗi,đếm trong chuỗi các ký tự xuất hiện bao nhiêu lần, rồi từ các lần xuất hiện đó mình cho ra biểu đồ các lần xuất hiện của các kí tự đó! bạn giúp mình với!