|
From: Nathaniel G. A. <nat...@ya...> - 2004-04-16 19:43:04
|
you have 'max' as the number of labels, but your dataset only contains a single item for 'max'
datasets. I think what you want is to have double[1][max] as your data and String[1] for your
legend labels.
--- Alejandro Flores <ale...@de...> wrote:
> Hello There!
>
> Sorry if this question have been answered, but I've searched the
> archives and haven't found!
> Well, I'm trying to create a dynamic bar chart, but can't figure out
> how the labels/legends are connected to data.
> I have an ArrayList with a component who have 2 properties: Name and
> Val. The code I wrote was:
>
> Color[] cores = new Color[] { Color.RED,
> Color.BLUE,
> Color.CYAN,
> Color.DARK_GRAY,
> Color.GRAY,
> Color.GREEN,
> Color.LIGHT_GRAY,
> Color.MAGENTA,
> Color.ORANGE,
> Color.YELLOW };
>
> int max = al.size();
> String xAxisTitle= "Times";
> String yAxisTitle= "Quantity";
> String title= "Top 10";
>
> String[] xAxisLabels = new String[max];
> double[][] data = new double[max][1];
> String[] legendLabels = new String[max];
> Paint[] paints= new Paint[max]; //{ Color.blue.darker() };
>
> for (int k = 0; k < max; k++) {
> xAxisLabels[k] = ""+(k+1);
> Account c = (Account) al.get(k);
> data[k][0] = new Double(c.getVal()).doubleValue();
> legendLabels[k] = c.getName();
> paints[k] = colors[k];
>
> }
>
> DataSeries dataSeries = new DataSeries( xAxisLabels, xAxisTitle,
> yAxisTitle, title );
>
> BarChartProperties barChartProperties= new
> BarChartProperties();
> AxisChartDataSet axisChartDataSet= new AxisChartDataSet( data,
> legendLabels, paints, ChartType.BAR, barChartProperties );
> dataSeries.addIAxisPlotDataSet( axisChartDataSet );
>
> ChartProperties chartProperties= new ChartProperties();
>
> //---to make this plot horizontally, pass true to the
> AxisProperties Constructor
> //AxisProperties axisProperties= new AxisProperties( true );
> AxisProperties axisProperties= new AxisProperties();
> LegendProperties legendProperties= new LegendProperties();
> legendProperties.setNumColumns(1);
> AxisChart axisChart= new AxisChart(dataSeries, chartProperties,
> axisProperties, legendProperties, 400, 300 );
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
> PNGEncoder.encode( axisChart, baos );
> JLabel jl = new JLabel(new ImageIcon(baos.toByteArray()));
> ...
>
> The exception is:
> "The size of the Axis Labels Array does not match the number of data
> elements to be plotted."
>
> Thanks in advance!
> Alejandro Flores
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
> _______________________________________________
> jCharts-users mailing list
> jCh...@li...
> https://lists.sourceforge.net/lists/listinfo/jcharts-users
__________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online by April 15th
http://taxes.yahoo.com/filing.html
|