6

rCharts を使用して、標準の Highcharts ツールチップに値を追加したいと思います。コード例:

require(rCharts)
df <- data.frame(x = c(1:5), y = c(5:1), 
             z = c("A", "B", "C", "D", "E"),
             name = c("K", "L", "M", "N", "O"))
h1 <- hPlot(x = "x", y = "y", data = df, type = "scatter", group = "z")

これにより、x 値と y 値を含むツールヒントが生成されます。そしてシリーズ名zをタイトルに。ここで、名前の値をツールチップに追加することも必要です。ただし、これがどのように行われるかはわかりません。

4

2 に答える 2

3

rCharts素晴らしいパッケージです。しかし、まだ十分に文書化されていません (この点を見逃しているかもしれません)。tooltip属性の新しい JS 関数を再定義する必要があると思います。JS リテラルは #! で囲む必要があります。と !# 。ここに始まりがありますが、私が想像するようには機能しません (私は良いスタートだと思います):

h1$tooltip( formatter = "#! function() { return 'x: '     + this.point.x + 
                                                'y: '    + this.point.y  + 
                                                'name: '  + this.point.group; } !#")
于 2013-08-06T18:30:19.537 に答える
1

数年後、私は答えを持っています。

hPlot()これらのラッパー関数は、単純なカスタム フォーマッタ関数を使用しても、追加のツールチップ変数をサポートしていないようです。質問のデータセットに基づいて、以下の実例を参照してください。

require(rCharts)
# create data frame
df <- data.frame(x = c(1:5), y = c(5:1), 
                 z = c("A", "B", "C", "D", "E"),
                 name = c("K", "L", "M", "N", "O"))

# Plot using hPlot() approach
h1 <- hPlot(x = "x", y = "y", data = df, type = "scatter", group = "z")
h1$tooltip(borderWidth=0, followPointer=TRUE, followTouchMove=TRUE, shared = FALSE,
           formatter = "#! function(){return 'X: ' + this.point.x + '<br>Y: ' + this.point.y + '<br>Z: ' + this.point.z + '<br>Name: ' + this.point.name;} !#")
h1

hplot-rcharts

上記の例では、配列内の変数に名前が付けられていないため、ツールチップは機能しません。を参照してくださいstr(h1)

# Plot using manual build
h1 <- rCharts:::Highcharts$new()
dlev <- levels(factor(as.character(df$z)))
for(i in 1:length(dlev))
{
  h1$series(data = toJSONArray2(df[df$z==dlev[i],,drop=F], json = F,names=T), name = dlev[i],type = c("scatter"), marker = list(radius = 3))
}
h1$tooltip(borderWidth=0, followPointer=TRUE, followTouchMove=TRUE, shared = FALSE,
           formatter = "#! function(){return 'X: ' + this.point.x + '<br>Y: ' + this.point.y + '<br>Z: ' + this.point.z + '<br>Name: ' + this.point.name;} !#")
h1

manual-build-rcharts

これが機能するのは、配列変数names=Th1$series.... を参照してくださいstr(h1)

この種のツールチップの問題は解決しますが、名前付き配列には他の問題がある可能性があります。たとえば、光沢のあるアプリ環境で問題が発生します。hPlot()が名前付き配列を使用しない理由があるに違いありません。

于 2016-01-07T10:45:52.717 に答える