highcharts根据负值/正值添加yAxis标签

时间:2016-04-22 02:09:59

标签: javascript highcharts

我有一个柱形图,显示美国和其他国家之间的贸易平衡。

我需要能够在图表的右侧显示正数是进口(正贸易差额),负数是出口(负贸易差额)。

fiddle

中可以看到写得不好的开头

我尝试使用以下(丑陋)代码添加导入/导出标签:

 yAxis: [{

        title: {
            text: 'Millions of Dollars'
        }
    },{
        opposite: true,
        title : {
          rotation: 0,
          text: 'Imports',
          x: 17,
          y: -48
      }
    },{
      opposite: true,
        title : {
          rotation: 0,
          text: 'Exports',
          x: -40,
          y : 5
      }
    }]

我希望在yAxis上创建类似积极和消极值的类别,将正值标记为导入,将负值标记为导出。

想要保留在highcharts中,所以highcharts(下载等)附带的所有好选项也会显示这个辅助yAxis标签。

是否有一些简单的东西让我失去工作?

谢谢!

2 个答案:

答案 0 :(得分:0)

由于你没有自己的解决方案,这里是我自己的肮脏的hacky解决方案,这可能更糟,但你至少不需要指定轴的位置(排序)。

想法是添加一个没有名称的额外类别,添加另一个带有2个点的系列,其中x值为该类别,名称为“import”和“export”。

您最终可以根据您拥有的数据推导出这两个“隐藏”点的值,以便它们可以自动调整。它很脏但是有效。

val someJsValueButArray = ....
val asJsArray:JsArray = Json.toJson(someJsValueButArray).as[JsArray]
val asSeqOfJsObjects:Seq[JsObject] = asJsArray.value.map(_.as[JsObject])

请参阅小提琴http://jsfiddle.net/r2etx98t/

答案 1 :(得分:0)

我最终使用以下内容手动定位文本

见工作http://jsfiddle.net/0s17qt56/4/

以下摘录

labels: {
      items : [{
         html : 'Imports',
         style : {
           left: '710px',
           top : '130px'
         }
       },{
         html : 'Exports',
         style : {
           left: '710px',
           top : '70px'
         }
       }]
    },