我在项目中使用了primefaces图表。
我知道是使用jqplot的曲面图。
在jqplot网站上有自定义jqplot图表的例子。
如何使用示例代码自定义primefaces图表?
自定义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
如何在primefaces图表上使用上面的代码?
答案 0 :(得分:7)
当您使用扩展器时,您可以通过js更改所有内容。
这是一个例子
<p:lineChart ... extender="chartExtender"/>
在js文件或Tag:
下的页面中function chartExtender() {
// this = chart widget instance
// this.cfg = options
this.cfg.grid = {
background: 'transparent',
gridLineColor: '#303030',
drawBorder: false,
};
}
这只是一个例子......这将帮助您完成剩下的工作。
希望有所帮助:)
答案 1 :(得分:2)
您升级到Primefaces 5.0吗? Primefaces实际上重新编写了它的图表api,以便您现在可以直接从bean中添加这些自定义,而无需处理jplot。此外,旧版本的图表将来会被弃用,因此切换是个好主意。
如果您仍然坚持使用旧版本的图表,那么您需要做的是使您的图表使用扩展程序选项扩展该功能
<p:lineChart ... extender="nameOfFunction"/>
答案 2 :(得分:0)
我没有费心去定制PrimeFaces图表。我选择在我的JSF应用程序中使用Google charts。它具有高度可定制性,并且可以呈现为SVG,因此您还可以使用CSS来设置图形样式。您可以查看GChart PrimeFaces extension或只是加载JavaScript customize所有内容(它很容易并且有详细记录)。