r - 为ggplot中的行添加标签
问题描述
所以我对 R 或 ggplot 的学习不是很深入,但我在一个正在做一些编码的班级。对于我的一个项目,我试图通过在一些线条上贴标签来超越一点,但我不知道该怎么做。
这是我的代码:
downpp_median <- median(songs$download_pp)
#Create quartile variables
downpp_qone <- quantile(songs$download_pp, 1/4)
downpp_qthree <- quantile(songs$download_pp, 3/4)
#Create Violin Plot
ggplot(songs, aes(x = condition, y = download_pp, fill = condition)) +
geom_violin(alpha = .3) +
#Add log scale on the y-axis
scale_y_log10() +
#Add median line
geom_hline(yintercept = downpp_median, color = "orange") +
#Add quartile lines
geom_hline(yintercept = downpp_qone, color = "purple") +
geom_hline(yintercept = downpp_qthree, color = "purple") +
#Add labels
labs(title = "Average # of Downloads Per User
Against Condition",
x = "Condition",
y = "Downloads",
fill = "Conditions")
我正在尝试在中位数和四分位数线上添加标签,但我不知道该怎么做。如果有人有任何提示,将不胜感激!
解决方案
annotate
您可以使用geom添加这些。您可以向它提供标签在调用中的位置的 x 和 y。下面的例子:
#fake data to test
songs <- data.frame(download_pp = rnorm(100,100,20),
condition = rep(LETTERS[1:5], each = 20))
downpp_median <- median(songs$download_pp)
#Create quartile variables
downpp_qone <- quantile(songs$download_pp, 1/4)
downpp_qthree <- quantile(songs$download_pp, 3/4)
#Create Violin Plot
ggplot(songs, aes(x = condition, y = download_pp, fill = condition)) +
geom_violin(alpha = .3) +
#Add log scale on the y-axis
scale_y_log10() +
#Add median line
geom_hline(yintercept = downpp_median, color = "orange") +
#Add quartile lines
geom_hline(yintercept = downpp_qone, color = "purple") +
geom_hline(yintercept = downpp_qthree, color = "purple") +
annotate(geom = "text", x = "E", y = downpp_median, label = "Median") +
annotate(geom = "label", x = 3, y = downpp_qone, label = "1st Quartile") +
#Add labels
labs(title = "Average # of Downloads Per User
Against Condition",
x = "Condition",
y = "Downloads",
fill = "Conditions")
这有点复杂,因为您使用的condition
是填充,这意味着 x 轴对应于不同的类别。因此,您可以使用要放置的类别的名称(我在代码中放置 E 的位置)或数字(记住每个类别沿 x 轴增加 1)。您还可以指定不同的几何图形。geom="text"
将仅添加文本,而geom="label"
将在框中添加文本。
这是上面的代码创建的内容:
推荐阅读
- c# - 接受 POSTED 文件
- neo4j - 我可以使用 apoc.periodic.updates 来返回查询输出吗?
- google-maps - 无法将图层从 Google Drive 导入到 Google Maps
- c# - 使用 Moq 模拟扩展 IList 的接口
- apache-spark - spark sql 插入 HIVE 外部分区表需要更多时间
- spring-kafka - 从消费者端,是否可以选择使用自定义配置创建主题?
- python - 从没有 OAuth 的公共 Google 日历中获取事件,仅使用 API 密钥?
- python - 用于连续串行数据流的带有烧瓶和 vue 的 Python 套接字
- r - 如何使用 as.formula 和 paste 来形成方程式
- python-3.x - 数据框数据类型冲突...转换