簡體   English   中英

在ggplot的一個方面內按組分隔geom_linerange

[英]Separate geom_linerange by group within a facet in ggplot

假設我有以下數據:

test = read.table(text = 'condition1 condition2 estimate std_error name
a x .466 .09 name_1
a y .343 .131 name_1
b x .466 .09 name_1
b y .343 .131 name_1
a x .466 .09 name_2
a y .343 .131 name_2
b x .466 .09 name_2
b y .343 .131 name_2', header = T, stringsAsFactors = T)


ggplot(data = test, aes(x = estimate, y = condition1, fill = condition2, group = condition2)) +
    geom_point(color = 'black') +
    geom_linerange(aes(xmin = estimate - std_error,
                       xmax = estimate + std_error), color = 'black') +
    ylab(NULL) +
    facet_grid(name ~ .,
               scales = "free_y",
               space = "free_y",
               switch = 'y')

在此處輸入圖片說明

我試圖分離出xy線作為內單獨的行ba條件within一個給定的小刻面( name_1name_2 )。 但是我的代碼原樣將這兩行作為相同的 y 值,所以它們是重疊的。 分隔線的最佳方法是什么?

根據口味調整width = X

...
 geom_point(color = 'black', position = position_dodge(width = 1)) +
  geom_linerange(aes(xmin = estimate - std_error,
                     xmax = estimate + std_error), color = 'black',
                     position = position_dodge(width = 1)) +
...

在此處輸入圖片說明

或者在這里進行一些更多的美學調整:

ggplot(data = test, aes(x = estimate, y = condition1, fill = condition2, group = condition2)) +
  geom_linerange(aes(xmin = estimate - std_error,
                     xmax = estimate + std_error), color = 'black',
                 position = position_dodge(width = 0.5)) +
  geom_point(color = 'black', size = 2, shape = 21, position = position_dodge(width = 0.5)) +
  ylab(NULL) +
  facet_grid(name ~ .,
             scales = "free_y",
             space = "free_y",
             switch = 'y') +
  theme(panel.grid.major.y = element_blank())

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM