我使用primefaces 4.0 barchart,但我想修改一些默认属性。这是我的xhtml页面
<p:barChart id="chart" value="#{marchebean.model}" legendPosition="ne" xaxisLabel="Année" yaxisLabel="Montant en DT" title="Factures payés par années" />
我想做什么
1.我想在y轴上用数字分隔数百,数千和数百万,即改变我的数字的格式,我在java中使用NumberFormat.getNumberInstance(Locale.FRANCE).format(mynumber);
但我不知道如何用图表实现这一点在主要表面。
修改
完成千分之间的分离,但我仍然不知道每个条形图上方的显示值如何或改变它们的大小。这是我的新代码
<p:barChart id="chart" value="#{marchebean.model}" extender="ext" style="height:600px;" legendPosition="ne" xaxisLabel="Année" yaxisLabel="Montant en DT" title="Factures payés par années" />
<script type="text/javascript">
function ext() {
this.cfg.axes.yaxis.tickOptions = {
formatString: "%'i"
};
this.cfg.seriesDefaults={
renderer: $.jqplot.BarRenderer,
pointLabels:{show:true}
},
$.jqplot.sprintf.thousandsSeparator = ' ';
}
</script>
答案 0 :(得分:1)
您可以使用扩展器满足您的需求#1。 这是Primefaces&#39;的相关摘录。关于扩展器的手册:
3.14.15 Extender Chart API提供对常用jqplot选项的高级访问,但还有更多自定义选项 在jqplot中可用。扩展器功能提供对低级api的访问 通过增强配置对象来进行高级自定义, 这是一个增加线系列阴影深度的例子 model&#39;扩展器属性设置为&#34; ext&#34;。
<p:chart type="line" model="#{bean.model}" />
function ext() { //this = chart widget instance //this.cfg = options this.cfg.seriesDefaults = { shadowDepth: 5 }; }
有关可用选项,请参阅jqPlot文档。
注意:在Primefaces 4.0中,扩展程序函数名称作为组件标记的属性提供,例如。 <p:barChart extender="ext" .../>
要将空格用作千位分隔符,请使用以下扩展程序:
function ext() {
this.cfg.axes.yaxis.tickOptions = {
formatString: "%'i"
};
$.jqplot.sprintf.thousandsSeparator = ' ';
}
您还可以设法在扩展程序中进行一些调整。 例如,以下配置将在每个条形图上方显示值:
seriesDefaults: {
renderer: $.jqplot.BarRenderer,
pointLabels:{show:true}
},
只需使用一些CSS来改变大小!
- 以星