gpt4 book ai didi

r - 如何在 r 中制作多个图,每个需要与另一个创建坐标的向量一个?

转载 作者:行者123 更新时间:2023-12-04 08:01:06 25 4
gpt4 key购买 nike

所以,我有一个有序列表,例如:
(1, 2, 3, 4, 5, 6, 7, 8)
然后我有多个排列,比如:
(3, 2, 5, 4, 1, 6, 7, 8),
(7, 2, 4, 1, 3, 5, 8, 6),
...
现在,我需要使用相同的有序列表分别绘制每个排列(在新图中),以便形成坐标散点图。

  • 所以,对于第一个排列,我需要绘制 (1,3), (2,2), (3,5), (4,4), ...
  • 对于第二个排列,我需要绘制 (1,7), (2,2), (3,4), (4,1), ...

  • 像这样的东西:
    Example, where 'a' is the ordered list and 'b' is the first permutation
    我为一对夫妇 + 排列对创建了这个,但我不知道如何用多个排列来缩放它。我每次只是手动替换排列,但这样需要很长时间:
    library(tidyverse)

    ordered <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
    permutation <- c(5, 7, 8, 6, 9, 4, 1, 3, 2)

    coord.permutations <- data.frame(ordered,permutation)

    ggplot(data=coord.permutations)+
    geom_point(aes(ordered,permutation,size=3))+
    scale_x_continuous(breaks = seq(0,(length(ordered)+1)), minor_breaks = seq(0,(length(ordered)+1)), expand = c(0,0), limits= c(0,(length(ordered)+1)))+
    scale_y_continuous(breaks = seq(0,(length(ordered)+1)), minor_breaks = seq(0,(length(ordered)+1)), expand = c(0,0), limits= c(0,(length(ordered)+1)))+
    coord_fixed()
    在此先感谢您的帮助!

    最佳答案

    假设您已将排列保存在列表中 coord.permutations ,然后您可以使用 map 遍历此列表并将每个图也保存在列表中。

    library(tidyverse)
    coord.permutations <- list(c(5, 7, 8, 6, 9, 4, 1, 3, 2), c(2, 9, 1, 6, 5, 4, 7, 3, 8))
    plots <- map(coord.permutations, ~ggplot(tibble(ordered, permutation=.))+
    geom_point(aes(ordered,permutation,size=3))+
    coord_fixed())
    plots[[1]]
    enter image description here
    使用 10 个排列的动画
    library(gganimate)
    ggplot(data.frame(ordered = rep(ordered, 10), permutation = unlist(map(1:10, ~sample(1:10, 9))), n_per = rep(1:10, each=9))) +
    geom_point(aes(ordered,permutation)) +
    transition_states(n_per, transition_length = 2, state_length = 1) +
    ggtitle('Permutation {closest_state}')
    enter image description here

    关于r - 如何在 r 中制作多个图,每个需要与另一个创建坐标的向量一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66465097/

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