Hier ist die Handlung, die ich machen kann:

data <- data.frame(Patient = rep(seq(1, 5, 1), 2),
                   Treatment = c(rep("Pre", 5), rep("Post", 5)),
                   Gene.1 = c(rnorm(5, 10, 5), rnorm(5, 50, 5)),
                   Gene.2 = c(rnorm(5,10,5), rnorm(5, 10, 5)))

data %>%
  gather(Gene, Levels, -Patient, -Treatment) %>%
  mutate(Treatment = factor(Treatment, levels = c("Pre", "Post"))) %>%
  mutate(Patient = as.factor(Patient)) %>%
  ggplot(aes(x = Treatment, y = Levels, color = Patient, group = Patient)) +
  geom_point() +
  geom_line() +
  facet_wrap(. ~ Gene, scales = "free") +
  theme_bw() +
  theme(panel.grid = element_blank())

Example plot

Die "kostenlose" Waage-Funktion ist wunderbar, ich möchte jedoch diese beiden Angaben / Anpassungen vornehmen:

  1. Yachse beginnt um 0

  2. Erhöhen Sie die obere Y-Grenze um ~ 10%, damit ich einen Platz habe, um später einige Anmerkungen in Photoshop hinzuzufügen (P-Werte usw.).

Eine alternative Strategie könnte sein, um die einzelnen Grundlagen herzustellen und sie zusammen zu montieren, dies wird jedoch mit vielen Facettenelementen etwas langweilig.

1
Daniel Zhang 3 Juni 2021 im 02:35

1 Antwort

Beste Antwort

Erstens braucht Reproduzierbarkeit mit zufälligen Daten einen Samen. Ich habe mit {set.seed(42) angefangen, aber die negativen Werte erzeugten, die völlig unabhängige Warnungen verursachten. Ein bisschen faul zu sein, habe ich den Samen in set.seed(2021) geändert, um alle Positiven zu finden.

Für # 1 können wir limits= hinzufügen, wo die Hilfe für ?scale_y_continuous das sagt

  limits: One of:

            • 'NULL' to use the default scale range

            • A numeric vector of length two providing limits of the
              scale. Use 'NA' to refer to the existing minimum or
              maximum

            • A function that accepts the existing (automatic) limits
              and returns new limits Note that setting limits on
              positional scales will *remove* data outside of the
              limits. If the purpose is to zoom, use the limit argument
              in the coordinate system (see 'coord_cartesian()').

Also verwenden wir c(0, NA).

Für Q2 fügen wir expand= hinzu, dokumentiert an derselben Stelle.

data %>%
  gather(Gene, Levels, -Patient, -Treatment) %>%
  mutate(Treatment = factor(Treatment, levels = c("Pre", "Post"))) %>%
  mutate(Patient = as.factor(Patient)) %>%
  ggplot(aes(x = Treatment, y = Levels, color = Patient, group = Patient)) +
  geom_point() +
  geom_line() +
  facet_wrap(. ~ Gene, scales = "free") +
  theme_bw() +
  theme(panel.grid = element_blank()) +
  scale_y_continuous(limits = c(0, NA), expand = expansion(mult = c(0, 0.1)))

enter image description here

0
r2evans 3 Juni 2021 im 00:28