3

我的应用程序中有 p:barchart 图表,类似于 showCase 上的第二个条形图:http: //www.primefaces.org/showcase/ui/barChart.jsf

<p:barChart id="horizontal" value="#{chartBean.categoryModel}" legendPosition="se" style="height:300px"  
            title="Horizontal Bar Chart" orientation="horizontal" min="0" max="200"/>

如何自定义 X 轴上的数字。我想格式化 x 轴以仅使用整数。

提前致谢。

4

4 回答 4

6

试试这个(未测试)

<p:barChart extender="ext" id="horizontal" value="#{chartBean.categoryModel}" legendPosition="se" style="height:300px"  
    title="Horizontal Bar Chart" orientation="horizontal"/>

在你的js中添加这个

function ext() {
   this.cfg.seriesDefaults = { 
       useSeriesColor: true, 
       min: 0, 
       max: 200, 
       tickInterval: 20, 
       tickOptions: { 
           formatString: '%d' 
       } 
   };
}

或仅此 x 轴:

function ext() {
   this.cfg.axes = {
       xaxis:
       {
           tickInterval: 20,
           tickOptions: { 
               formatString: '%d' 
           } 
       }
   };
}

你可以试试玩 tickInterval...


直接来自PrimeFaces 用户指南

扩展器

图表提供了对常用 jqplot 选项的高级访问,但是 jqplot 中提供了更多自定义选项。扩展器功能通过增强 this.cfg 对象提供对低级 API 的访问以进行高级定制,这里是增加线条系列阴影深度的示例;

<p:lineChart value="#{bean.model}" extender="ext" />


function ext() {
    //this = chart widget instance
    //this.cfg = options
    this.cfg.seriesDefaults = {
        shadowDepth: 5
    };
}

有关可用选项的文档,请参阅 jqPlot 文档; http://www.jqplot.com/docs/files/jqPlotOptions-txt.html 转换器

于 2012-11-25T10:12:55.353 回答
2

你的扩展功能可能是这样的

    function customExtender() {
        this.cfg.axes.xaxis.tickOptions = {
            formatString : '%d'
        };
        this.cfg.axes.xaxis.tickInterval = 1;
    }

我有同样的问题,这很好用,我基于 Daniel's Answer 和其他一些代码。这样,它只是格式化所需的轴,而不是两者。

于 2013-01-23T22:56:22.407 回答
1

在你的js中添加这个

function ext() {
    this.cfg.axes.xaxis.tickOptions.formatString = '%d';
}
于 2013-04-17T12:03:09.323 回答
1

您可以使用以下代码从 @ManagedBean 类将格式设置为轴:

Axis xAxis = categoryModel.getAxis(AxisType.X);
xAxis.setTickFormat("%.0f");
于 2017-01-27T10:18:57.873 回答