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)
我得到了一个条形图。但我无法使用 ggvis
或 ggplot
绘制条形图。对于 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()
我有一个数值向量 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)
我得到了一个条形图。但我无法使用 ggvis
或 ggplot
绘制条形图。对于 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()