Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2:x轴上带有类别的着色95%CI_R_Ggplot2_Categorical Data_Confidence Interval - Fatal编程技术网

R ggplot2:x轴上带有类别的着色95%CI

R ggplot2:x轴上带有类别的着色95%CI,r,ggplot2,categorical-data,confidence-interval,R,Ggplot2,Categorical Data,Confidence Interval,我有以下情节: 使用此代码创建: ggplot(df, aes(Island, AR, group = Locus, colour = (factor(Type)))) + geom_line(aes(colour = factor(Type), alpha = factor(Type), size = factor(Type))) + scale_alpha_manual(values = c("MS"=0.2, "MT"=0.2, "TLR" = 1), guide = "none") +

我有以下情节:

使用此代码创建:

ggplot(df, aes(Island, AR, group = Locus, colour = (factor(Type)))) + geom_line(aes(colour = factor(Type), alpha = factor(Type), size = factor(Type))) + scale_alpha_manual(values = c("MS"=0.2, "MT"=0.2, "TLR" = 1), guide = "none") + scale_size_manual(values = c("MS"=0.5, "MT"=0.5, "TLR" = 0.3),guide = "none") + xlab("Island") + ylab("Allelic Richness") + scale_x_discrete(labels = c("Santiago", "Fogo", "Sao Nicolau"), limits = c("ST", "FG", "SN")) + geom_point(aes(shape = (factor(Shapetype)))) + scale_shape_manual(values = c(1,2,3,4,5,6,7,8,9,10), breaks=c("TLR1LA","TLR1LB","TLR2A","TLR2B","TLR3","TLR4","TLR5","TLR21", "MS", "MT")) + scale_colour_manual(values = c("Red","Blue","Black"), breaks=c("TLR1LA","TLR1LB","TLR2A","TLR2B","TLR3","TLR4","TLR5","TLR21", "MS", "MT")) + theme_bw() + labs(shape="Functional", colour="Neutral")
ggplot(df, aes(x=Island, y=AR))+ 
stat_summary(geom="ribbon", fun.data=mean_cl_normal, 
             fun.args=list(conf.int=0.95), fill="red", alpha = .1)+
stat_summary(geom="point", fun.y=mean, color="red") + theme_bw() + scale_x_discrete(labels = c("Santiago", "Fogo", "Sao Nicolau"), limits = c("1", "2", "3"))
根据这些数据:

Locus;Island;AR;Type;Shapetype
MS1;ST;4,6315;MS;NA
MS1;FG;3,9689;MS;NA
MS1;SN;3;MS;NA
MS2;ST;2;MS;NA
MS2;FG;2;MS;NA
MS2;SN;2;MS;NA
MS3;ST;7,5199;MS;NA
MS3;FG;5,5868;MS;NA
MS3;SN;3;MS;NA
MS4;ST;2,9947;MS;NA
MS4;FG;3;MS;NA
MS4;SN;2;MS;NA
MS5;ST;9,0726;MS;NA
MS5;FG;5,6759;MS;NA
MS5;SN;2,963;MS;NA
MS6;ST;6,5779;MS;NA
MS6;FG;5,6842;MS;NA
MS6;SN;2;MS;NA
MS7;ST;2;MS;NA
MS7;FG;1;MS;NA
MS7;SN;1;MS;NA
MS8;ST;3,97;MS;NA
MS8;FG;2,9032;MS;NA
MS8;SN;1;MS;NA
MS9;ST;2;MS;NA
MS9;FG;1,9977;MS;NA
MS9;SN;2;MS;NA
MS10;ST;3,9733;MS;NA
MS10;FG;3,9971;MS;NA
MS10;SN;2;MS;NA
MS11;ST;7,4172;MS;NA
MS11;FG;5,6471;MS;NA
MS11;SN;3;MS;NA
MS12;ST;2;MS;NA
MS12;FG;2;MS;NA
MS12;SN;2;MS;NA
MS13;ST;5,6135;MS;NA
MS13;FG;3;MS;NA
MS13;SN;2;MS;NA
MT;ST;12;MT;NA
MT;FG;3;MT;NA
MT;SN;2;MT;NA
TLR1LA;ST;3,68;TLR;TLR1LA
TLR1LA;FG;4,4;TLR;TLR1LA
TLR1LA;SN;1;TLR;TLR1LA
TLR1LB;ST;3,99;TLR;TLR1LB
TLR1LB;FG;5;TLR;TLR1LB
TLR1LB;SN;1;TLR;TLR1LB
TLR2A;ST;4,9;TLR;TLR2A
TLR2A;FG;5;TLR;TLR2A
TLR2A;SN;2;TLR;TLR2A
TLR2B;ST;5,64;TLR;TLR2B
TLR2B;FG;4;TLR;TLR2B
TLR2B;SN;3;TLR;TLR2B
TLR3;ST;1;TLR;TLR3
TLR3;FG;3;TLR;TLR3
TLR3;SN;3;TLR;TLR3
TLR4;ST;1;TLR;TLR4
TLR4;FG;2,89;TLR;TLR4
TLR4;SN;2;TLR;TLR4
TLR5;ST;2,9;TLR;TLR5
TLR5;FG;2;TLR;TLR5
TLR5;SN;2;TLR;TLR5
TLR21;ST;2,91;TLR;TLR21
TLR21;FG;1;TLR;TLR21
TLR21;SN;1;TLR;TLR21
该图是完美的,除了我想将MS数据(仅MS数据)表示为均值+-95%置信区间,CI在x轴上的类别上着色

