簡體   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