p:barChart y轴格式

时间:2015-02-16 14:18:00

标签: charts primefaces jqplot

我使用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);但我不知道如何用图表实现这一点在主要表面。

  1. 我想在每个栏的顶部显示在支持bean中设置的值并更改它的大小。
  2. 修改

    完成千分之间的分离,但我仍然不知道每个条形图上方的显示值如何或改变它们的大小。这是我的新代码

     <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>
    

1 个答案:

答案 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来改变大小!

- 以星