Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用Hichcharts绘制不同尺度的时间序列_Javascript_Highcharts - Fatal编程技术网

Javascript 用Hichcharts绘制不同尺度的时间序列

Javascript 用Hichcharts绘制不同尺度的时间序列,javascript,highcharts,Javascript,Highcharts,我想用海图表示两个时间序列。我的问题是一个值大,另一个值低。当我将它们绘制在一起时,值较低的显示为一条直线。我希望能够用两种不同的比例绘制它们,但我发现这是不可能的。我把这里已经有的东西放在a上,代码如下: $(function() { $('#container').highcharts('StockChart', { rangeSelector : { selected : 1, inputEnabled: $('#container').width() > 300,

我想用海图表示两个时间序列。我的问题是一个值大,另一个值低。当我将它们绘制在一起时,值较低的显示为一条直线。我希望能够用两种不同的比例绘制它们,但我发现这是不可能的。我把这里已经有的东西放在a上,代码如下:

$(function() {
  $('#container').highcharts('StockChart', {
  rangeSelector : {
  selected : 1,
  inputEnabled: $('#container').width() > 300,
  enabled:1
  },
  chart:{type:'line'},
  series: [
  {name: 'serie with high values',
  color: 'red',
  data: [1000,2000,3000,4000]
  },
  {name: 'serie with low values',
  color: 'green',
  data: [0.1,0.2,0.3,0.4,0.5]
  },


  ],
  legend: {
  enabled:true,

            },
  })
  });

如果有人能告诉我如何给每个时间序列赋予不同的尺度,我将不胜感激——理想情况下,我会想绘制两个以上的时间序列,每个都有自己的刻度。

由于高值和低值之间的差异非常大,因此图表看起来是这样的,但是如果您尝试使用以下值,您将看到图表看起来很好

$(function() {
  $('#container').highcharts('StockChart', {
  rangeSelector : {
  selected : 1,
  inputEnabled: $('#container').width() > 300,
  enabled:1
  },
  chart:{type:'line'},
  series: [
  {name: 'serie with high values',
  color: 'red',
  data: [10,15,30,40]
  },
  {name: 'serie with low values',
  color: 'green',
  data: [0.1,1,5,10]
  }],
  legend: {
  enabled:true
  }
  })
  });

您可以使用yAxis,如示例中所示

yAxis:[{

     },{
         opposite:true
     }],

我想这正是你想要的。

既然你有一个答案告诉你如何具体完成你的要求,让我添加一个更基本的答案

这是一个典型的例子,说明您真正需要的是两个单独的图表(通常,一个垂直对齐,另一个垂直对齐,最适合于折线图,它们可以与公共时间轴一起工作)

这一概念似乎让一些人感到震惊,但它确实是最好的解决方案,拥有两张图表而不是一张图表确实没有负面影响

在一张图表上用两种不同的比例绘制两个系列的问题在于,它实际上迫使用户进行不真实的比较。当您在图表上绘制两条线时,这两条线之间的相互作用通常是很重要的,并且会被查看者看到

当这两条线有两个不同的刻度时,交互作用完全没有意义,这两条线只会使图表变得混乱,模糊数据的信息

基本上,当你用2个不同的比例绘制2个系列时,你已经绘制了2个图表了——但你把它们挤到了一个空间里,它们以相互阻碍的方式相互作用

FWIW

{{更新

作为一个例子,这里有一个相当典型的例子,在同一张
图表上以不同的比例绘制2个系列:

它可以被清理和改进一点,但总的来说,不管你对它做什么,它都会有点混乱

以下是在两个单独图表上绘制的相同数据,其空间明显小于原始的


我觉得很难支持第一个例子使比较两个系列中的变化更容易的论点。

看看@marco——这应该是一个答案,因为使用多个yAxis将允许有不同的尺度。这是真的,但我希望能够将高值和低值绘制在一起,并看到它们的变化,如@marco的链接。如果您缩小S4M提供的链接范围,让我尝试一下,如果我能为您做些什么的话,那也像您的图表$(函数(){$('#容器')。highcharts({chart:{type:'line',图例:{enabled:true},系列:[{名称:'海平面压力',颜色:'#AA4643',数据:[1016150025055040006000]},{名称:'温度',颜色:'#89A54E',数据:[.2、.5、.9、50100]}];);是的,添加yAxis并为每个系列指定与它相关的轴。谢谢!事实上,行
反面:true
不需要有单独的刻度,尽管它使读取稍微不那么凌乱。好吧,我认为有两个原因需要在同一图表上绘制多个系列的不同刻度:1)它保存s places,2)它使比较变化更容易。YMMV。通过混淆数据来节省空间是一个糟糕的交易。更好的图表设计通常会允许多个图表与以前的图表相匹配。当两个图表相互重叠,并且每个图表的格式都需要如何匹配时,比较变化也同样容易,如果不是更容易的话特定的数据系列。查看两个正确设置的直线图并不比查看一个图上的两条直线困难。而且,如果这些直线在一个图上相互作用(这对于两个标度来说毫无意义),事实上,更难准确地比较这两条曲线。