浮动:堆叠条形图标签重叠/不显示
Flot: Stacked bar labels overlapping / not showing
这是我的JSFiddle。
问题是堆叠的条形图有时会重叠/不显示堆叠的所有不同标签(请参阅第一个图表中的第三个条形图)
不确定,但是,问题可能是因为序列的长度不相同,并且如果没有标签的数据,它就不包含0,就像JSFiddle中的第二个例子一样?
Q:如何使条形标签不重叠?
var newData = [];
var newLabels = [];
var newTicks = [];
for (var i = 0; i < dataFromServer.length; i++) {
var datapoint = dataFromServer[i];
var tick = newTicks.indexOf(datapoint.name);
if (tick == -1) {
tick = newTicks.length;
newTicks.push(datapoint.name);
}
var index = newLabels.indexOf(datapoint.label);
if (index == -1) {
index = newLabels.length;
newLabels.push(datapoint.label);
newDataPoint = {
label: datapoint.label,
data: []
};
newDataPoint.data[tick] = [tick, datapoint.countInbound];
newData.push(newDataPoint);
} else {
newData[index].data[tick] = [tick, datapoint.countInbound];
}
}
for (var i = 0; i < newTicks.length; i++) {
newTicks[i] = [i, newTicks[i]];
}
newLabels = null;
var newOptions = {
xaxis: {
ticks: newTicks
},
grid: {
clickable: true,
hoverable: true
},
series: {
stack: true,
bars: {
show: true,
align: 'center',
barWidth: 0.5
}
}
};
$.plot($("#placeholder2"), newData, newOptions);
要确定堆叠条形图的起点,Flot必须将其下方条形图的高度相加。如果下方有空条形图(没有高度),则无法计算总和。这导致后面的小节再次从零开始。
为了应对这种情况,插入高度为零的缺失条:
for (var i = 0; i < newData.length; i++) {
for (var j = 0; j < newTicks.length; j++) {
if (newData[i].data[j] === undefined) {
newData[i].data[j] = [j, 0];
}
}
}
看看这个更新的小提琴。
相关文章:
- 如何在d3js中突出显示重叠的between矩形
- Angular js显示类似gmail的重叠电子邮件线程
- knightlab timeline js-如何在不重叠的情况下显示事件
- 如何设置计时器以显示警报消息并将该警报消息与另一条警报消息重叠
- Javascript重叠-如何修复切换的显示/隐藏分区
- 仅显示重叠的零件
- 彼此重叠显示的同位素项目
- 如何创建重叠的图像,以便在滚动时显示出来
- 浮动:堆叠条形图标签重叠/不显示
- 在下面的代码中,我想在x轴上显示完整的名称,不希望它们与图例重叠
- 在谷歌地图api重叠的情况下,只显示单个标记
- 当我显示/隐藏视频时,IE中的音频重叠
- 如何显示模态窗口以重叠iframe
- 如何自动滚动到输入字段在安卓当软键盘重叠他们在显示
- 如何在高图列范围图的各个列中显示重叠
- 滑块-幻灯片重叠-两个幻灯片显示在一个帧中
- Bootstrap 3崩溃显示和隐藏重叠彼此
- 如何在悬停时使用jQuery显示时重叠块元素
- 背景图像与显示的图像重叠
- 没有标记显示后整合重叠标记蜘蛛与谷歌地图v3