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

(没关系,我试哪个命令,我的命令都是错误的)

有没有更好的方法来获取 jpegspng 图片,我应该只需要 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")

产生以下情节