ggplot 和 ggvis 用于 R 中的数字向量

ggplot and ggvis for numeric vector in R

我有一个数值向量 counts,它存储来自几个 table list 的列的总计数。

所以 head(counts) 给出:

head(counts)
## [1] 1000 1000   40 1000 1000  624

1000 是 table1 的值,1000 是 table2 的值,40 是 table3 的值,依此类推。

head(list)给出:

head(list)
## [1] "table1"        "table2"    "table3"
## [4] "table"         "table"     "table6"

当我这样做时 barplot(counts) 我得到了一个条形图。但我无法使用 ggvisggplot 绘制条形图。对于 ggplot,我收到此错误:

ggplot2 doesn't know how to deal with data of class numeric.  

所以我将它转换为 data.frame 并将其存储为一个新变量:

newdata <- data.frame(counts,list)

当我这样做时 head(newdata) 我得到了这个:

##   counts             list
## 1   1000             table1
## 2   1000             table2
## 3     40             table3

但是当我尝试使用 ggvis 绘制条形图时出现错误:

ggvis(newdata, props(x = ~list, y = ~counts, y2 = 0)) +
  mark_rect(props(width := 10))
error in new_prop.default... : unknown input to pro: list(property = "x" ...)

如果我绘制一个 ggplot ggplot(newdata, aes(x = list, y = counts)),我会得到一个空白图表。有什么想法吗?

条形图 ggplot

library(ggplot2)
ggplot(newdata, aes(x = list, y = counts)) + geom_bar(stat = "identity")

条形图与 ggvis

library(ggvis)
newdata %>% ggvis(~list, ~counts) %>% layer_bars()