1

我想知道如何更改图例框中的键标签。我需要用“Activo”这个词替换值 1,用我尝试使用的世界“Inactivo”替换值 2,scale_fill_discrete但它不起作用

这是数据框的示例

 structure(list(ZPIE = c(4109L, 4463L, 4624L, 4267L, 4569L, 4656L, 
3976L, 4136L, 4139L, 4694L, 4354L, 4615L, 4183L, 4113L, 4508L, 
4035L, 4443L, 4709L, 4575L, 4363L), ecd = c(0.0873015873015873, 
0.779220779220779, 0.916666666666667, 0.396825396825397, 0.876984126984127, 
0.961038961038961, 0.0649350649350649, 0.134920634920635, 0.285714285714286, 
0.948412698412698, 0.55952380952381, 0.904761904761905, 0.337662337662338, 
0.233766233766234, 0.785714285714286, 0.0198412698412698, 0.698412698412698, 
0.956349206349206, 0.884920634920635, 0.579365079365079), ACTIVIDAD = structure(c(1L, 
2L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("1", "2"), class = "factor")), .Names = c("ZPIE", 
"ecd", "ACTIVIDAD"), row.names = c(166L, 258L, 202L, 158L, 207L, 
319L, 288L, 98L, 329L, 46L, 15L, 1L, 277L, 272L, 92L, 33L, 23L, 
201L, 194L, 197L), class = "data.frame")  

这是我为获取情节而编写的代码:

a <- ggplot(intactos,aes(x = ZPIE, y = ecd))+  
     geom_line(aes(group = ACTIVIDAD,colour = ACTIVIDAD,linetype=ACTIVIDAD),size = 1,colour="black")+
     xlab("Altitud m") +
     ylab("Distribucion Acumulada (%)")+
     scale_x_continuous(limits=c(3500,5000),breaks=c(3500,3750,4000,4250,4500,4750,5000))+
     geom_vline(aes(xintercept=4000),linetype="dashed",size = 1)+
     geom_text(aes(4050,.85,label = "0°C MAAT isoterma")
                  ,vjust=0,
                  ,fontface= 'plain'
                  ,colour='black'
                  ,size=5)+
  theme(  plot.background  = element_rect(fill="white")
         ,panel.background = element_rect(fill='white')
         ,panel.grid.major = element_line(colour = 'grey', linetype = 'dashed')
         ,panel.grid.minor = element_line(colour = 'white', linetype = 'dashed')
         ,panel.border = element_blank()
         ,axis.line = element_line(colour = 'black')
         ,axis.text.x=element_text(colour="black")
         ,axis.text.y=element_text(colour="black")
         ,panel.grid.major =element_line(colour = 'grey', linetype = 'dashed')
         ,legend.key=element_rect(fill="white",colour="white"),legend.position=c(0.25,0.7))


a +    coord_flip()

这是我尝试创建的情节 https://dl.dropbox.com/u/11320858/plot_zoom_png2

4

2 回答 2

2

好吧,鉴于您能够共享的有限数据,很难说,但我认为您可能想要以下内容。找一个修补匠,看看它是否适合你。

截屏

library(ggplot2)
library(scales)

intactos <-
    structure(list(ZPIE = c(4129L, 4547L, 4448L, 4181L, 4439L, 4113L,3893L, 4275L, 4385L, 4037L), ecd = c(0.126984126984127, 0.849206349206349,0.706349206349206, 0.222222222222222, 0.69047619047619, 0.233766233766234,0.038961038961039, 0.420634920634921, 0.626984126984127, 0.0238095238095238)), .Names = c("ZPIE", "ecd"), row.names = c(79L, 200L, 132L, 102L, 219L,272L, 278L, 84L, 17L, 133L), class = "data.frame")

intactos$ACTIVIDAD <- "one"
intactos$ACTIVIDAD[6:10] <- "two"

library(reshape)
intactos.m <- melt(intactos, id.var = c("ecd", "ACTIVIDAD"))

ggplot(data = intactos.m, aes(y = value, x = ecd, group = ACTIVIDAD)) +
    geom_line(aes(colour = ACTIVIDAD)) +
    ylab("Altitud m") +
    xlab("Distribucion Acumulada (%)\n") +
    scale_y_continuous(limits = c(3500,5000),
                       breaks = c(3500,3750,4000,4250,4500,4750,5000))+
    scale_x_continuous(limits = c(0, 1.1),
                       breaks = seq(0, 2, 0.1)) +
    scale_colour_manual("Legend", labels = c("line one", "line two"),
                        values = c("blue", "red")) +
    geom_hline(aes(yintercept = 4000),linetype = "dashed", size = 1)+
    geom_text(data = intactos[1, ], aes(y = 4050, x = 0.85),
               label = "0°C MAAT isoterma", vjust = 0, fontface = 'plain',
               colour = 'black', size=5) +
    theme()
于 2013-02-06T08:50:48.277 回答
1

感谢您帮助慢学习者。我刚刚用您的评论修复了代码。melt()我可以在开头和代码中使用函数来修复scale_linetype_maunual代码。这是新代码。

library(reshape)

intactos2 <- melt(intactos, id.var = c("ecd","ACTIVIDAD"))

a <- ggplot(intactos2,aes(y = value,  x= ecd,group=ACTIVIDAD))+  
     geom_line(aes(colour = ACTIVIDAD,linetype=ACTIVIDAD),colour='black',size=0.5)+
     scale_linetype_manual("Glaciares rocosos",
                            breaks=c("1","2"), 
                            values=c("solid","dashed"),
                            labels = c("Activos", "Inactivos"))+
     ylab("Altitud m") +
     xlab("Distribucion Acumulada (%)\n")+
     scale_y_continuous(limits=c(3500,5000),
                        breaks=c(3500,3750,4000,4250,4500,4750,5000))+
     scale_x_continuous(limits = c(0.00, 1.00),
                        breaks = seq(0, 1, 0.1),
                        labels=seq(0,100,10))+
  theme(  plot.background  = element_rect(fill="white")
         ,panel.background = element_rect(fill='white')
         ,panel.grid.major = element_line(colour = 'grey', linetype = 'dotted',size=0.5)
         ,panel.grid.minor = element_line(colour = 'white', linetype = 'dashed')
         ,panel.border = element_blank()
         ,axis.line = element_line(colour = 'black')
         ,axis.text.x=element_text(colour="black")
         ,axis.text.y=element_text(colour="black")
         ,panel.grid.major =element_line(colour = 'grey', linetype = 'dashed')
         ,legend.key=element_rect(fill="white",colour="white"),legend.position=c(0.3,0.8))+
          geom_hline(aes(yintercept=4000),linetype="solid",size = 0.5)
a

a   +    annotate("text",label="0°C MAAT isoterma",x=0.8,y=4050,size=4)

我终于得到的情节在这里!https://dl.dropbox.com/u/11320858/plot3.png

于 2013-02-06T21:24:50.290 回答