【问题标题】:Dygraphs: One series with two y-axesDygraphs:一个系列有两个 y 轴
【发布时间】:2013-12-11 21:04:43
【问题描述】:

我想做的是绘制一个系列,其中两个 y 轴“锁定”到相同的数据 - 例如,可以读取的 °F 和 °C 温度(或英尺和米等)偏离任一轴,但只会绘制一组点。

我尝试过的事情:

1) 创建两个系列,第二个带有转换后的值,并绘制在另一个“顶部”上(在本例中,转换值为 1.51):

日期,unit1,converted_unit2
2012-03-19,1.598333,3.108333
2012-03-20,1.542083,3.052083
2012-03-21,1.483333,2.993333

通常有效;但是,Dygraphs 会动态地独立缩放两个 y 轴以“漂亮”,因此这两个系列并不总是直接在彼此之上绘制。

2) 将第二个系列的可见性设置为 FALSE:

系列:{'converted_unit2':{轴:'y2'}}, 可见性:[真,假]

不起作用:Dygraphs 默认将不可见系列的辅助 y 轴缩放为 0 到 1。

3) 好的,让它们都可见,但将第二个系列设置为透明:

系列:{'converted_unit2':{轴:'y2'}}, 颜色:['#000080','rgba(0,0,0,0)']

几乎有效——但是它的副作用是动态图例中第二个系列的标签现在是透明的。而且,由于轴仍被独立计算为“漂亮”,因此它们并未完全对齐 - 次要 y 轴可能与第一个 y 轴相差几个百分比。

(我还尝试将第二个系列的可见性设置为 FALSE,并使用从 yAxisRange() 获得的值手动设置第二个 y-asix,效果很好,但第二个 y 轴无法正确响应缩放图形.)

有没有一种方法可以轻松地为单个系列创建两个“锁定”在一起的 y 轴?

谢谢, -布莱恩

【问题讨论】:

    标签: javascript dygraphs


    【解决方案1】:

    同样的问题 ;)

    我们曾经通过使用第二个系列中的单个数据点(允许第二个轴)和两个轴的固定轴范围(从第一个范围计算的第二个范围)来添加第二个(依赖)轴。第二种颜色设置为透明,第二个标签被隐藏...工作正常,直到我们不得不切换到动态缩放轴...

    动态图例中的第二个系列现在是透明的

    hm,您可以使用 css(因为它是内联样式,您必须使用 !important 来覆盖它)或 js(删除内联样式或更改它)来更改它。

    是的,第二个(依赖)轴的选项会很棒!

    【讨论】:

      【解决方案2】:

      将第二个系列的笔画宽度设置为0:

      series: {
          converted_unit2: {
              axis: 'y2',
              strokeWidth: 0
              },
          }
      

      【讨论】:

      • 很好的技巧(也可能需要将 pointSize 和 highlightCircleSize 设置为 0)。此外,手动设置 yRangePad 可以防止当其中一个 y 轴碰到零下限时出现系列对齐问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多