【问题标题】:ggplot2: separate color scale per facetggplot2:每个方面的单独色标
【发布时间】:2010-11-19 01:28:33
【问题描述】:

直觉上我正在寻找类似的东西:facet_(scales="free_color")

我做了类似的事情

p <- ggplot(mpg, aes(year, displ, color=model)) + facet_wrap(~manufacturer)
p + geom_jitter()

即:绘制属于不同物种(manufacturer) 的个体(model) 的二维测量值,并以颜色表示个体。 问题是所有个体都共享相同的色阶 - 因此刻面中的点具有非常相似的颜色。

使用 geom_line 的组美学可以解决问题,但线与点讲述的故事不同。

另一个明显的解决方案是删除刻面并为每个子集绘制一个单独的图。 (如果这应该是唯一的解决方案:是否有任何快速、智能或经过验证的方法可以做到这一点?)

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    当您按一个因素着色时,我不确定这是一个可用的选项。但是,生成单个图的快速方法是这样的:

    d_ply(mpg, .(manufacturer), function(df) {
    jpeg(paste(df$manufacturer[[1]], ".jpeg", sep=""))
    plots <- ggplot(df, aes(year, displ, color=factor(model))) + geom_jitter()
    print(plots)
    dev.off()
    })
    

    相关答案: Different legends and fill colours for facetted ggplot?

    【讨论】:

    • 正如哈德利提到的(在您链接的答案中)“通过绘制单独的图很容易解决” - 这说明了如何。谢谢!但我仍在努力以一种与我创建的其他多面图相匹配的方式组合它们。
    • 你能告诉我们你到目前为止有什么吗?并尝试描述什么是/不匹配?
    • 实际上,也许最好提出一个新问题,说明您目前在情节方面拥有什么以及您真正在寻找什么。
    【解决方案2】:

    我认为您只是想按类别着色,每个制造商生产多个模型,每个类别只有一个或两个:

    p <- ggplot(mpg, aes(year, displ, color=class)) + facet_wrap(~ manufacturer)
    p + geom_jitter()
    

    【讨论】:

    • mpg 数据集只是一个例子。我想绘制每个物种(facet)的树(colorgroup)样本的密度梯度(x vs y)。每棵树只属于一个物种。
    猜你喜欢
    • 2020-03-25
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多