我正在制作一个我需要帮助的图表。 (我已经搜索了这么多,但不能成功,为什么要问。 - 如果可能重复,我道歉。)
我的代码:
var plot2 = $.jqplot('distance_graph', data.distance, {
// The "seriesDefaults" option is an options object that will
// be applied to all series in the chart.
seriesDefaults:{
renderer:$.jqplot.BarRenderer,
rendererOptions: {fillToZero: false},
pointLabels: { show: true },
},
// Custom labels for the series are specified with the "label"
// option on the series option. Here a series option object
// is specified for each series.
// Show the legend and put it outside the grid, but inside the
// plot container, shrinking the grid to accomodate the legend.
// A value of "outside" would not shrink the grid and allow
// the legend to overflow the container.
legend: {
show: true,
placement: 'outsideGrid'
},
axes: {
// Use a category axis on the x axis and use our custom ticks.
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
label: 'Date',
ticks: ticks,
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
angle: -30
}
},
// Pad the y axis just a little so bars can get close to, but
// not touch, the grid boundaries. 1.2 is the default padding.
yaxis: {
label: 'Distance Travelled',
pad: 1.05,
labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer,
tickOptions: {
labelPosition:'middle'
},
min:min_val,
max:max_val
}
}
});
plot2.legend.labels = data.device;
plot2.replot( { resetAxes: false } );
以及如何删除0值,因为我将此图表转换为多个Item的图表。这是目前One Item的图表..那么如何删除0标签......
答案 0 :(得分:3)
根据以下示例:point-labels,您可以使用CSS中的.jqplot-point-label
类修改点标签的显示。因此,您可以使用CSS transform
属性旋转文本,如下所述:how-to-draw-vertical-text-with-css-cross-browser
要删除0值的标签,您需要提供一组标签,其中零更改为空字符串。您可以像这样使用此自定义集:
pointLabels: {
show: true,
labels: customSetOfLabels
},
这里是a working demo - 然而,看起来jqPlot会阻止来自jsfiddle的请求,因此有时脚本不会加载。您可以在本地尝试,也可以在一个浏览器窗口中访问jqPlot demo page和jsfiddle,以便从缓存中加载脚本。
我使用JavaScript数组map()
函数来创建自定义标签集,如下所示:
function removeZeros(x){
return x===0 ? '' : x;
}
var line1 = [14, 32, 41, 44, 0, 40];
var line1Labels = line1.map(removeZeros);
请注意,map()
可能无法在所有浏览器中使用,因此您可能希望使用for循环遍历数组。