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

时间:2016-01-30 06:32:58

标签: r vector ggplot2 numeric ggvis

我有一个数字向量counts,它存储了几个表list中列的总数。

所以head(counts)给出了:

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

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

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)),我会得到一张空白图表。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

带有ggplot

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

enter image description here

带有ggvis

的条形图
library(ggvis)
newdata %>% ggvis(~list, ~counts) %>% layer_bars()

enter image description here