Dygraphs - 添加垂直线

标签 dygraphs

我正在使用 dygraph 绘制一段时间内的温度读数图表。 我希望在代表高/低阈值的 y 轴上添加 2 条线。

目前这是通过使用 2 个额外的常量数据系列来实现的,但我怀疑有更好的方法。

underlayCallback 似乎是更好的选择,但我不清楚如何使用 canvas.fillRectg.toComCoords绘制线条的属性。

目前正在处理下面的示例 ( http://dygraphs.com/tests/highlighted-region.html ),它正在渲染一条垂直线。 感谢您提供任何帮助。

var g = new Dygraph(
          document.getElementById("div_g"),
          data,
          {
            labels: ['X', 'Est.', 'Actual'],
            animatedZooms: true,
            underlayCallback: function(canvas, area, g) {
              var bottom_left = g.toDomCoords(300, -20);
              var top_right = g.toDomCoords(301, +20);

          var left = bottom_left[1];
          var right = top_right[0];

          canvas.fillStyle = "rgba(255, 0, 0, 1)";
          canvas.fillRect(right, area.y, 1, area.h);
        }

      }
  );

对于任何感兴趣的人,使用以下方法来达到预期的结果:

underlayCallback: function(canvas, area, g) {
          var LowCoords = g.toDomCoords(0, 2.25);   
          var HighCoords = g.toDomCoords(0, 4);

          var high = HighCoords[1];
          var low = LowCoords[1];

          canvas.fillStyle = 'red';
          canvas.fillRect(area.x, low, area.w, 2);
          canvas.fillStyle = 'blue';
          canvas.fillRect(area.x, high, area.w, 2);
          }

最佳答案

这是一个概念验证插件,它确实可以做到这一点:

https://github.com/danvk/dygraphs/pull/215

您可以使用该插件,即使它不是主要源代码库的一部分,但我建议重命名该插件,因为它使用的是 Dygraph 命名空间。

关于Dygraphs - 添加垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029692/

相关文章:

javascript - dygraphs - 图表重叠固定定位 div

javascript - 来自 PHP : how to get a dynamically generated javascript image

javascript - Dygraphs - 突出显示仅在第一个图表上工作

javascript - Dygraph 多个绘图 - 打开和关闭它们

javascript - dygraph 仅显示上个月的数据

javascript - X 轴日期格式 dygraph

javascript - 如何在没有注释的情况下在 dygraphs 中显示工具提示

css - dygraph 不加载本地 css 文件

javascript - 使 Dygraps 图表背景网格更亮

javascript - Dygraph 时间序列的 Y 轴范围控制