然而,我认为我的问题是,x轴是绝对的,所以我不能做阴影区域。x轴上的类别也代表一个数字差异,这意味着它们实际上有一个方向,因此对于我的数据来说,按照我所描述的绘制是有意义的,我只是找不到解决方案

如果我将类别(ST、FG、SN)更改为数字(1,2,3):

我能很近地找到一些东西:

使用此代码:

ggplot(df, aes(Island, AR, group = Locus, colour = (factor(Type)))) + geom_line(aes(colour = factor(Type), alpha = factor(Type), size = factor(Type))) + scale_alpha_manual(values = c("MS"=0.2, "MT"=0.2, "TLR" = 1), guide = "none") + scale_size_manual(values = c("MS"=0.5, "MT"=0.5, "TLR" = 0.3),guide = "none") + xlab("Island") + ylab("Allelic Richness") + scale_x_discrete(labels = c("Santiago", "Fogo", "Sao Nicolau"), limits = c("ST", "FG", "SN")) + geom_point(aes(shape = (factor(Shapetype)))) + scale_shape_manual(values = c(1,2,3,4,5,6,7,8,9,10), breaks=c("TLR1LA","TLR1LB","TLR2A","TLR2B","TLR3","TLR4","TLR5","TLR21", "MS", "MT")) + scale_colour_manual(values = c("Red","Blue","Black"), breaks=c("TLR1LA","TLR1LB","TLR2A","TLR2B","TLR3","TLR4","TLR5","TLR21", "MS", "MT")) + theme_bw() + labs(shape="Functional", colour="Neutral")
ggplot(df, aes(x=Island, y=AR))+ 
stat_summary(geom="ribbon", fun.data=mean_cl_normal, 
             fun.args=list(conf.int=0.95), fill="red", alpha = .1)+
stat_summary(geom="point", fun.y=mean, color="red") + theme_bw() + scale_x_discrete(labels = c("Santiago", "Fogo", "Sao Nicolau"), limits = c("1", "2", "3"))
但我不知道如何将其与原始图结合起来-只有MS数据应该像这样显示-其余的应该与原始图完全相同

统计汇总功能:

## Summarizes data.
## Gives count, mean, standard deviation, standard error of the mean, and  confidence interval (default 95%).
##   data: a data frame.
##   measurevar: the name of a column that contains the variable to be summariezed
##   groupvars: a vector containing names of columns that contain grouping variables
##   na.rm: a boolean that indicates whether to ignore NA's
##   conf.interval: the percent range of the confidence interval (default is 95%)
summarySE <- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE,
                  conf.interval=.95, .drop=TRUE) {
    library(plyr)

    # New version of length which can handle NA's: if na.rm==T, don't count them
    length2 <- function (x, na.rm=FALSE) {
        if (na.rm) sum(!is.na(x))
        else       length(x)
    }

    # This does the summary. For each group's data frame, return a vector with
    # N, mean, and sd
    datac <- ddply(data, groupvars, .drop=.drop,
      .fun = function(xx, col) {
        c(N    = length2(xx[[col]], na.rm=na.rm),
          mean = mean   (xx[[col]], na.rm=na.rm),
          sd   = sd     (xx[[col]], na.rm=na.rm)
        )
      },
      measurevar
    )

    # Rename the "mean" column    
    datac <- rename(datac, c("mean" = measurevar))

    datac$se <- datac$sd / sqrt(datac$N)  # Calculate standard error of the mean

    # Confidence interval multiplier for standard error
    # Calculate t-statistic for confidence interval: 
    # e.g., if conf.interval is .95, use .975 (above/below), and use df=N-1
    ciMult <- qt(conf.interval/2 + .5, datac$N-1)
    datac$ci <- datac$se * ciMult

    return(datac)
}
##汇总数据。
##给出计数、平均值、标准偏差、平均值的标准误差和置信区间(默认值为95%)。
##数据:数据帧。
##measurevar:包含要汇总的变量的列的名称
##groupvars:包含包含分组变量的列名称的向量
##na.rm:指示是否忽略na的布尔值
##conf.interval:置信区间的百分比范围(默认值为95%)

总结查看如何设置
如果您有分类数据,则分类之间没有任何内容。我对在点之间绘制线持怀疑态度,但在点之间绘制置信区间似乎尤其不明智。此外,分位数插值是危险的。但是,请随意忽略我的建议,就像您之前所做的一样。感谢您回答有关
组的问题。不幸的是,我需要更多的帮助,才能走得更远@罗兰,如果分类有方向,情况也会如此吗?也就是说,增加或减少人口规模?人口规模不是一个分类变量。更好的例子是“富人>中产阶级>穷人”。不能在这两者之间进行插值。如果你有实际收入值(一个连续变量),你可以插值平均值(但分位数仍然是个问题)。谢谢你的解释。在具体案例中,圣地亚哥、福戈和圣尼科洛是岛屿,这是绝对的,但它们也代表了人口规模,我认为这是数字。这就是我排队的原因。我非常感谢你的建议。我相信我以前没有忽视你的建议?我想你指的是我关于颜色和形状结合的问题?正如你从上面的图中所看到的,我实际上已经按照你的建议将它们分开保存了。谢谢你抽出时间。