首页 > 解决方案 > R-highcharter中平行图中的颜色y轴

问题描述

这个问题是R-highcharter R 中 Parallelcoordinates的后续问题。假设我们有一个由

library(highcharter)
library(purrr)
library(dplyr)

series_lst <- 
  iris %>% 
  as_tibble() %>% 
  asplit(1) %>% 
  imap(~list(
    name = paste("observation", .y),
    data = as.numeric(.x[1:4]),
    color = "steelblue"
  ))

hc <- 
  highchart() %>% 
  hc_chart(parallelCoordinates = TRUE, type = "spline") %>% 
  hc_xAxis(categories = names(iris)[1:4]) %>% 
  hc_add_series_list(series_lst)

这导致 在此处输入图像描述

我现在想自定义 y 轴。由于我在我的应用程序中使用了深色主题,因此我需要将标签设为白色。但在我们的示例中,假设我们想让 y 轴标签变为红色。在highcharter中,有两个函数用于修改 y 轴 -hc_yAxishc_yAxis_multiples。我试过

hc %>% hc_yAxis(labels = list(style = list(color = "red")))

这导致仅使第一个轴上的标签变为红色。我也试过

hc %>% hc_yAxis(labels = rep(list(style = list(color = "red")),4))

但没有任何改变。我尝试过的其他功能也一样

hc %>% hc_yAxis_multiples(labels = list(style = list(color = "red")))
hc %>% hc_yAxis_multiples(labels = rep(list(style = list(color = "red")),4))

在 highhcarts https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/parallel-coordinates的示例中,还有更多选项用于设置不同的 y-轴,例如可以更改类型或提供自定义标签。如何使用 R 包实现这一点highcharter

标签: rhighchartsr-highcharter

解决方案


yAxis_lst <- rep(
  list(
    list(
      labels = list(style = list(color = "red"))
    )
  ),
  4
)

hc <- 
  highchart(hc_opts = list(yAxis = yAxis_lst)) %>% 
  hc_plotOptions(series = list(label = list(enabled = FALSE))) %>% 
  hc_chart(parallelCoordinates = TRUE, type = "spline", reflow = TRUE) %>% 
  hc_xAxis(categories = names(iris)[1:4]) %>% 
  hc_add_series_list(series_lst)

在此处输入图像描述

是的,这些列表看起来很复杂 :)

我可以在这里给出的一个建议是使用export_hc函数。这允许您将图表保存为 javascript 代码。通过这种方式,您将准确了解每个highcharter功能在幕后的作用,并且更容易理解。通常,很清楚 js 输出应该如何使其工作(当您与工作 jsfiddle 示例进行比较时)。

我使用的工作流程如下:

  1. 将您的 hc 导出到 js 文件。
  2. 对 R 代码进行小的编辑
  3. 再次导出
  4. 看看有什么变化

推荐阅读