Primefaceチャートを使用していますが、jqPlotの詳細を知りたいので、より柔軟なカスタマイズを行うことができます。たとえば、コンビネーションチャート(棒グラフとラインコンボ)を作成したいとします。jqPlot Java arraylistとJSF beansからチャートを作成する方法
私はチャートがXHTMLページからjQueryの機能を焼成することにより作成することにしたい。
<button type="button" class="button" onclick="comboChart()">Combo Chart</button>
機能は次のとおりです。
function comboChart() {
var line1 = [#{chartDataBean.comboChartMapList}];
var line2 = [#{chartDataBean.linePartChartMap}];
var plot2 = $.jqplot('testchart', [line1, line2], {
series: [{renderer: $.jqplot.BarRenderer}, {xaxis: 'x2axis', yaxis: 'y2axis'}],
axesDefaults: {
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
angle: 30
}
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer
},
x2axis: {
renderer: $.jqplot.CategoryAxisRenderer
},
yaxis: {
autoscale: true
},
y2axis: {
autoscale: true
}
}
});
};
JSF Beanがどこ各地図のアレイリストが含まれています地図はシリーズになります:
public List<HashMap<Object, Double>> getComboChartMapList() {
List<List<Endatapoint>> modbinholder = new ArrayList<List<Endatapoint>>
();
modbinholder = anBean.getModelBinList();
comboChartMap = new HashMap<>();
comboChartMapList = new ArrayList<>();
for (List<Endatapoint> cList : modbinholder) {
List<Endatapoint> pholder = new ArrayList<>();
pholder = cList;
for (Endatapoint p : pholder) {
Date lDate = p.getPointdate();
String pnits = p.getRecords().getSnipunit();
Double aNum = p.getActualnum();
comboChartMap.put(pnits, aNum);
comboChartMapList.add(comboChartMap);
}
}
return comboChartMapList;
}
上記の情報だけでは、データがない空白のグラフが生成されます。 ChromeとFFでJSコンソール(Firebugの)を見て、私はリストの値がこのように生成される構文エラーに気づく:
var line1 = [[{Million Dollars=54.7}, {Million Dollars=54.7}]];
しかしjqplotのドキュメントは、次のように生成される値を必要とします。
var line1 = [['Million Dollars', 54], ['Million Dollars', 54.7]];
私の質問は以下のとおりです。
- 私は上記のコードで間違って何をしているのですか?
- 上記のコードを使用して正しい値を渡すことができますか、またはJSONのような追加のメソッドを使用する必要がありますか?
私がここで読んでいる例と質問のほとんどは、動的値をjplotに渡す際にJSONが関与しているようです。可能であればJavaオブジェクトを使用することに固執したいと思います。
を必要とされないゲッターを作成し、それが舞台裏PrimeFacesがあなたのために何をするかであるということです – Kukeltje