changing the width of bars

A discussion forum for JFreeChart (a 2D chart library for the Java platform).
Locked
Muneer

changing the width of bars

Post by Muneer » Mon May 13, 2002 9:49 pm

package com.jrefinery.chart.demo;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.swing.*;


import javax.servlet.*;
import javax.servlet.http.*;

import com.sun.image.codec.jpeg.*;

import com.jrefinery.chart.*;
import com.jrefinery.chart.data.*;
import com.jrefinery.chart.ui.*;
import com.jrefinery.data.*;
import com.jrefinery.ui.*;

/**
* A servlet demonstration, contributed by Wolfgang Irler.
*/
public class JDemo extends HttpServlet {


/**
* Creates and returns a category dataset for the demo charts.
*/
public CategoryDataset createCategoryDataset() {


Number[][] data = new Integer[][] {

{ new Integer(10), new Integer(4), new Integer(35), new Integer(14), new Integer(20) }

};

return new DefaultCategoryDataset(data);

}

/**
* Creates and returns a sample high-low dataset for the demo. Added by Andrzej Porebski.
*/



protected JFreeChart createChart(int type, int initGradColor, int finalGradColor) {

CategoryDataset categoryData = createCategoryDataset();
JFreeChart chart = ChartFactory.createVerticalBarChart("Vertical Bar Chart",
"Categories",
"Values",
categoryData, true);


return chart;
}


ServletContext context = null;

/**
* Override init() to set up data used by invocations of this servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);

// save servlet context
context = config.getServletContext();
}

/**
* Basic servlet method, answers requests fromt the browser.
* @param request HTTPServletRequest
* @param response HTTPServletResponse
*/
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

response.setContentType("image/jpeg");
int type = 1;
try {
type = Integer.parseInt( request.getParameter( "type" ) );
}
catch (Exception e) {
}

int initGradColor= 0;
int finalGradColor= 0;
try {
initGradColor = Integer.parseInt( request.getParameter( "initGradColor" ) );
finalGradColor = Integer.parseInt( request.getParameter( "finalGradColor" ) );
}
catch (Exception e) {
}

JFreeChart chart = createChart( type, initGradColor, finalGradColor );

int width = 800;
int height = 500;
try {
width = Integer.parseInt( request.getParameter( "width" ) );
height = Integer.parseInt( request.getParameter( "height" ) );
}
catch (Exception e) {
}

//BufferedImage img = draw( chart, width, height );
OutputStream out = response.getOutputStream();
ChartUtilities.writeChartAsJPEG(out, chart, width, height);
out.close();
}

}

Above was the code of a program i was running, I am getting bars with big width,I want to shorten the width, Can anybody tell me how to make the width short as well how to change the labels,

Thanks,
Muneer

David Gilbert

Re: changing the width of bars

Post by David Gilbert » Tue May 14, 2002 9:57 am

Hi Muneer,

The bar widths are set automatically to use up the space remaining after deducting:

- the 'intro gap', which is the space to the left of the first bar;
- the 'trail gap', which is the space to the right of the last bar;
- the 'series gap', which is the space between series;
- the 'category gap', which is the space between categories;

There's methods in CategoryPlot for changing the default settings for all these attributes.

Regards,

DG.

Locked