【问题标题】:Bar Chart outside bounds and mouseover event issue条形图超出范围和鼠标悬停事件问题
【发布时间】:2015-01-30 09:03:58
【问题描述】:
  1. 这是我的 dimple.js 代码,它生成的条形图超出了边界并触及 Y 轴。
  2. 鼠标悬停事件不会改变条的颜色。 下面是图片

    var myChart2 = new dimple.chart(svg,data);
        myChart2.setBounds(750,50,550,250);    
        var x = myChart2.addTimeAxis( "x", "date", "%m/%d/%Y", "%d-%b");
        x.floatingBarWidth = 21;
        var y2= myChart2.addMeasureAxis("y","callperorder");
        var y1= myChart2.addMeasureAxis("y","calls");
    
    
        var bars = myChart2.addSeries("or", dimple.plot.bar,[x,y2]);
    
        var lines= myChart2.addSeries("cl", dimple.plot.line,[x,y1]);
    
    
        lines.lineMarkers= true;       
    
        myChart2.addLegend(750, 20, 300, 20, "right");
    
        myChart2.assignColor("cl","rgb(99,39,29)");
        myChart2.assignColor("or","rgb(99,89,219)");
    
    
        myChart2.draw();
    
       \\MOUSEOVER EVENT       
        bars.addEventHandler("mouseover", function( {d3.select(this).style("fill","green")});        
    

【问题讨论】:

    标签: javascript d3.js charts mouseover dimple.js


    【解决方案1】:

    如果你想使用dimple方法,你需要在调用draw之前添加事件处理程序。或者,您可以在绘制后使用 d3 方法。

    bars.shapes.on("mouseover", function () {...});
    

    注意。您的事件声明中还有一个错字,它缺少function ( 之后的右括号。

    为了避免重叠图表的边缘,您需要手动设置 x 边界:

    x.overrideMin = d3.time.format("%m/%d/%Y").parse("12/31/2014");
    x.overrideMax = d3.time.format("%m/%d/%Y").parse("01/11/2015");
    

    当然可以使用任何你想要的值;

    【讨论】:

    • 我在 myChart.draw(); 之前添加了事件处理程序;没发生什么事。如果我使用bars.shapes......一切正常,但我失去了默认工具提示。
    • 还有一件事,如果我覆盖 min 和 max ,我会通过查看图表感觉到在 12 月 31 日和 1 月 11 日没有发生任何事情。难道没有办法移动它们吗?进去,就像把它们折叠几厘米一样。
    • 任一解决方案都会删除当前的工具提示行为,您可以手动调用凹坑工具提示:bars.shapes.on("mouseover", function (e) { dimple._showBarTooltip(e, this, chart,条);});
    • 关于间距,听起来你最好在 x 上使用类别轴
    • 您可以通过在 on 处理程序中命名事件来保持默认的工具提示行为,即“bars.shapes.on("mouseover.my_handler")”。 (api.jquery.com/event.namespace) John,您可能希望将 Dimple 源中的事件命名为未来以避免这种情况
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2016-08-08
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多