2017-09-06 44 views
1

The chart I'm trying to create使用amCharts,我如何重新创建条形图的阈值,如下所示?

我已经给出了上面的图像作为最终图表应该是什么样子的例子,但是我很难创建它。

由于我们使用的技术,我们必须使用amCharts,并且我已经按照自己的需要堆叠和着色了列,但是我无法找到添加阈值的方式(以浅绿色/蓝色/黄色)。根据图像的顶部以对数形式显示它也是很好的,但我对此没有那么困扰。

任何帮助表示赞赏。

更新:

由于xorspark壮观的帮助下,我已经成功地得到它,因为我想,即使我结束了不使用对数。

对于感兴趣的人,code位于https://codepen.io/dangerworm/pen/mByGqLA much better version nearly matching the original image

回答

1

您可以使用guides指定阈值并标记每个细分。为了实现您的特定输出,您需要为每个填充区域指定两套导向装置,另一套将标签和线条置于顶部。例如:

valueAxes: [ 
    { 
     logarithmic: true, 
     guides: [ 
     { 
      fillColor: "#ffff00", 
      fillAlpha: 0.5, 
      lineAlpha: 0, 
      value: .1, //note that you can't use 0 in a logarithmic axis 
      toValue: 40 
     },{ 
      dashLength: 6, 
      fillColor: "#ffff00", 
      fillAlpha: 0.5, 
      label: "poor", 
      position: "right", 
      lineAlpha: 1, 
      value: 40, 
     }, 
     // ... 
    ] 
    // ... 
    } 

Demo

+0

感谢。我试过这样做,我得到一些指南,但对数设置似乎与stackType设置冲突。 –

+0

啊哈,你没有提到stackType(供将来参考,小提琴比截图好)。由于轴的计算方式,某些堆栈类型会与对数发生冲突 - log(0)未定义,所以如果轴在零点,事情就会中断。您可能需要将['treatZeroAs'](http://docs.amcharts.com/3/javascriptcharts/ValueAxis#treatZeroAs)设置为小数点,以便对数轴可以工作。如果这没有帮助,张贴小提琴。 – xorspark