R Highcharter如何为占比序列Y轴设置固定范围与刻度
解答
不能在hc_add_series中添加tickPositions参数实现该需求。tickPositions、min、max都属于坐标轴层级的配置项,作用是定义对应坐标轴的刻度、范围规则,不属于数据系列的可配置参数,写在hc_add_series里不会生效。
你的代码中通过hc_yAxis_multiples搭配create_axis(naxis = 3)一次性生成了3个配置完全相同的Y轴,只需要把第三个(索引为2,对应占比序列的Y轴)单独拆分配置,固定范围和刻度即可,其余两个轴保留原有自动适配数据的逻辑。修改后的可直接运行的代码如下:
highchart() %>% hc_yAxis_multiples( # 第1个Y轴:对应病例数序列,保留原有配置 create_axis(naxis = 1, lineWidth = 3, title = list(text = NULL)), # 第2个Y轴:对应死亡数序列,保留原有配置 create_axis(naxis = 1, lineWidth = 3, title = list(text = NULL)), # 第3个Y轴:对应死亡占比序列,固定范围与刻度 list( lineWidth = 3, title = list(text = NULL), min = 0, max = 60, tickPositions = c(0, 30, 60) ) ) %>% hc_xAxis(categories = graph_data$Month) %>% hc_add_series(data = graph_data$Value, name = "Cases", type = "area", color = '#50b7aa', yAxis = 0, dataLabels = list(enabled = FALSE)) %>% hc_add_series(data = graph_data1$Value, name = "Deaths", type = "area", color = '#919191', yAxis = 1, dataLabels = list(enabled = FALSE)) %>% hc_add_series(data = graph_data2$Proportion, name = "Proportion", type = "area", color = '#926f97', yAxis = 2)
将上述Y轴配置同步应用到全部4张疾病图表中,即可保证所有图表的占比Y轴范围完全统一,刻度固定为[0, 30, 60],满足跨图表视觉可比性要求。


内容的提问来源于stack exchange,提问作者c_marie
相关产品推荐
相关产品推荐

