package demo.bar;
import org.zkoss.chart.Charts;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Window;
public class BarStackedComposer extends SelectorComposer<Window> {
@Wire
Charts chart;
public void doAfterCompose(Window comp) throws Exception {
super.doAfterCompose(comp);
chart.setModel(BarStackedData.getCategoryModel());
chart.getYAxis().setMin(0);
chart.getYAxis().setTitle("Goals");
chart.getLegend().setReversed(true);
chart.getPlotOptions().getSeries().setStacking("normal");
}
}
package demo.bar;
import org.zkoss.chart.model.CategoryModel;
import org.zkoss.chart.model.DefaultCategoryModel;
public class BarStackedData {
private static CategoryModel model;
static {
model = new DefaultCategoryModel();
model.setValue("Cristiano Ronaldo", "2020/21", 4);
model.setValue("Cristiano Ronaldo", "2019/20", 4);
model.setValue("Cristiano Ronaldo", "2018/19", 6);
model.setValue("Cristiano Ronaldo", "2017/18", 15);
model.setValue("Cristiano Ronaldo", "2016/17", 12);
model.setValue("Lionel Messi", "2020/21", 5);
model.setValue("Lionel Messi", "2019/20", 3);
model.setValue("Lionel Messi", "2018/19", 12);
model.setValue("Lionel Messi", "2017/18", 6);
model.setValue("Lionel Messi", "2016/17", 11);
model.setValue("Robert Lewandowski", "2020/21", 5);
model.setValue("Robert Lewandowski", "2019/20", 15);
model.setValue("Robert Lewandowski", "2018/19", 8);
model.setValue("Robert Lewandowski", "2017/18", 5);
model.setValue("Robert Lewandowski", "2016/17", 8);
}
public static CategoryModel getCategoryModel() {
return model;
}
}