r - ggplot R中叠加散点图中的色点
问题描述
以这个小标题为例:
tibble(
groups = c("a","b","c","d","e"),
grade1 = c(510,405,308,201,99),
grade2 = c(520,430,300,190,110),
grade3 = c(530,410,320,210,105)
)
如何使用 geom_point 根据等级 # 为点着色?我试过这样绘制它......
ggplot(aes(x=groups)) +
geom_point(aes(y=grade1))+
geom_point(aes(y=grade2))+
geom_point(aes(y=grade3))
...andcolor="red"
或任何其他颜色总是会导致相同的橙色阴影。
解决方案
最好的方法是以更长的格式重塑你的数据框(这里我使用包中的pivot_longer
函数tidyr
):
library(tidyr)
library(dplyr)
df %>% pivot_longer(.,- groups, names_to = "var", values_to = "val")
# A tibble: 15 x 3
groups var val
<chr> <chr> <dbl>
1 a grade1 510
2 a grade2 520
3 a grade3 530
4 b grade1 405
5 b grade2 430
6 b grade3 410
7 c grade1 308
8 c grade2 300
9 c grade3 320
10 d grade1 201
11 d grade2 190
12 d grade3 210
13 e grade1 99
14 e grade2 110
15 e grade3 105
然后要获取图表,您可以简单地执行以下操作:
library(dplyr)
library(ggplot2)
library(tidyr)
df %>% pivot_longer(.,- groups, names_to = "var", values_to = "val") %>%
ggplot(aes(x= groups, y = val, color = var))+
geom_point()
您可以使用scale_color_manual
函数控制使用的颜色模式
推荐阅读
- excel - VBA Excel-根据用户输入将单元格值和相关行放入另一个工作表中
- elasticsearch - PostgreSQL 过滤查询到 Elasticsearch 查询
- ravendb - RavedDB“外部连接”
- javascript - NodeJS - 使用 80 以外的其他端口进行公共访问
- java - tess4J 应用程序的 JUnit 测试
- python - Tensorboard python 应用程序中的投影仪
- ios - AVVideoComposition、CIFilter、CIImage 的 iOS 视频过滤器非常慢
- gatt - Movesense 直接访问 GATT 端点
- django - 如何自动初始化 Django 模型中的字段?
- azure - 修复在 Microsoft Azure 中作为 SSO 登录的应用程序会话超时