0

set colors for each series in my chart component

asked 2010-08-25 15:55:25 +0800

yambert gravatar image yambert
6 1

I want to set my own colors for each series in my chart. How do I do that?
I'm using zk 3.6.2

delete flag offensive retag edit

5 Replies

Sort by ยป oldest newest

answered 2010-08-25 21:31:48 +0800

PeterKuo gravatar image PeterKuo
481 2

You may see chart has setEngine() api.
And ChartEngine has default implementation of JFreeChartEngine.
You may extends from JFreeChartEngine to provide your own implementation.

link publish delete flag offensive edit

answered 2010-08-26 11:08:03 +0800

yambert gravatar image yambert
6 1

ok but can you show a sample please
i really appreciate it

link publish delete flag offensive edit

answered 2010-08-28 13:15:42 +0800

RyanWu gravatar image RyanWu
533 2
about.me/flyworld

zul

<window apply="org.zkoss.test.ChartCtrl">
	<chart id="mychart" title="Pie Chart Demo" width="500" height="250" type="pie" fgAlpha="128">
	</chart>
</window>

ChartCtrl

package org.zkoss.test;

import java.awt.Color;
import java.io.Serializable;

import org.jfree.chart.plot.PiePlot;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zkex.zul.impl.JFreeChartEngine;
import org.zkoss.zul.Chart;
import org.zkoss.zul.PieModel;
import org.zkoss.zul.SimplePieModel;

public class ChartCtrl extends GenericForwardComposer {
	Chart mychart;

	public void doAfterCompose(Component win) throws Exception {
		super.doAfterCompose(win);

		mychart.setEngine(new MyEngine());
		PieModel model = new SimplePieModel();
		model.setValue("C/C++", new Double(21.2));
		model.setValue("VB", new Double(10.2));
		model.setValue("Java", new Double(40.4));
		model.setValue("PHP", new Double(28.2));
		model.setValue("Perl", new Double(15.2));
		mychart.setEngine(new MyEngine());
		mychart.setModel(model);

	}

	public class MyEngine extends JFreeChartEngine implements Serializable {

		@Override
		public byte[] drawChart(Object data) {
			return super.drawChart(data);
		}

		public boolean prepareJFreeChart(org.jfree.chart.JFreeChart jfchart, Chart chart) {
			PiePlot plot = (PiePlot) jfchart.getPlot();
			Color[] colors = { new Color(35, 122, 54), new Color(100, 210, 17),
					new Color(254, 128, 15), new Color(222, 44, 9), new Color(64, 49, 23) };
			for (int i = 0; i < 5; i++) {
				plot.setSectionPaint(i, colors<i >);
			}
			return false;
		}
	}
}

Result

link publish delete flag offensive edit

answered 2011-01-18 10:20:49 +0800

oviveros gravatar image oviveros
3

Hi.

I get an error code (in the part of "plot.setSectionPaint(i, colors<i >").

I need to change the colors of the columns of a barChart. Please, i need your help.

link publish delete flag offensive edit

answered 2011-01-27 22:17:02 +0800

PeterKuo gravatar image PeterKuo
481 2

@oviveros
What's the error?
No one can answer you with so less information.

link publish delete flag offensive edit
Your reply
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2010-08-25 15:55:25 +0800

Seen: 1,007 times

Last updated: Jan 27 '11

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More