hawkmud99
hawkmud99

Reputation: 13

Primefaces BarChart CartesianChartModel X Axis

I'm trying to create a stacked bar chart using Primefaces dynamically based on a native SQL query. I'm able to iterate through my list to populate the chart, but the x values aren't showing up correctly. Here's a hardcoded example:

public CartesianChartModel ChartBean() {
    model = new CartesianChartModel();
    ChartSeries boys = new ChartSeries();
    boys.setLabel("Boys");
    boys.set("2004", 120);

    ChartSeries boys2 = new ChartSeries();
    boys2.setLabel("Boys2");

    boys2.set("2005", 100);
    ChartSeries girls = new ChartSeries();
    girls.setLabel("Girls");
    girls.set("2004", 52);

    ChartSeries girls2 = new ChartSeries();
    girls2.setLabel("Girls2");

    girls2.set("2005", 60);
    model.addSeries(boys);
    model.addSeries(girls);
    model.addSeries(boys2);
    model.addSeries(girls2);
    return model;
}

Upvotes: 1

Views: 1422

Answers (1)

stg
stg

Reputation: 2797

I post this as an answer because it is too lang to be posted as comment. If it does not answer your question please let me know and I will remove this answer..

I did not test it, but I could imagine that the model is expecting "complete series" for each series item. Depending on what you need either try using only two series:

ChartSeries boys = new ChartSeries();
boys.setLabel("Boys");
boys.set("2004", 120);
boys.set("2005", 100);

ChartSeries girls = new ChartSeries();
girls.setLabel("Girls");
girls.set("2004", 52);
girls.set("2005", 60);

Or fill up all your series

ChartSeries boys = new ChartSeries();
boys.setLabel("Boys");
boys.set("2004", 120);
boys.set("2005", 0);

ChartSeries boys2 = new ChartSeries();
boys2.setLabel("Boys2");
boys2.set("2004", 0);
boys2.set("2005", 100);

ChartSeries girls = new ChartSeries();
girls.setLabel("Girls");
girls.set("2004", 52);
girls.set("2005", 0);

ChartSeries girls2 = new ChartSeries();
girls2.setLabel("Girls2");
girls2.set("2004", 0);
girls2.set("2005", 60);

Upvotes: 0

Related Questions