2016-09-22 2 views
1

광도가 높은 R ​​차트에 산점도를 만들려고하지만 개별적으로 포인트에 다른 색상을 지정해야합니다. 예를 들어 다음 예제를 고려해보십시오.Highchart shiny 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 색의 벡터를 사용했지만 성공하지 못했습니다.

아무도 내게 힌트를 줄 수 있습니까? 감사합니다.

답변

0

합니다 (highcharter) 포인트는 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에 모든 포인트는 컬러 accesor에서 자신의 색깔이있다 beacuse.
  • 무명 목록 대신 이름이 지정된 목록에서 데이터 프레임을 구문 분석하여 하이 차트가 데이터 사용 방법을 이해하는 데 사용했습니다. list_parselist_parse은 이전 버전의 highcharts에 대해 동일하게 list.parse3입니다.

희망이 있습니다. enter image description here

0

이게 원하는가요? highcharts에서

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

테마의 현재 색상을 사용하는 colorByPoint를주의하십시오. 그래서 현재의 테마의 색상보다 더 많은 포인트가 있으면 반복되는 색상이 나옵니다. – jbkunst

+1

나는 약간의 JS를하고 싶었지만 집에 돌아 가야했다. ( –

+0

@ PorkChop 어떻게 각 점의 색깔을 고를 수 있는가? – hsilva