酒吧太短,不再可见

时间:2013-01-22 22:40:49

标签: javascript jquery jquery-plugins jqplot

所以我有这个图表与jqplot

jqplot

如果你仔细观察,你会发现在4和5之下实际上有数据要显示,但条形图太短而无法显示数字标签。我有悬停文本,但条形图也太小,鼠标无法注册。在3以下,红色和绿色之间实际上有另一个条,但它也太小而无法显示。

在这种情况下我该怎么办?有什么建议?

我有几个想法,但不知道如何实施:

  • 仅当条形图比最高条形图小一定百分比时,才会在每个条形图的顶部显示数字标签。

  • 当鼠标位于给定列而不仅仅是栏本身时,鼠标悬停显示。此悬停文本将显示所有3种颜色的数据,而不仅仅是一种颜色。

谢谢!

修改

我通过编写自定义荧光笔类来获得悬停文本以显示所有3种颜色

highlighter: {
show: true,
...
tooltipContentEditor:tooltipContentEditor,
}
...
function tooltipContentEditor(str, seriesIndex, pointIndex, plot) {
    var data1 = plot.data[2][pointIndex];
    var data2 = plot.data[1][pointIndex];
    var data3 = plot.data[0][pointIndex];
    var value = data1 + "-" + data2 + "-" + data3;
    return value;
}

当然这只适用于每个酒吧总共有3种颜色,适合我,所以我现在正在使用。现在我需要弄清楚当条形太小时如何让荧光笔显示更容易。

EDIT2:

我想出了如何让打火机显示出来。

  1. 创建一个虚拟系列,我将其设置为给定列和最高列之间的差异

  2. 将颜色更改为rgb透明,删除阴影,删除突出显示等任何内容。

  3. 将鼠标悬停在隐形栏或其下方的任何栏上时,它现在会显示完整的统计数据,耶!

1 个答案:

答案 0 :(得分:0)

隐形数据系列听起来很黑,更不用说现在当用户将鼠标放在这个空间时,用户会得到不一致的反馈,这将是一个可变实体

这听起来像是一个很好的时间来使用一个图例,然后在图例的项目上放置一个处理程序,触发该相关系列的悬停

var $l = $('.jqplot-table-legend');
$l.on('mouseenter', function(e){
var $this = $(this),
    i = $this.index(),
    l = $l.length;
    // now call your custom highlight function or trigger the hover using relevant indices
})
.on('mouseleave', function(e){ 
    // hide visible tooltips
});

P.S。不推荐使用悬停,请不要再使用了