When we create a primefaces
chart then it shows number scale in decimal points. I want to show without decimal places like simple munbers.Is there a way?
Thanks
问题:
回答1:
Update:
While the workaround posted below still works I found a more proper solution to do this. Number scale can be formatted trough extender
function:
<p:barChart value="#{testClazz.categoryModel}" legendPosition="ne"
widgetVar="barChartObj1" extender="ext1"/>
place the following function between the <head></head>
tags on your page:
<script type="text/javascript">
function ext1() {
this.cfg.axes.yaxis.tickOptions = {
formatString : '%d'
};
}
</script>
After experimenting a bit with jqPlot I found out that if you reset the axes after the plotting has finished the decimals after the decimal point are cleared. If your barChart is definied like this:
<p:barChart id="basicPlot" value="#{testClazz.categoryModel}"
legendPosition="ne" widgetVar="barChartObj"
title="Basic Bar Chart" min="0" max="270"/>
call the following function after the page load is finished:
<script type="text/javascript">
$(document).ready( function() {
setTimeout(formatAxisNumbers, 500);
});
function formatAxisNumbers() {
window.barChartObj.plot.resetAxesScale();
window.barChartObj.plot.replot();
}
</script>
Note that instead of resetting both axes with resetAxesScale
you can reset x or y separately by doing:
window.barChartObj.plot.axes.xaxis.resetScale();
or
window.barChartObj.plot.axes.yaxis.resetScale();
You can also expriment with decreasing the timeout to smaller numbers to achieve smoother replot. For other options see the jqPlot documentation.
Tested in Google Chrome 22.0.1229.94 (Official Build 161065).