R中ggplot图例中的虚线型

时间:2012-12-07 13:27:13

标签: r legend ggplot2

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

我有一个包含大量数据的数据框,我想用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具有Levels Coveal或Peripheral。 我正在使用的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"))
}

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

你能帮我在图例中将线型定义为外围情况下的虚线吗?

0 个答案:

没有答案