Primefaces:图表和传奇位置

时间:2014-03-10 19:53:07

标签: jsf primefaces charts

我正在使用Primefaces整理一个非常基本的堆积条形图。图表本身似乎很好。但是,图例被放置在图表数据上。我知道你可以将图例移动到任何罗盘序号(n,s,w,e,se,sw,ne,nw),但我实际上想把它移出数据。

获取它的代码:

 <p:barChart id="stackedKWH" value="#{kwhSalesBeanManager.kwhSalesChart}" legendPosition="e" style="height:300px;width:800px" title="kWh Sales by Type" stacked="true" barMargin="10" min="0" max="125000000" />

目前的样子。想将图例从图表中移到右边。

Here's what it looks like now when set to 'e':

3 个答案:

答案 0 :(得分:5)

尝试添加:

function extLegend() 
{
    this.cfg.legend= {
        show: true,
        location: 's',
        placement: 'outsideGrid'
    };
}

并在barChart组件中添加:

 extender="extLegend"

答案 1 :(得分:5)

现在最好的解决方案是在图表模型上定义placemant:

...
 modelChart.setLegendPlacement(LegendPlacement.OUTSIDE);
...

答案 2 :(得分:0)

看起来你应该使用javascript来达到这个目的。 类似的东西:

var legend = $('table.jqplot-table-legend')[0];
legend.setAttribute('style', 'position: absolute; z-index: 3; right: -100px; top: 25px;');

我在此页面上对其进行了测试:http://www.primefaces.org/showcase/ui/barChart.jsf