I need a simple exemple of how i can change Legend´s Label

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

I need a simple exemple of how i can change Legend´s Label

Post by Rodrigo » Thu Aug 08, 2002 10:29 pm

hi , anybody can tell me , how i change default names of the Vertical 3d bars and your categories ?

I´need a simple method to do this job ....
my source :

public class teste extends Applet implements JFreeChartConstants {





public void init (){
setLayout(new BorderLayout());

VerticalBarRenderer x = new VerticalBarRenderer();
CategoryDataset data = createCategoryDataset();


JFreeChart chart = ChartFactory.createVerticalBarChart3D("Gráfico Vertical","Categorias","Valores",data,true);

chart.setBackgroundPaint(new GradientPaint(0, 0, getColor( 0 ),1000,0,getColor(2)));

chart.setAntiAlias(true);
float f = 1.34f;
chart.setBackgroundImageAlpha(f);

/*Define o range de espaços entre os beans*/
CategoryPlot cp = (CategoryPlot)chart.getPlot();
NumberAxis na = (NumberAxis) cp.getRangeAxis();
na.setTickUnit(new NumberTickUnit(1.0, new java.text.DecimalFormat("###'%'")));
na.setAutoRangeIncludesZero(true);
na.setUpperMargin(0.2);
/*fim */

/*Criando Legenda*/
Legend le = Legend.createInstance(chart);

chart.setLegend(le);

CategoryPlot plot = chart.getCategoryPlot();

java.util.List legend = plot.getLegendItemLabels();
legend.set(0, "hi there!"); //Does not change the legend's text?!

CategoryItemRenderer renderer = plot.getRenderer();



ChartPanel chartPanel = new ChartPanel(chart);
add(chartPanel);
}

public teste(){

}

public void paint(Graphics g){
}

public static void main (String args[]){
teste x = new teste();
x.init();
x.start();
x.setSize(600,400);
}

public CategoryDataset createCategoryDataset() {
Number[][] data = new Integer[][] {
{ new Integer(10), new Integer(4), new Integer(15), new Integer(14),new Integer(5) },
{ new Integer(5), new Integer(7), new Integer(14), new Integer(3) ,new Integer(5) },
{ new Integer(6), new Integer(17),new Integer(12), new Integer(7) ,new Integer(5) },
{ new Integer(7), new Integer(15),new Integer(11), new Integer(0) ,new Integer(5) },
{ new Integer(8), new Integer(6), new Integer(10), new Integer(9) ,new Integer(5) },
{ new Integer(9), new Integer(8), new Integer(8), new Integer(6) ,new Integer(5) },
{ new Integer(10), new Integer(9), new Integer(7), new Integer(7) ,new Integer(5)},
{ new Integer(11), new Integer(13),new Integer(9), new Integer(9) ,new Integer(5) },
{ new Integer(0), new Integer(0), new Integer(0), new Integer(0) ,new Integer(5)},
{ new Integer(6), new Integer(6), new Integer(6), new Integer(6) ,new Integer(5)}
};

return new DefaultCategoryDataset(data);

}
public void start(){}
public void stop(){}

protected Color getColor(int color) {

switch (color % 11) {
case 0: return Color.white;
case 1: return Color.black;
case 2: return Color.blue;
case 3: return Color.green;
case 4: return Color.red;
case 5: return Color.yellow;
case 6: return Color.gray;
case 7 : return Color.orange;
case 8: return Color.cyan;
case 9: return Color.magenta;
case 10: return Color.pink;
default: return Color.white;
}

}

}



thank you !

[]´s Brossi

David Gilbert

Re: I need a simple exemple of how i can change Legend´s Lab

Post by David Gilbert » Thu Aug 08, 2002 11:17 pm

You need to supply series and category names in your dataset. Take a look at the Javadocs (or source code) for DefaultCategoryDataset and use the constructor that allows you to specify your own names...

Regards,

DG.

Locked