R 使用ggplot使用单个向量创建条形图

R 使用ggplot使用单个向量创建条形图,r,ggplot2,R,Ggplot2,从.csv文件中的单个向量/列创建条形图在R中没有问题: msgs <- read.csv(file = "C:/my/csv/file.csv", header = TRUE, sep = ",") barplot(table(msgs$Author)) 但我需要它作为一个情节,我似乎无法使工作。我试过: ggplot() + aes(table(msgs$Author)) + geom_bar(stat = "identity", width = .75, ill = "tom

从.csv文件中的单个向量/列创建条形图在R中没有问题:

msgs <- read.csv(file = "C:/my/csv/file.csv", header = TRUE, sep = ",")

barplot(table(msgs$Author))
但我需要它作为一个情节,我似乎无法使工作。我试过:

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

我制作了类似的例子:

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)

这应该会给您提供正确的答案。

我提供了类似的示例:

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)
这将为您提供正确的答案。

如果您不使用y轴,geom_bar图层将为您计算观察值。比如说

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")
产生

如果您不使用y轴,geom_bar层将为您计算观察值。比如说

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")
产生


你能提供一份输出样品吗?我发布的图片是否不令人满意?编辑:我看到图像的格式很差。现在已经解决了。您应该提供一个可复制的数据示例,以便我们可以复制您的代码。我已经添加了一个数据集版本,可以用来复制数据集。我无法共享确切的数据集,因为它包含个人信息。ggplotdata=msgs,aesx=Author+geom_bar应该足够了。geom_bar用于数据尚未聚合为计数时,但高度应表示变量的频率计数。如果您已经有频率计数,请使用geom_col。您能提供输出样本吗?输出样本?我发布的图片是否不令人满意?编辑:我看到图像的格式很差。现在已经解决了。您应该提供一个可复制的数据示例,以便我们可以复制您的代码。我已经添加了一个数据集版本,可以用来复制数据集。我无法共享确切的数据集,因为它包含个人信息。ggplotdata=msgs,aesx=Author+geom_bar应该足够了。geom_bar用于数据尚未聚合为计数时,但高度应表示变量的频率计数。如果您已经有了频率计数,请使用geom_col。通过稍微调整答案以考虑字符串的大小,我使其工作。谢谢通过稍微调整答案以将字符串的大小考虑在内,我使它工作起来。谢谢