Highcharts:从Excel中用正值和负值重新创建堆叠面积图时遇到问题

Highcharts:从Excel中用正值和负值重新创建堆叠面积图时遇到问题,charts,highcharts,data-visualization,stacked-area-chart,excel-charts,Charts,Highcharts,Data Visualization,Stacked Area Chart,Excel Charts,我正在将一系列Excel图表转换为Highcharts,遇到了一个奇怪的情况,涉及到一个包含正负值的堆叠面积图 下面是Excel中显示的图表以及附带的数据点。为了便于说明,我选择了系列G。尽管它的数据中包含所有正值,但它仍显示在堆栈底部的零线下方 以下是图表在Highcharts中的显示方式(见下文)。在本例中,系列G显示在图表上方,而所有其他系列的显示方式与Excel中的显示方式大不相同 为了便于参考,可以在以下位置找到此图表的一部分:。我在这篇文章的底部还包括了一个代码示例 我在这里提到

我正在将一系列Excel图表转换为Highcharts,遇到了一个奇怪的情况,涉及到一个包含正负值的堆叠面积图

下面是Excel中显示的图表以及附带的数据点。为了便于说明,我选择了系列G。尽管它的数据中包含所有正值,但它仍显示在堆栈底部的零线下方

以下是图表在Highcharts中的显示方式(见下文)。在本例中,系列G显示在图表上方,而所有其他系列的显示方式与Excel中的显示方式大不相同

为了便于参考,可以在以下位置找到此图表的一部分:。我在这篇文章的底部还包括了一个代码示例

我在这里提到了有关堆栈溢出的以下问题,但不幸的是,这两个问题都无助于解决我的问题:

API文档中是否缺少一个属性或设置,允许图表以与Excel中相同的堆叠顺序绘制这些系列?这在海图中可能吗

$(function () {
  Highcharts.chart('container', {
    chart: { type: 'area', },
    title: { text: 'Stacked Area Chart in Highcharts' },
    xAxis: { categories: ['2007','2008','2009','2010','2011','2012','2013','2014','2015','2016'] },
    plotOptions: {
      series: { 
        marker: { enabled: false }, stacking: 'normal'
      },
    },
    series: [
      { name: 'Total', data: [0,0.08,-0.31,-1.09,-1.82,-2.18,-2.49,-3.05,-3.12,-3.15] }, 
      { name: 'A', data: [0,-0.212001,-0.409192,-0.559879,-0.81,-1.089119,-1.313719,-1.606092,-1.808868,-2.041628] }, 
      { name: 'B', data: [0,0.239857,0.637651,0.733988,0.85,0.855423,0.938974,0.912378,1.017854,0.985514] }, 
      { name: 'C', data: [0,-0.096543,-0.271997,-0.512372,-0.70,-0.665893,-0.723534,-0.879249,-0.890587,-0.821584] }, 
      { name: 'D', data: [0,-0.098096,-0.170803,-0.688206,-0.92,-0.918492,-0.876488,-0.967249,-0.954217,-1.029596] }, 
      { name: 'E', data: [0,0.17794,0.31787,0.36,0.37,0.23917,0.17944,0.14766,0.05938,0.24891] }, 
      { name: 'F', data: [0,0.029755,-0.45174,-0.397836,-0.61,-0.56368,-0.593108,-0.462725,-0.351842,-0.210976] }, 
      { name: 'G', data: [0,0.013198,0.055014,0.019322,0.07,0.077394,0.061947,0.010502,0.035015,-0.055604] }
    ]
  })
});

在周末仔细考虑后,我尝试将一些系列添加到不同的组(堆栈),并实现了我想要的

首先,我将Excel电子表格中最上面的两个系列(在我的示例中是E系列和B系列)添加到堆栈“I”中,顺序是从上到下。然后,我将剩余的序列添加到第二个堆栈“II”,它显示在零线下方,顺序是从下到上

以下是修订后的系列代码:

series: [
  { name: 'Total', type: 'line', data: [0,0.08,-0.31,-1.09,-1.82,-2.18,-2.49,-3.05,-3.12,-3.15] },  
  /* stack I items */
  { name: 'E', stack: 'I', data: [0,0.17794,0.31787,0.36,0.37,0.23917,0.17944,0.14766,0.05938,0.24891] }, 
  { name: 'B', stack: 'I', data: [0,0.239857,0.637651,0.733988,0.85,0.855423,0.938974,0.912378,1.017854,0.985514] }, 
  /* stack II items */
  { name: 'G', stack: 'II', data: [0,0.013198,0.055014,0.019322,0.07,0.077394,0.061947,0.010502,0.035015,-0.055604] },  
  { name: 'F', stack: 'II', data: [0,0.029755,-0.45174,-0.397836,-0.61,-0.56368,-0.593108,-0.462725,-0.351842,-0.210976] }, 
  { name: 'D', stack: 'II', data: [0,-0.098096,-0.170803,-0.688206,-0.92,-0.918492,-0.876488,-0.967249,-0.954217,-1.029596] },
  { name: 'C', stack: 'II', data: [0,-0.096543,-0.271997,-0.512372,-0.70,-0.665893,-0.723534,-0.879249,-0.890587,-0.821584] },
  { name: 'A', stack: 'II', data: [0,-0.212001,-0.409192,-0.559879,-0.81,-1.089119,-1.313719,-1.606092,-1.808868,-2.041628] }
]
生成的图表与其Excel前身非常匹配:

你可以在这里找到一把修改过的小提琴:


我希望这个问题和答案对其他人有帮助

作为一般规则,堆叠顺序按所添加序列的顺序应用。由于您的“G”系列是系列列表中的最后一个,因此它是最后一个“堆叠”的系列。@wergeld感谢您的见解,但问题不在于我的示例中系列G的具体位置。。。这是堆叠系列在Highcharts vs.Excel中的显示方式。如果我的原始问题中没有明确说明,我道歉。请注意,在Excel中,系列C和E是如何以某种方式显示在顶部的,尽管它们在列中的顺序不同。我只是想知道这些图表是否可以匹配。+1000谢谢这解决了我的问题。在我的数据中,每个系列中可能有消极和积极的因素。所以我必须把每个系列分成两部分,即消极部分和积极部分,然后按照你说的顺序排列。