R 条形图上的错误条形状不正确

R 条形图上的错误条形状不正确,r,ggplot2,R,Ggplot2,我已经生成了这个图: 但是,我的错误条没有正确定位(见图)。我尝试将fill=RepElement放入ggplot aes,但问题仍然存在。我不确定如何在我的图表上正确定位这些错误条。有人知道我做错了什么吗 # Ggplot Code pd <- peak_intersect_rep_elements_means %>% mutate(Antibody = factor(Antibody, sample_order)) %>% select(Sample,

我已经生成了这个图:

但是,我的错误条没有正确定位(见图)。我尝试将fill=RepElement放入ggplot aes,但问题仍然存在。我不确定如何在我的图表上正确定位这些错误条。有人知道我做错了什么吗

# Ggplot Code

    pd <- peak_intersect_rep_elements_means %>%
  mutate(Antibody = factor(Antibody, sample_order)) %>%
  select(Sample, Mean_Alu_frac, 
         Mean_L1_frac, Antibody, CellLine, SD_Alu_frac, SD_L1_frac) %>%
  gather(RepElement, Frac, -Sample, -Antibody, 
         -CellLine, -SD_Alu_frac, -SD_L1_frac)

pd <- pd %>%
  gather(SdElement, FracSD, -RepElement, -Frac,-Sample, -Antibody, 
         -CellLine)

pd %>%
  ggplot(aes(Antibody, Frac, fill = RepElement)) +
  facet_wrap(~CellLine, scales = 'free_x') +
  geom_bar(stat = "identity", position = "dodge", size = 0.1,
           aes(fill = RepElement,
               color = Sample)) +
  geom_errorbar(aes(ymin=Frac - FracSD , ymax=Frac + FracSD), width=.3,
                position=position_dodge(.9)) +
  #theme(axis.text.x = element_text(angle = 45, hjust=1)) +
  scale_color_manual(values = c("ADAR062" = "black", "ADAR112" = "black",
                                 "ADAR004" = "black")) +
  #scale_fill_manual(values = c("Alu" = "#125863",
  #                             "L1" =  "#2BA8B3")) +
  scale_fill_manual(values = c("Mean_Alu_frac" = "#125863",
                               "Mean_L1_frac" =  "#2BA8B3")) +
  scale_y_continuous(labels = scales::percent) +
  guides(color = F) +
  theme_minimal() +
  labs(y = '', x = '', color = '', fill = 'Rep element',
       title = "Intersection of ADAR1 IP peaks and repetetive elements") + 
  NULL
#Ggplot代码
pd%
突变(抗体=因子(抗体,样本顺序))%>%
选择(样本、平均值、分数、,
平均值L1 frac,抗体,细胞系,SD Alu frac,SD L1 frac)%>%
收集(重复元素、碎片、样本、抗体、,
-单元线,-SD\U Alu frac,-SD\U L1\U frac)
pd%
聚集(元素、分形、重复元素、分形、样本、抗体、,
-(手机线)
pd%>%
ggplot(aes(抗体、分形、填充=重复元素))+
小平面包裹(~细胞线,刻度='free_x')+
几何图形条(stat=“identity”,position=“dodge”,size=0.1,
aes(填充=重复元素,
颜色=样品)+
几何误差条(aes(ymin=Frac-FracSD,ymax=Frac+FracSD),宽度=0.3,
位置=位置(减淡(.9))+
#主题(axis.text.x=元素\文本(角度=45,hjust=1))+
比例颜色手册(数值=c(“ADAR062”=“黑色”,“ADAR112”=“黑色”,
“ADAR004”=“黑色”))+
#刻度填充手动(数值=c(“Alu”=“#125863”),
#“L1”=“#2BA8B3”))+
刻度填充手册(数值=c(“平均值”=“#125863”),
“平均分数”=“#2BA8B3”))+
比例y连续(标签=比例::百分比)+
导轨(颜色=F)+
主题_极小值()+
实验室(y='',x='',颜色='',填充='代表元素',
title=“ADAR1 IP峰值和重复元素的交点”)+
无效的
Ggplot补充代码
库(tidyverse)
图书馆(平行)
图书馆(devtools)
图书馆(比例尺)
#峰值信息
```{r}
峰值\u相交\u代表\u元素%
突变(Alu_frac=Alu_相交/总峰值,
L1_分数=L1_相交/总峰值)%>%
重命名(平均值=平均值),
平均值(1分=1分)%>%
选择(样本、细胞系、抗体、平均值、平均值)%>%
变异(SD\U Alu\U frac=0,SD\U L1\U frac=0)
峰值相交代表元素。exp3%
过滤器(样本==“ADAR004”)%>%
突变(Alu_frac=Alu_相交/总峰值,
L1_分数=L1_相交/总峰值)%>%
分组依据(样本、细胞系、抗体)%>%
总结(平均值=平均值),
平均值=平均值(L1分数),
SD_-Alu-frac=SD(Alu-frac),
SD_L1_分形=SD(L1_分形))

峰值相交表示下面的元素是你想要的。我使用了
pivot\u longer
(较新版本的
gather
)来收集正确的SD和均值。在绘图中,我将
color=Sample
添加到
ggplot()
调用中,以确保
position=“dodge”
避开不同的错误条

pd <- peak_intersect_rep_elements_means %>%
  mutate(Antibody = factor(Antibody, sample_order)) %>%
  select(Sample, Mean_Alu_frac, 
         Mean_L1_frac, Antibody, CellLine, SD_Alu_frac, SD_L1_frac)

pd <- pd %>% 
  pivot_longer(ends_with("_frac"),
               names_pattern = "(.*)_(.*)_frac",
               names_to = c(".value", "metric"))

pd %>%
  ggplot(aes(Antibody, Mean, fill = metric, color = Sample)) +
  facet_wrap(~CellLine, scales = 'free_x') +
  geom_bar(stat = "identity", position = "dodge", size = 0.1) +
  geom_errorbar(aes(ymin=Mean - SD , ymax=Mean + SD), width=.3,
                position=position_dodge(.9)) +
  scale_color_manual(values = c("ADAR062" = "black", "ADAR112" = "black",
                                "ADAR004" = "black")) +
  scale_fill_manual(values = c("Alu" = "#125863",
                               "L1" =  "#2BA8B3")) +
  scale_y_continuous(labels = scales::percent) +
  guides(color = F) +
  theme_minimal() +
  labs(y = '', x = '', color = '', fill = 'Rep element',
       title = "Intersection of ADAR1 IP peaks and repetetive elements")
pd%
突变(抗体=因子(抗体,样本顺序))%>%
选择(样本、平均值、分数、,
平均值(1分,抗体,细胞系,SD分,SD分)
pd%
枢轴长度(以(“\u frac”)结束),
names_pattern=“(.*)Ufrac”(.*)”,
名称_to=c(“.value”,“metric”))
pd%>%
ggplot(aes(抗体、平均值、填充=公制、颜色=样品))+
小平面包裹(~细胞线,刻度='free_x')+
几何图形条(stat=“identity”,position=“dodge”,size=0.1)+
几何误差条(aes(ymin=平均值-SD,ymax=平均值+SD),宽度=.3,
位置=位置(减淡(.9))+
比例颜色手册(数值=c(“ADAR062”=“黑色”,“ADAR112”=“黑色”,
“ADAR004”=“黑色”))+
刻度填充手动(数值=c(“Alu”=“#125863”),
“L1”=“#2BA8B3”))+
比例y连续(标签=比例::百分比)+
导轨(颜色=F)+
主题_极小值()+
实验室(y='',x='',颜色='',填充='代表元素',
title=“ADAR1 IP峰值和重复元素的交点”)

如果你也将
position=“dodge”
添加到你的
geom\u errorbar
调用中,它是否有效?嗨,巴斯,刚刚尝试了一下,position=“dodge”更改了错误条的位置,但它们仍然漂浮在错误条上方,如上图所示。你确定
ymin=Frac+SD\u Alu\u Frac,ymax=Frac+SD\u L1\u Frac
正确吗?难道你不想减去标准差得到
ymin
,而不是把它加起来吗?我不确定它们是正确的。我试着从ymin中减去,但仍然遇到同样的问题。我想这就是问题所在。仔细检查是否从正确的
Frac
中减去正确的
SD
。我想您可能还需要收集SD列。谢谢!这正是我需要的,你今天救了我。与我之前的代码相比,这段代码更加直观。我从中学到了很多。很棒的东西,很乐意帮忙
pivot\u longer
pivot\u wide
功能非常强大,但学习起来可能有点棘手。如果这个答案回答了你的问题,你能接受吗?
pd <- peak_intersect_rep_elements_means %>%
  mutate(Antibody = factor(Antibody, sample_order)) %>%
  select(Sample, Mean_Alu_frac, 
         Mean_L1_frac, Antibody, CellLine, SD_Alu_frac, SD_L1_frac)

pd <- pd %>% 
  pivot_longer(ends_with("_frac"),
               names_pattern = "(.*)_(.*)_frac",
               names_to = c(".value", "metric"))

pd %>%
  ggplot(aes(Antibody, Mean, fill = metric, color = Sample)) +
  facet_wrap(~CellLine, scales = 'free_x') +
  geom_bar(stat = "identity", position = "dodge", size = 0.1) +
  geom_errorbar(aes(ymin=Mean - SD , ymax=Mean + SD), width=.3,
                position=position_dodge(.9)) +
  scale_color_manual(values = c("ADAR062" = "black", "ADAR112" = "black",
                                "ADAR004" = "black")) +
  scale_fill_manual(values = c("Alu" = "#125863",
                               "L1" =  "#2BA8B3")) +
  scale_y_continuous(labels = scales::percent) +
  guides(color = F) +
  theme_minimal() +
  labs(y = '', x = '', color = '', fill = 'Rep element',
       title = "Intersection of ADAR1 IP peaks and repetetive elements")