gpt4 book ai didi

r - 在ggplot中对Y轴上的不完整数值字符串进行排序

转载 作者:行者123 更新时间:2023-12-05 05:57:22 24 4
gpt4 key购买 nike

我正在尝试在我的 ggplot 中的 y 轴上使用参与者记录 ID。记录 ID 会跳来跳去(例如 1、3、10、100)。我的问题有三个方面:

  1. 我想在 y 轴上显示每个 ID,但是当我转换为 as.numeric(as.character(record_id))) 时,轴是有序的但没有' 考虑到记录 ID 会跳过。

  2. 如果我转换为 as.character,这是正确的概念,但我不知道如何排序,所以它不会显示为 1、10、100、3,即使在使用 str_order 时也是如此

    到目前为止,使用 ggplot(sincevax_reshape, aes(x=value, y=as.character(sort(as.numeric(record_id))))) 让我看到了 y轴,但不是正确的排序。

  3. 一旦我获得要在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com