0

我想实现 Primefaces 图表。但我未能正确设置图表的图例:

在此处输入图像描述

这是我用来构建图表的代码:

<h:form>

    <p:barChart id="basic" value="#{DashboardController.categoryModel}" legendPosition="ne"  
                title="Accounts and Groups" min="0" max="#{DashboardController.chartMaxSize}" style="height:400px"
                shadow="true" barPadding="90" seriesColors="4D94FF, 1975FF, 005CE6, 0047B2" 
                yaxisLabel="Size"/>  
</h:form>

Java 代码:

private void createCategoryModel() throws SQLException, Exception
    {
        categoryModel = new CartesianChartModel();

        // Active Accounts

        ChartSeries chart = new ChartSeries();
        chart.setLabel("Active Accounts");

        chart.set("Active Accounts", countDBActiveAccounts());

        // Blocked Accounts

        chart.setLabel("Blocked Accounts");

        chart.set("Blocked Accounts", countDBBlockedAccounts());


        // Active Groups

        chart.setLabel("Active Groups");

        chart.set("Active Groups", countDBActiveGroups());


        // Blocked Groups

        chart.setLabel("Blocked Groups");

        chart.set("Blocked Groups", countDBBlockedGroups());

        categoryModel.addSeries(chart);



    }

你能帮我正确地构建图表吗?

PS 从@Ravi 提出的代码中,我得到了这个图表:

在此处输入图像描述

4

1 回答 1

2

您应该像这样使用 ChartSeries 的单独实例

private void createCategoryModel() throws SQLException, Exception
{
    categoryModel = new CartesianChartModel();

    // Active Accounts

    ChartSeries actAcc = new ChartSeries();
    actAcc .setLabel("Active Accounts");

    actAcc.set("Active Accounts", countDBActiveAccounts());
    actAcc.set("Blocked Accounts", 0);
    actAcc.set("Active Groups", 0);
    actAcc.set("Blocked Groups", 0);

    // Blocked Accounts

    ChartSeries blocAcc = new ChartSeries();
    blocAcc.setLabel("Blocked Accounts");

    blocAcc.set("Active Accounts", 0);
    blocAcc.set("Blocked Accounts", countDBBlockedAccounts());
    blocAcc.set("Active Groups", 0);
    blocAcc.set("Blocked Groups", 0);


    // Active Groups

    ChartSeries actGrp = new ChartSeries();
    actGrp.setLabel("Active Groups");

    actGrp.set("Active Accounts", 0);
    actGrp.set("Blocked Accounts", 0);
    actGrp.set("Active Groups", countDBActiveGroups());
    actGrp.set("Blocked Groups", 0);


    // Blocked Groups

    ChartSeries blocGrp = new ChartSeries();
    blocGrp.setLabel("Blocked Groups");

    blocGrp.set("Active Accounts", 0);
    blocGrp.set("Blocked Accounts", 0);
    blocGrp.set("Active Groups", 0);
    blocGrp.set("Blocked Groups", countDBBlockedGroups());

    categoryModel.addSeries(actAcc );
    categoryModel.addSeries(blocAcc);
    categoryModel.addSeries(actGrp);
    categoryModel.addSeries(blocGrp);

}
于 2012-07-31T21:50:02.230 回答