【发布时间】:2017-06-01 22:57:38
【问题描述】:
我有一个带有分组条形的 ggplot 条形图。每个 x 值有 4 个条形,条形填充、颜色和 alpha 由数据中的变量决定。我希望我的图例能够准确地反映情节中条形的外观。不幸的是,我没有足够的声誉来发布我的情节图片,但这是我的代码:
ggplot(all_frame_freq, aes(x = Frame, y = prop_type, group = interaction(speaker,Type), fill = Type, color = Type, alpha = speaker)) +
geom_bar(position = "dodge", stat="identity") +
scale_fill_manual(values = c("#E41A1C","#377EB8"), name="Type", labels=c("A","B")) +
scale_color_manual(values = c("#E41A1C","#377EB8"), guide=FALSE) +
scale_alpha_manual(values = c(.2, 1), name="speaker", labels=c("1", "2"))
这会在所有条形周围创建一条线,但该线仅显示在 alpha
theme(legend.key = element_rect(color = 'black', size = 0.5))
但这会在所有图例框周围添加一条线。有没有办法将它添加到 alpha 图例中的一个框中,或者(可能更容易)添加到 alpha 图例中,我可以在其中设置线条颜色以匹配较暗的框?我一直在尝试各种方法并四处寻找想法,但尚未找到合适的解决方案。
我的数据样本 - 这次格式正确:
structure(list(Type = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L,
2L), .Label = c("A", "B"), class = "factor"), Frame = structure(c(1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("V CP", "V NP"), class = "factor"),
prop_type = c(0.209513024, 0.138731597, 0.017167382, 0.387528402,
0.437998087, 0.144086707, 0.042695836, 0.398376853), speaker = structure(c(1L,
1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("Speaker1", "Speaker2"
), class = "factor")), .Names = c("Type", "Frame", "prop_type",
"speaker"), class = "data.frame", row.names = c(NA, -8L))
【问题讨论】:
-
您知道,我们没有您的数据 all_frame_freq,因此我们无法重新创建您的图片。请通过键入
dput(all_frame_freq)并将输出粘贴到您的问题中向我们展示数据 -
我的错 - 刚刚添加。
-
请提供一个可重现的例子,“添加的数据”是不可重现的。如需帮助,请参阅here。
-
对不起,我想我现在已经正确添加了。
标签: r plot ggplot2 bar-chart legend