我想实现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);
}
你能帮我正确构建图表吗?
P.S从@Ravi提出的代码我得到这个图表:
答案 0 :(得分: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);
}