如何为下面的情节和边距创建图例?我搜索了?theme
,但我不知道。
library(ggplot2)
data <- data.frame(col1 = c(1, 2, 2, 3, 3, 4), col2 = c(1, 2, 2, 1, 2, 1), z = rnorm(6))
p1 <- ggplot(data, aes(col1, y = ..count..,fill=col2))
p1 <- p1 + geom_bar()
p2 <- ggplot(data, aes(x = z))
p2<-p2 + geom_density()
p2
gt1 <- ggplot_gtable(ggplot_build(p1))
gt2 <- ggplot_gtable(ggplot_build(p2))
获取x轴和y轴标题和文字的最大宽度和高度
maxWidth = unit.pmax(gt1$widths[2:3], gt2$widths[2:3])
为gt1,gt2和gt3
设置gtables中的最大值gt1$widths[2:3] <- as.list(maxWidth)
gt2$widths[2:3] <- as.list(maxWidth)
将散点图与两个边缘箱图结合起来 创建一个新的gtable
gt <- gtable(widths = unit(c(7, 2), "null"), height = unit(c(2, 7), "null"))
Instert gt1,gt2和gt3进入新gtable
gt <- gtable_add_grob(gt, gt1, 2, 1)
gt <- gtable_add_grob(gt, gt2, 1, 1)
渲染情节
grid.newpage()
grid.draw(gt)
答案 0 :(得分:0)
只是说清楚。 带有循环的初始代码产生了稍微不同的结果,而不是填充选项
1)如果您想添加图例,您应该为 制图 添加颜色:
ggplot(data,aes(col1,group=col2,fill="id"))+
geom_bar(position="identity",alpha=0.5)+
scale_fill_manual(name="id",values="blue")
如果您有更大的数据,则无法将每个叠加的颜色添加到图例中,因为会有很多选项。每个条形图的黑暗显示每个col1与col2 id的强度,但不显示哪个
2)“填充”选项有点不同
ggplot(data,aes(col1,fill=as.factor(col2)))+geom_bar(position="dodge")
它只显示每个col1的col2 id。这个想法略有不同。
3)您可以通过添加以下内容手动更改图例:
guides(fill=guide_legend(title="Col2",
direction = "vertical",title.position="top",
title.vjust = 0.5)) # just example
使用scale_fill_discrete()选项
创建图例键4)不确定密集图中你想要什么样的传说,但让我们假设如下:
ggplot(data, aes(x = z,colour="id"))+
geom_density()+
scale_colour_manual(name="id",values="blue")
然后你只需将情节加在一起。顺便说一句,检查this教程,将多个图表添加到一起,希望您发现它很有用:)
P.S。你可以混合填充= col2,位置=“身份”和alpha = 0.5,这将是一个难以解释的糟糕情节,没有规模酿造者可以帮助:)
UPD:在代码中使用gtable。 让例1为p1图,例4为p2。 只需复制粘贴代码后,您将获得以下内容:
如果您查看我提到的教程,您可以获得以下内容:
再次,请澄清您真正想要传说的内容。当你得到绘图的大小时,你的情节也包含了图例。
如果您至少可以尝试我展示的示例,您可以看到ggtables中的差异。图例为guide-box
(您可以通过编辑图例的选项猜测)。所以,你问过如何创建传说 - ta-da。 ggtable中的传说在哪里?当当。如果你还有其他问题,我担心它们超出了SO的能力