r - 使用 ggplot 创建具有单个向量的条形图
问题描述
barplot
从文件中的单个向量/列创建 a.csv
在 vanilla R 中没有问题:
msgs <- read.csv(file = "C:/my/csv/file.csv", header = TRUE, sep = ",")
barplot(table(msgs$Author))
此代码产生以下内容barplot
:
不过,我很难用这个ggplot2
包来复制它。要使用 a 来执行此操作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轴全错了。我不希望 Timestamp 成为 y 轴,而是每个作者出现在向量/列中的次数。
不过,我真的找不到提供ggplot()
单列或向量的方法。你们中的任何人都可以帮助我吗?
编辑:下面的数据可用于重现我的数据集。这不是确切的值,但格式就是所需要的。
Timestamp,Author
1534334332013,user1
1534334331252,user2
1534333113577,user2
1534333112754,user3
1529160743306,user4
1528886271012,user3
1528886269171,user5
1528886261391,user5
1526477321297,user5
1526477320773,user4
解决方案
如果您不考虑美学,该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")
生产
推荐阅读
- php - 在使用之前检查用户是否拥有项目
- gcc - gcc - -ftest-coverage 是否将检测代码注入输出对象?
- php - PHP - 从表列到数组的值
- matrix - 将 UV 坐标从平面映射到网格上
- python - 返回动态 Python 类的整个嵌套生成的代码
- java - 从 Array Java 字符串中选择短语中的单词
- node.js - @prisma/client 尚未初始化。请运行“prisma generate”并尝试再次导入
- gnupg - gpg:解密失败:没有先加密/解密文件就没有密钥
- java - 为什么阻塞 thenApplyAsync 有效,但不适用于 thenApply
- c - 关于C中递归数据结构的问题