在香草R中,从barplot
文件中的单个矢量/列创建.csv
没问题:
msgs <- read.csv(file = "C:/my/csv/file.csv", header = TRUE, sep = ",")
barplot(table(msgs$Author))
此代码产生以下barplot
:
尽管如此,我很难用ggplot2
软件包来复制它。要使用qplot()
进行操作,此代码可以正常工作:
qplot(as.factor(msgs$Author), geom="bar")
但是我需要它作为ggplot()
,我似乎无法使它工作。我尝试过:
ggplot() +
aes(table(msgs$Author)) +
geom_bar(stat = "identity", width = .75, ill = "tomato3")
(根本不起作用)和
ggplot(msgs, aes(x = Author, y = Timestamp)) +
geom_bar(stat = "identity", width = .75, fill = "tomato3")
上面的代码段确实显示正确的结果
但是y轴全错了。我不希望时间戳记为y轴,而是让每个作者在向量/列中显示的时间。
我真的找不到一种为ggplot()
提供单个列或向量的方法。你们任何人都可以帮我吗?
编辑:以下数据可用于复制我的数据集。它不是确切的值,但只需要格式即可。
Timestamp,Author
1534334332013,user1
1534334331252,user2
1534333113577,user2
1534333112754,user3
1529160743306,user4
1528886271012,user3
1528886269171,user5
1528886261391,user5
1526477321297,user5
1526477320773,user4
答案 0 :(得分:2)
我产生了类似的例子:
xxx <- rpois(1000, 10)
xtable <- table(xxx)
ggplot(data = NULL, aes(x = as.numeric(names(xtable)), y = as.numeric(xtable))) +
geom_bar(stat = "identity", width = .75)
这应该为您提供正确的答案。
答案 1 :(得分:2)
如果您只是放弃geom_bar
的美感,y
层将为您计算观察值。例如
ggplot(msgs, aes(Author)) + geom_bar()
经过测试
msgs <- read.csv(text="Timestamp,Author
1534334332013,user1
1534334331252,user2
1534333113577,user2
1534333112754,user3
1529160743306,user4
1528886271012,user3
1528886269171,user5
1528886261391,user5
1526477321297,user5
1526477320773,user4")
生产