如何删除jqplot的外边框,请看下面的截图。 我尝试了不同的选项并搜索它,但我没有得到解决方案。
这是我的代码,
plot1 = $.jqplot(container, [data], {
title: 'title',
animate: true,
animateReplot: true,
seriesColors:['#00ADEE'],
seriesDefaults: {
renderer: $.jqplot.BarRenderer,
shadow: false
},
axesDefaults: {
},
highlighter: {
tooltipAxes: 'y',
show: true,
tooltipLocation: 'sw',
formatString: '<table class="jqplot-highlighter"> \
<tr><td>test:</td><td>%s</td></tr></table>'
},
grid: {borderColor: 'transparent', shadow: false, drawBorder: false, shadowColor: 'transparent'},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
ticks:ticks
},
yaxis: {
max:1000
}
}
});
请帮帮我。提前谢谢。
这是JsFiddle link,我想删除外边框。
答案 0 :(得分:7)
您可以在postDrawHooks中注册自定义函数,在插件初始化后触发。
我们的想法是使用此功能在图表顶部绘制一个白色边框矩形,使外边框不可见。
$.jqplot.postDrawHooks.push(function() {
var $canvasMain = $("#chart1 canvas.jqplot-grid-canvas"),
$canvasLines = $("#chart1 canvas.jqplot-series-canvas"),
canvasSize = {
x: parseInt($canvasLines.attr('width')),
y: parseInt($canvasLines.attr('height'))
},
ctx = $canvasMain[0].getContext('2d');
ctx.strokeStyle = 'white';
ctx.lineWidth = 6; // 6 to hide shadows and the larger bottom side
ctx.rect($canvasLines.position().left,
$canvasLines.position().top,
canvasSize.x,
canvasSize.y + 3);
ctx.stroke();
});
你可以看到外边界消失了:
这很好,但我个人会继续修改源以跳过外边框。该插件使用GPLv2和MIT双重许可,所以我想这条路线没有问题。
我发现如果你改变这个
grid: {borderColor: 'transparent', shadow: false, drawBorder: false, shadowColor: 'transparent'},
到
grid: {borderColor: 'white', shadow: false, drawBorder: true},
外边框消失(我上面所做的那种),但x轴上仍会出现一些刻度线。我设置showTickMarks: false
没有成功。
请参阅jsFiddle
答案 1 :(得分:5)
外边框不是jqPlot边框,它们是最外面的网格线。因此,要删除此“边框”,您需要关闭网格线。
您可以添加以下内容关闭这些网格线:
drawGridlines: false
到您的网格属性,例如
grid: {
drawGridlines: false,
borderColor: 'transparent',
shadow: false,
drawBorder: false,
shadowColor: 'transparent'
}
当您启用了突出显示选项时,这对您来说是一个可行的选项,因为当您将鼠标悬停在它们上方时可以看到点值。
答案 2 :(得分:1)
只需设置drawBorder:false
为我工作:
grid: {drawBorder: false},