【问题标题】:Ploting melted variable using facet_wrap使用 facet_wrap 绘制融化的变量
【发布时间】:2014-01-16 12:24:21
【问题描述】:

我想创建一个有 6 个面的图。

我正在使用融化的dataset

使用时:

ggplot(g,aes(x = x, y = value, colour = variable, linetype = variable,size = variable)) + 
    geom_line() + facet_wrap(.~condition)

我得到错误:

Error in layout_base(data, vars, drop = drop) : 
  At least one layer must contain all variables used for facetting

我不明白这意味着什么,因为我在变量“条件”中有用于分面的变量

Here 是创建融合变量的原始数据。

这是我用来制作情节的代码:

ggplot(g,aes(x = x, y = as.numeric(value), colour = varible, linetype = variable,size = variable)) + 
    geom_line() + 
    scale_x_continuous(breaks=seq(1,10,1)) +
    scale_y_continuous(breaks=seq(0,1, 0.1))+
    scale_colour_manual(values=c("red3","red3","red3","red3", "red3","red3","red3", "red3","red3",   
    "blue3","blue3","blue3","blue3","blue3","blue3","blue3","blue3","blue3")) + 
    scale_linetype_manual(values = c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2)) + 
    scale_size_manual(values = c(0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4)) + 
    xlab("\nTime-steps") + 
    ylab("Proportion correct\n") +
    theme_bw() +
    theme(axis.text=element_text(size=5),
          axis.title=element_text(size=5),
          axis.line = element_line(size=0.25),
          axis.ticks=element_line(size=0.25),
          panel.grid.major = element_blank(),
          panel.grid.minor = element_blank(),
          panel.border = element_blank(),
          panel.background = element_blank(),
          legend.position="none" ,
          legend.direction="vertical", 
          legend.title=element_blank(),
          legend.text=element_text(size=6), 
          legend.background=element_blank(), 
          legend.key=element_blank())+facet_wrap(~condition)

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您有两个主要问题 - y 被编码为一个因子并且应该是数字,更重要的是,您的 facet_wrap 术语中有一个小错字,应该没有 .

    p <- ggplot(g,aes(x = as.numeric(x), y = as.numeric(value), group = variable)) 
    p <- p + geom_line()
    p <- p + facet_wrap(~condition)
    p
    

    这给了我

    编辑:我注意到变量嵌入了大小编码。这很好地将其包含在图表中:

    g$size<-substring(g$variable,1,5)
    

    然后在美学中添加colour = size即可得到:

    【讨论】:

    • 不知何故它仍然对我不起作用。这就是我现在得到的:错误:提供给连续比例的离散值
    • 您是否完全执行了我发布的代码?即使我将您的代码与颜色和线型一起使用,它也可以工作但不能正常工作,因为 R 用完了颜色和线型,因为有很多不同的变量。 ggplot(g,aes(x = x, y =as.numeric(value), group=variable, colour = variable, linetype = variable,size = variable)) + geom_line() + facet_wrap(~condition) 我问是因为我们没有对秤做任何事情。请注意,x 也被编码为一个因子,也许也应该是数字?
    • 您好,我尝试了您发布的确切代码,但仍然收到错误消息。还请提供我在更新中用于绘图的完整代码
    • 正如我所想 - 你正在改变比例并隐含地假设 x 是数字但它被编码为一个因素。所以包括x=as.numeric(x)。然后你的代码在“变量”中有一个错字,然后由于大量变量而失败(请参阅我的编辑以获取解决方案)。
    • 如前所述,您应该删除linetype = variable,size = variable,因为您的变量级别太多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    相关资源
    最近更新 更多