r - 绘制每一行的所有列名的值
问题描述
假设我有以下数据框
observations <- data.frame( "Individuals" = c("Individual1", "Individual2", "Individual3"),
"PresentDay1" = c("0","1","1"),
"PresentDay2" = c("O","1","1"))
我想要做的是在 y 轴上有个人,然后将“PresentDay1”和“PresentDay2”作为我的 x 轴刻度,然后,根据个人是否存在,我有一个黑色或白色的点(1 ) 或不存在 (0)。在给定的一天。
我在 ggplot 上尝试了很多东西,但似乎无法弄清楚如何做到这一点。
非常感谢!
解决方案
为了达到您想要的结果,使用例如将您的数据重塑为长或整齐的格式tidyr::pivor_longer
:
library(ggplot2)
library(tidyr)
observations <- observations %>%
pivot_longer(-Individuals, names_to = "name", values_to = "value")
ggplot(observations, aes(name, Individuals, color = value)) +
geom_point() +
scale_color_manual(values = c("0" = "white", "1" = "black"))
推荐阅读
- python - 在 Jupyter 笔记本中重新加载 Python 模块(不自动重新加载)
- android - 快速启动状态选择后模拟器关闭
- javascript - 在单文件组件方法中使用 vue-styled-components
- ios - 与文本字段的用户默认值比较
- angular - 然后如何以角度2返回Promise的数据
- php - 教义 - 实体侦听器中注入实体之间的区别
- python - 加快python图像颜色阈值/过滤
- javascript - Babel 7 Jest Core JS “TypeError:wks 不是函数”
- bash - 比较文件文件,提示不要求输入
- confluence - 获取匿名空间权限,即使匿名已停用