将 gvisLineChart 图创建为离散散点图

Creating a gvisLineChart plot as a discrete Scatter chart

我正在尝试创建一个散点图,其中 x 轴的输入数据是基于字符串的。 gvisScatterChart 不支持这种数据类型,我已经实现了 gvisLineChart

问题是数据是用每个数据绘制的,每个数据都有一个单独的 x 轴位置,我希望这些点是离散的,对于相等的字符串只有一个 x 轴位置。

有什么解决办法吗?我提供了一个最小的绘图示例。它用于 Shiny 应用程序,但问题出在绘图上。

我已直接从 R 更新最小示例以使其正常工作。日期只是一个例子,数据输入是字符串类型。 (因此,仅使其适用于日期是不够的。

require(googleVis)

dataPlot <- data.frame(date = c("03/03/2015","03/03/2015",
                                "06/03/2015","06/03/2015","09/03/2015"), 
                       results = rnorm(5), results.html.tooltip = rnorm(5))

line <- gvisLineChart(dataPlot, xvar="date", yvar=c("results","results.html.tooltip"),
                 options=list(legend="none",
                              lineWidth=0,
                              pointSize=8,
                              width=400, 
                              height=400))

plot(line)

我通过正确调整数据并按日期拆分来解决了这个问题。然而,这还没有解决我的工具提示问题。这是我的解决方案:

cbind.fill <- function(...){
  nm <- list(...) 
  nm<-lapply(nm, as.matrix)
  n <- max(sapply(nm, nrow)) 
  do.call(cbind, lapply(nm, function (x) 
    rbind(x, matrix(, n-nrow(x), ncol(x))))) 
}

dataPlot <- data.frame(xdata = sort(unique(dataPlot$date)),
                     ydata = t(do.call(cbind.fill,
                                    lapply(split(dfin,dfin$dut),
                                           "[",c("results")))),
                     row.names = NULL)