1

我是新来的,但我希望你能帮助我。我只是用谷歌搜索了我的问题,但无法解决。

我有一个包含大量数据的数据框,我想用 R 中的 ggplot 绘制这些数据。一切都很好,但传说让我发疯。图例中的线型总是实心的,而不是我定义的。

我正在加载一个 csv 文件,然后使用循环制作子集并使用 SummarySE() 汇总子集。

一个子集如下所示:

    ExperimentCombinations   LB TargetPosition  N C_measured         sd          se         ci
1                     HS 0.10         Foveal 10 0.11007970 0.04114193 0.013010221 0.02943116
2                     HS 0.21         Foveal 10 0.09821870 0.04838134 0.015299523 0.03460992
3                     HS 0.30         Foveal  9 0.07911856 0.04037776 0.013459252 0.03103709
4                     HS 1.00         Foveal 11 0.06657355 0.02688821 0.008107099 0.01806374
5                    LED 0.10         Foveal  8 0.12569725 0.03607487 0.012754393 0.03015935
6                    LED 0.21         Foveal 10 0.08797370 0.02091996 0.006615472 0.01496524
7                    LED 0.30         Foveal 10 0.07358290 0.03002596 0.009495042 0.02147928
8                    LED 1.00         Foveal  8 0.06630350 0.01894423 0.006697796 0.01583777

在这种情况下,TargetPosition 具有水平中心凹或外围。我正在使用的 ggplot 代码是(看起来很糟糕,因为我试图解决我的问题......):

    ColourFoveal <- c("#FFCC33","#00CCFF")
        ColourPeripheral <- c("#FFCC33","#00CCFF")
        #ColourPeripheral <- c("#FF9900","#0066FF")
        PointType <- c(20,20)
        PointTypeSweepUp <- c(24,24)
        PointTypeSweepDown <- c(25,25)
        ColourHSFillFoveal <- c("#FFCC33", "#FFCC33")
        ColourHSFillPeripheral <- c("#FF9900", "#FF9900")
        #LineTypeFoveal <- c("solid", "solid")
        LineTypePeripheral <- c("dashed","dashed")
        xbreaks <- c(0.1,0.21,0.3,1.0)
        plotsYmax <- 0.2 



    if(field=="Peripheral"){
                        lineType<-sprintf("dashed")
                        lineColour<-ColourPeripheral
                    }else{
                        lineType<-"solid"
                        lineColour<-ColourFoveal
                    }
                    ggplot(df, aes(x=LB, y=C_measured, shape=ExperimentCombinations, colour=ExperimentCombinations)) +
                        geom_errorbar(aes(ymin=C_measured-se, ymax=C_measured+se), width=.1) +
                        geom_line(linetype=lineType) +
                        geom_point() +

                        ggtitle(paste(targetDataFrame$AgeGroup, targetDataFrame$TargetPosition)) +
                        scale_colour_manual(name="", values=lineColour)+
                        scale_shape_manual(name="", values=PointType)+
                        scale_fill_manual(name="", values=lineColour)+                  
                        scale_x_continuous(breaks=xbreaks)+
                        coord_cartesian(ylim = c(0, plotsYmax+0.01))+
                        scale_y_continuous(breaks=c(0,0.05,0.1,0.15,0.2))+                  
                        theme(axis.line=element_line(colour="black"))+                  
                        theme(panel.grid=element_blank())+
                        theme_bw()+
                        theme(legend.key.width=unit(2,"line"))
}

外围地块应该有虚线,中心凹的实线。我得到的总是这样:(作为一个新用户,我不允许发布图像!)线条用我喜欢的颜色虚线,点也是正确的。但在传说中,线条是实线而不是虚线。传说中的颜色和点也很好。

您能帮我将图例中的线型定义为外围案例中的虚线吗?

4

0 回答 0