我在我的项目中使用了primefaces的图表。
我知道他的图表使用了jqplot。
在jqplot的站点上有一个定制jqplot图表的例子。如何使用示例代码自定义素面图?
定制jqplot图表的示例代码如下:
$(document).ready(function () {
$.jqplot._noToImageButton = true;
var plot1 = $.jqplot("chart1", [prevYear, currYear], {
seriesColors: ["rgba(78, 135, 194, 0.7)", "rgb(211, 235, 59)"],
title: 'Monthly TurnKey Revenue',
highlighter: {
show: true,
sizeAdjust: 1,
tooltipOffset: 9
},
grid: {
background: 'rgba(57,57,57,0.0)',
drawBorder: false,
shadow: false,
gridLineColor: '#666666',
gridLineWidth: 2
},
legend: {
show: true,
placement: 'outside'
},
seriesDefaults: {
rendererOptions: {
smooth: true,
animation: {
show: true
}
},
showMarker: false
},
series: [
{
fill: true,
label: '2010'
},
{
label: '2011'
}
],
axesDefaults: {
rendererOptions: {
baselineWidth: 1.5,
baselineColor: '#444444',
drawBaseline: false
}
},
axes: {
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
formatString: "%b %e",
angle: -30,
textColor: '#dddddd'
},
min: "2011-08-01",
max: "2011-09-30",
tickInterval: "7 days",
drawMajorGridlines: false
},
yaxis: {
renderer: $.jqplot.LogAxisRenderer,
pad: 0,
rendererOptions: {
minorTicks: 1
},
tickOptions: {
formatString: "$%'d",
showMark: false
}
}
}
});
$('.jqplot-highlighter-tooltip').addClass('ui-corner-all')
});
示例链接1
如何在素面图上使用以上代码?
当你使用扩展器时,你可以用js改变一切。
下面是一个例子
<p:lineChart ... extender="chartExtender"/>
在js文件或页面标签下:
function chartExtender() {
// this = chart widget instance
// this.cfg = options
this.cfg.grid = {
background: 'transparent',
gridLineColor: '#303030',
drawBorder: false,
};
}
这只是一个例子…这将帮助你做剩下的事情。
有关最新的PF版本,请查看PrimeFaces 5.2及更新版本中图表扩展器属性的替代选项希望有帮助
你升级到Primefaces 5.0了吗?Primefaces实际上修改了它的图表api,这样您现在就可以直接从bean中添加这些定制,而不必处理jplot。此外,旧版本的图表将在未来被弃用,因此切换是一个好主意。
如果你仍然坚持使用旧版本的图表,你需要做的就是使用extender选项
让你的图表扩展功能<p:lineChart ... extender="nameOfFunction"/>
我没有费心去定制PrimeFaces图表。我选择在JSF应用程序中使用Google图表。它是高度可定制的,它呈现为SVG,所以另外你可以使用CSS样式你的图表。您可以查看一下GChart PrimeFaces扩展,或者简单地加载JavaScript自定义所有内容(这很容易并且文档齐全)。