R 中的条形图与 ggplot2
BarGraph in R with ggplot2
我有一个词频向量(简短摘录:)
head(goeth.sorted.freq.list,10)
goeth.text.vector
und der die ihr das ein was es euch man
35 24 23 20 16 15 13 12 12 12
我用命令绘制的条形图:
barplot(head(goeth.sorted.freq.list,10), width=100, las=2, col=rainbow(15))
由于 barplot 的图片质量在涉及到更高的宽度(更多的列)时变得非常糟糕,我想做完全相同的事情 ggplot2
。但是我找不到解决方案,因为我不知道这里介绍的其他解决方案如何适应我的问题。 ggplot2
总是给我答案:
ggplot2 doesn't know how to deal with data of class array
(没关系,我试哪个命令,我的命令都是错误的)
有没有更好的方法来获取 jpegs
或 png
图片,我应该只需要 ggplot2
用于 jpegs/pngs
因为情节很好?
使用数据框而不是数组,使用 "identity" 统计数据而不是 bin,你应该没问题,下面的例子应该有效:
library(ggplot2)
vec <- c(35,24,23,20,16,15,13,12,12,12)
names(vec)<- c("und","der","die","ihr","das","ein","was","es","euch","man")
ggplot(data.frame(names=names(vec), freq=vec), aes(x=names, y=freq))+geom_bar(stat="identity")
您可能会看到 ggplot 在该图中默认使用字典顺序。你可以通过改变 x-Aesthetics 的因子水平来改变单词出现的顺序。所以假设你的向量已经被排序,并且名称的顺序在图中应该是相同的那么你需要这样做:
ggplot(data.frame(names=factor(names(vec), levels=names(vec)), freq=vec), aes(x=names, y=freq))+geom_bar(stat="identity")
产生以下情节
我有一个词频向量(简短摘录:)
head(goeth.sorted.freq.list,10)
goeth.text.vector
und der die ihr das ein was es euch man
35 24 23 20 16 15 13 12 12 12
我用命令绘制的条形图:
barplot(head(goeth.sorted.freq.list,10), width=100, las=2, col=rainbow(15))
由于 barplot 的图片质量在涉及到更高的宽度(更多的列)时变得非常糟糕,我想做完全相同的事情 ggplot2
。但是我找不到解决方案,因为我不知道这里介绍的其他解决方案如何适应我的问题。 ggplot2
总是给我答案:
ggplot2 doesn't know how to deal with data of class array
(没关系,我试哪个命令,我的命令都是错误的)
有没有更好的方法来获取 jpegs
或 png
图片,我应该只需要 ggplot2
用于 jpegs/pngs
因为情节很好?
使用数据框而不是数组,使用 "identity" 统计数据而不是 bin,你应该没问题,下面的例子应该有效:
library(ggplot2)
vec <- c(35,24,23,20,16,15,13,12,12,12)
names(vec)<- c("und","der","die","ihr","das","ein","was","es","euch","man")
ggplot(data.frame(names=names(vec), freq=vec), aes(x=names, y=freq))+geom_bar(stat="identity")
您可能会看到 ggplot 在该图中默认使用字典顺序。你可以通过改变 x-Aesthetics 的因子水平来改变单词出现的顺序。所以假设你的向量已经被排序,并且名称的顺序在图中应该是相同的那么你需要这样做:
ggplot(data.frame(names=factor(names(vec), levels=names(vec)), freq=vec), aes(x=names, y=freq))+geom_bar(stat="identity")
产生以下情节