Saya memiliki dataset yang memiliki kolom grup dan kolom estimasi parameter untuk grup itu. Saya ingin merencanakan estimasi dan CIS pada YAXIS, dan memiliki baris terpisah untuk setiap kelompok dan perkiraan parameter ....

1
user44796 5 April 2021, 18:03

2 jawaban

Jawaban Terbaik

Saya harap saya telah memahami ini dengan benar, tolong tambahkan komentar untuk mengklarifikasi apakah ini tidak terjadi.

Salah satu solusi adalah menggunakan segi untuk memisahkan plot baris. Untuk melakukan ini, saya telah menggunakan fungsi facet_wrap() untuk memisahkan grup 2 yang berbeda dan mengatur sumbu Y untuk menggunakan grup 1 yang berbeda.

library(tidyverse)

group1 = c(rep("A",3),rep("B",3),rep("C",3))
group2 = c(rep(c("param1","param2","param3"),3))
est = rnorm(9,mean = 0, sd = 1)
lwr = est - sd(est)
upr = est + sd(est)

df = data.frame(group1,group2,est,lwr,upr)

# Swapped the x axis to use group1
figure.gg = ggplot(data = df, aes(x = group1, y = est, ymin = lwr, ymax = upr)) +
  geom_point(position = position_dodge(width = 0.5)) +
  geom_errorbar(position = position_dodge(width = 0.5), width = 0.1) +
  coord_flip() +
  # Facet wrapped with one column using group 2s
  facet_wrap(~group2, ncol = 1, strip.position = "right") +
  ylab("estimate")

figure.gg

Dibuat pada 2021-04-05 oleh the paket reprex (v2.0.0)

Atau kita bisa menggunakan pengelompokan sekunder untuk memisahkan entri yang berbeda seperti group = group1 atau colour = group1 yang diatur dalam aes(). Ini disajikan di bawah ini


# Set group 1 as a group in aes
figure.gg = ggplot(data = df, aes(x = group2, group = group1, y = est, ymin = lwr, ymax = upr)) +
  geom_point(position = position_dodge(width = 0.5)) +
  geom_errorbar(position = position_dodge(width = 0.5), width = 0.1) +
  coord_flip() +
  ylab("estimate")

figure.gg


# Set group1 as the colour using aes
figure.gg = ggplot(data = df, aes(x = group2, colour = group1, y = est, ymin = lwr, ymax = upr)) +
  geom_point(position = position_dodge(width = 0.5)) +
  geom_errorbar(position = position_dodge(width = 0.5), width = 0.1) +
  coord_flip() +
  ylab("estimate")

figure.gg

Dibuat pada 2021-04-05 oleh the paket reprex (v2.0.0)

1
Joel Kandiah 5 April 2021, 15:23

Saya pikir ini lebih masuk akal:

ggplot(df1, aes(x=group1, y=est, colour=group2)) + 
  geom_errorbar(aes(ymin=lwr, ymax=upr), position = position_dodge(width = 0.5), width = 0.1) +
  geom_point(position = position_dodge(width = 0.5)) +
  theme_bw()

enter image description here

0
TarJae 5 April 2021, 15:46