0

我有一个包含 3 个离散变量和自变量的数据框。这些变量相互组合,组合的结果为每个集合生成一个值(连续和数值因变量)。到目前为止,我还无法在单个图中表示此结果。

我已经尝试过制作曲面图,但这种类型的图只允许 2 个自变量和一个因变量。我也尝试制作一个三元图,但这种图的轴是固定的,不允许离散变量。

有没有人对此有任何建议或想法?我更喜欢使用 ggplot2 包进行绘图,但也欢迎使用其他包。

library(ggplot2)
library(ggtern)

Factor1 <- c('A', 'B')
Factor2 <- c('M', 'N', 'O')
Factor3 <- c('V1', 'V2', 'V3')

DF <- expand.grid(Factor1 = Factor1,
                  Factor2 = Factor2,
                  Factor3 = Factor3)

DF$Result <- runif(n =18,
                   min = 0,
                   max = 100)

# Surface plot
ggplot(data = DF,
       aes(x = Factor1,
           y = Factor2,
           fill = Result)) +
  geom_tile()

# Ternary plot (not run)
ggtern(data = DF,
       aes(x = Factor1,
           y = Factor2,
           z = Factor3)) +
  geom_point(aes(color = Result))

在此处输入图像描述

4

1 回答 1

1

这个怎么样?

library(tidyverse)

Factor1 <- c('A', 'B')
Factor2 <- c('M', 'N', 'O')
Factor3 <- c('V1', 'V2', 'V3')

DF <- expand.grid(Factor1 = Factor1,
                  Factor2 = Factor2,
                  Factor3 = Factor3)

DF$Result <- runif(n =18,
                   min = 0,
                   max = 100)

DF %>%
  unite(Factor1, Factor2, Factor3, col = "factor") %>%
  bind_cols(DF %>% select(-Result)) %>%
  arrange(Result) %>%
  {.x <- .; .x %>% mutate(factor = factor %>% factor(levels = .x$factor))} %>%
  ggplot(aes(factor, Result, color = Factor1, shape = Factor2)) +
  geom_point(size = 5) +
  coord_flip()


DF %>%
  arrange(Factor1, Factor2, Factor3) %>%
  ggplot(aes(Factor1, Result, color = Factor2)) +
  geom_point(size = 5, position = position_dodge(width = 0.2)) +
  coord_flip()

reprex 包于 2021-10-05 创建(v2.0.1)

于 2021-10-05T13:03:56.313 回答