Highchart闪亮的R散点图 - 如何定义单个点颜色

时间:2016-09-22 16:33:20

标签: r highcharts shiny scatter-plot

我试图在高亮闪亮的R中创建一个散点图,但我需要分别为点赋予不同的颜色。例如,考虑以下示例:

library("MASS")

dscars <- round(mvrnorm(n = 20, mu = c(1, 1), Sigma = matrix(c(1,0,0,1),2)), 2)


highchart() %>%
  hc_chart(type = "scatter", zoomType = "xy") %>% 
  hc_tooltip(
    useHTML = TRUE,
    pointFormat = paste0("<span style=\"color:{series.color};\">{series.options.icon}</span>",
                         "{series.name}: <b>[{point.x}, {point.y}]</b><br/>")
  ) %>% 
  hc_add_series(data = list.parse2(as.data.frame(dscars)),
                marker = list(symbol = fa_icon_mark("car")),
                icon = fa_icon("car"), name = "car") 

我的目标是给这20分,一种独特的颜色。

我尝试设置&#34; fillColor&#34;在标记列表内部以及定义系列的颜色,两者都有20种颜色的矢量,但我没有成功。

任何人都能给我一个提示吗? 谢谢

2 个答案:

答案 0 :(得分:0)

这是你想要的吗?

rm(list = ls())
library(highcharter)
library(MASS)
dscars <- data.frame(round(mvrnorm(n = 20, mu = c(1, 1), Sigma = matrix(c(1,0,0,1),2)), 2))

highchart() %>%
  hc_chart(type = "scatter", zoomType = "xy") %>% 
  hc_tooltip(
    useHTML = TRUE,
    pointFormat = paste0("<span style=\"color:{colorByPoint:true};\">{series.options.icon}</span>",
                         "{series.name}: <b>[{point.x}, {point.y}]</b><br/>")
  ) %>% 
  hc_add_series(data = list.parse2(as.data.frame(dscars)),colorByPoint = TRUE,
                marker = list(symbol = fa_icon_mark("car")),
                icon = fa_icon("car"), name = "car") 

enter image description here

答案 1 :(得分:0)

在highcharts(高图)中,该点可以作为其他参数给出,与x和y相同。首先是

library("MASS")

dscars <- round(mvrnorm(n = 20, mu = c(1, 1), Sigma = matrix(c(1,0,0,1),2)), 2)
dscars <- as.data.frame(dscars)
names(dscars) <- c("x", "y") # it's better give a named list IMHO
dscars$color <- colorize(1:nrow(dscars))

colorize是一个在给定其他向量的情况下创建颜色向量的函数。在这种情况下,输入向量是一个序列(不重复),因此输出将是不同的颜色。但如果你想要你可以使用自己的颜色。

highchart() %>%
 hc_chart(type = "scatter", zoomType = "xy") %>% 
 hc_tooltip(
   useHTML = TRUE,
   pointFormat = paste0("<span style=\"color:{point.color};\">{series.options.icon}</span>",
                     "{series.name}: <b>[{point.x}, {point.y}]</b><br/>")
  ) %>%
  hc_add_series(data = list_parse(dscars),
              marker = list(symbol = fa_icon_mark("car")),
              icon = fa_icon("car"), name = "car") 

注意我们使用了:

    在poinFormat中
  • color:{point.color};,因为每个点在颜色访问器中都有自己的颜色。
  • 我使用了list_parse来解析命名列表中的数据框而不是未命名的列表,因此highcharts了解如何使用数据。对于旧版本的highcharts,list_parselist.parse3相同。

希望它有所帮助。enter image description here