繁体   English   中英

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

[英]Highchart shiny R scatter plot - how to define individual point colors

我试图在highcharts闪亮的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点独特的颜色。

我试图在标记列表中设置“fillColor”以定义系列的颜色,两者都有20种颜色的矢量,但我没有成功。

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

这是你想要的吗?

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") 

在此输入图像描述

在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") 

注意我们用过:

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

希望能帮助到你。 在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM