注意:下面的代码适用于R中的Highcharts,但是显然,“普通” Highcharts代码中的任何解决方案也非常受欢迎!
我试图将平均值(在下面的示例中由菱形符号表示)和基准的差异(以下示例数据中未包括)打印到水平堆叠的条形图中。
起初我想绘制第二张图,并将它们与hw_grid
组合在一起,但是对齐它们确实很棘手。因此,我以为我会将数字添加为第二个x轴上的标签。
我知道可以添加多个y轴(Two y Axis in Highcharter in R和https://www.highcharts.com/demo/combo-dual-axes),但是因为这是一个水平图,所以它必须是x轴,而没有似乎是等效的?
以下是要在R
中重现的伪数据:
library(dplyr)
library(highcharter)
df1 = data.frame("label"= paste0("Label", c(1,1,1,2,2,2,3,3,3,4,4,4)),
"value" = c(-100,231,110, -189,299,198, -199,150,298, -90,180,155),
"grade" = rep(c("Disagree","Neutral","Agree"), 4))
df2 = data.frame("x" = c(0,1,2,3),
"y" = c(200,100,250,280))
highchart() %>%
hc_add_series(df1, type="bar", hcaes(x=label,y=value,group=grade)) %>%
hc_add_series(df2, type="scatter", marker=list(symbol='diamond', radius=8)) %>%
hc_plotOptions(bar = list(stacking="normal")) %>%
hc_xAxis(type = "category") %>%
hc_yAxis(visible=FALSE)
答案 0 :(得分:2)
与y轴的工作原理相同:只需将另一个轴对象添加到xAxis数组(确保为其设置相反= true),然后对于要利用它的系列,指定xAxis = 1。
这里是一个示例(它使用分类的x轴值,但不一定是这种情况):
xAxis: [{
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
crosshair: true
},
{
categories: ['1', '2', '3', '4', '5', '6',
'7', '8', '9', '10', '11', '12'],
opposite: true
}]
...
series: [{
name: 'Rainfall',
type: 'column',
xAxis: 1, // this applies this data to the alternate (2nd axis) specified above
data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
tooltip: {
valueSuffix: ' mm'
}
}, {
name: 'Temperature',
type: 'spline',
data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
tooltip: {
valueSuffix: '°C'
}
}]
在此示例中,您甚至可以具有2个x轴和2个y轴: https://jsfiddle.net/mzhukovs/8v167bcf/2/