2016-09-22 6 views
1

ハイチャートシャイニーRで散布図を作成しようとしていますが、ポイントに別の色を個別に与える必要があります。たとえば、次の例を考えてみましょう。ハイチャートシャイニー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") 

注:poinFormatで

  • color:{point.color};を、すべての点beacuseはカラーaccesorに独自の色を持っています。
  • 私は0123,を使用しました。これは名前のないリストの代わりに名前付きリストでデータフレームを解析し、ハイチャートはデータの使い方を理解しています。 list_parseは、古いバージョンのハイチャートの場合は同じ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