
05-03-2010
|
Member | | Join Date: Jan 2008
Posts: 1,515
| |
Re: Creating a Bar Graph In Java
Hey, I have got the code below which will simply provide you solution for your Bar Graph in java: Code: import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import org.jfree.fchart.ChartFactory;
import org.jfree.fchart.ChartPanel;
import org.jfree.fchart.JFreeChart;
import org.jfree.fchart.axis.NumberAxis;
import org.jfree.fchart.cPlot.CategoryPlot;
import org.jfree.fchart.cPlot.PlotOrientation;
import org.jfree.fchart.lsrend.category.LineAndShapeRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class fchart extends ApplicationFrame
{
public fchart(final String title) {
super(title);
final CategoryDataset cdset = createDataset();
final JFreeChart fchart = createChart(cdset);
final ChartPanel cpanel = new ChartPanel(fchart);
cpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(cpanel);
}
private CategoryDataset createDataset() {
final String Start1 = "First";
final String Start2 = "Second";
final String Start3 = "Third";
final String variation1 = "Type 1";
final String variation2 = "Type 2";
final String variation3 = "Type 3";
final String variation4 = "Type 4";
final String variation5 = "Type 5";
final String variation6 = "Type 6";
final String variation7 = "Type 7";
final String variation8 = "Type 8";
final DefaultCategoryDataset cdset = new DefaultCategoryDataset();
cdset.addValue(1.0, Start1, variation1);
cdset.addValue(4.0, Start1, variation2);
cdset.addValue(3.0, Start1, variation3);
cdset.addValue(5.0, Start1, variation4);
cdset.addValue(5.0, Start1, variation5);
cdset.addValue(7.0, Start1, variation6);
cdset.addValue(7.0, Start1, variation7);
cdset.addValue(8.0, Start1, variation8);
cdset.addValue(5.0, Start2, variation1);
cdset.addValue(7.0, Start2, variation2);
cdset.addValue(6.0, Start2, variation3);
cdset.addValue(8.0, Start2, variation4);
cdset.addValue(4.0, Start2, variation5);
cdset.addValue(4.0, Start2, variation6);
cdset.addValue(2.0, Start2, variation7);
cdset.addValue(1.0, Start2, variation8);
cdset.addValue(4.0, Start3, variation1);
cdset.addValue(3.0, Start3, variation2);
cdset.addValue(2.0, Start3, variation3);
cdset.addValue(3.0, Start3, variation4);
cdset.addValue(6.0, Start3, variation5);
cdset.addValue(3.0, Start3, variation6);
cdset.addValue(4.0, Start3, variation7);
cdset.addValue(3.0, Start3, variation8);
return cdset;
}
private JFreeChart createChart(final CategoryDataset cdset) {
final JFreeChart fchart = ChartFactory.createLineChart("Line Chart Demo 1", "Type","Value",cdset, PlotOrientation.VERTICAL,true, true, false);
fchart.setBackgroundPaint(Color.white);
final CategoryPlot cPlot = (CategoryPlot) fchart.getPlot();
cPlot.setBackgroundPaint(Color.lightGray);
cPlot.setRangeGridlinePaint(Color.white);
final NumberAxis NAxis = (NumberAxis) cPlot.getRangeAxis();
NAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
NAxis.setAutoRangeIncludesZero(true);
final LineAndShapeRenderer lsrend = (LineAndShapeRenderer) cPlot.getRenderer();
lsrend.setSeriesStroke(
0, new BasicStroke(
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
1.0f, new float[] {10.0f, 6.0f}, 0.0f
)
);
lsrend.setSeriesStroke(
1, new BasicStroke(
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
1.0f, new float[] {6.0f, 6.0f}, 0.0f
)
);
lsrend.setSeriesStroke(
2, new BasicStroke(
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
1.0f, new float[] {2.0f, 6.0f}, 0.0f
)
);
return fchart;
}
public static void main(final String[] args) {
final fchart obj = new fchart("Line Chart Demo");
obj.pack();
RefineryUtilities.centerFrameOnScreen(obj);
obj.setVisible(true);
}
} |