我正在尝试在我的 ggplot 中的 y 轴上使用参与者记录 ID。记录 ID 会跳来跳去(例如 1、3、10、100)。我的问题有三个方面:
我想在 y 轴上显示每个 ID,但是当我转换为
as.numeric(as.character(record_id)))
时,轴是有序的但没有' 考虑到记录 ID 会跳过。如果我转换为 as.character,这是正确的概念,但我不知道如何排序,所以它不会显示为 1、10、100、3,即使在使用
str_order 时也是如此
。到目前为止,使用
ggplot(sincevax_reshape, aes(x=value, y=as.character(sort(as.numeric(record_id)))))
让我看到了 y轴,但不是正确的排序。一旦我获得要在 Y 轴上正确排序的记录 ID,是否有办法增加每个记录 ID 之间的垂直间距以使 Y 轴不那么拥挤/聚集?
record_id variable value
6 10 Sample -182
7 11 Sample -233
14 21 Sample -189
16 23 Sample -232
17 24 Sample -214
21 30 Sample -197
23 32 Sample -133
24 33 Sample -203
28 39 Sample -165
29 41 Sample -226
1105 3 Today 106
1106 4 Today 163
1107 6 Today 79
1108 7 Today 113
1109 9 Today 133
1110 10 Today 177
1111 11 Today 118
最佳答案
您可以尝试将数字转换为因子:
library(ggplot2)
df$record_id <- factor(df$record_id, levels = df$record_id)
ggplot(df, aes(x = value, y = record_id)) +
geom_col()
由 reprex package 创建于 2021-08-17 (v2.0.0)
使用的数据
df <- structure(list(record_id = c(10L, 11L, 21L, 23L, 24L, 30L, 32L,
33L, 39L, 41L), variable = c("Sample", "Sample", "Sample", "Sample",
"Sample", "Sample", "Sample", "Sample", "Sample", "Sample"),
value = c(-182L, -233L, -189L, -232L, -214L, -197L, -133L,
-203L, -165L, -226L)), class = "data.frame", row.names = c("6",
"7", "14", "16", "17", "21", "23", "24", "28", "29"))
关于r - 在ggplot中对Y轴上的不完整数值字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68820920/