问题描述
This answer 解释了如何创建与 R 和 ggplot2 中绘制的数据无关的图例。那里的图例只使用颜色。我还想使用标记形状(并将尺寸重新调整为大一点,以便更容易区分)。
据我了解,可以使用 guides(shape = guide_legend(override.aes = list(shape = [...])))
控制 ggplot2 图例中的形状和大小(如 this answer 中建议的那样)。
不幸的是,我没有成功。不幸的是,下面修改后的代码仍然产生与原始(来自 here)相同的图形,而 guides()
中的形状和标记大小规格没有影响。 (请注意,问题是关于图例,只是图例,而不是情节本身。对于情节本身,更改形状和标记很容易并且效果很好。)
我做错了吗?还是我误解了图例的工作原理(例如,每个图例我只能有一个属性)或 guide_legend
如何修改图例?
library(tidyverse)
the_colors <- c("#e6194b","#3cb44b","#ffe119","#0082c8","#f58231","#911eb4","#46f0f0","#f032e6","#d2f53c","#fabebe","#008080","#e6beff","#aa6e28","#fffac8","#800000","#aaffc3","#808000","#ffd8b1","#000080","#808080","#ffffff","#000000")
color_df <- data.frame(the_colors,the_labels = seq_along(the_colors),the_shapes=c(1:22))
the_df <- data.frame("col1"=c(1,2,1),"col2"=c(2,1,"col3"=c(1,3,4))
the_plot <-
ggplot() +
geom_point(data = color_df,aes(x = the_df$col1[[1]],y = the_df$col2[[1]],color = the_colors)) +
guides(shape = guide_legend(override.aes = list(shape = color_df$the_shapes,size=5))) +
scale_color_identity(guide = 'legend',labels = color_df$the_labels) +
geom_point(data=the_df,aes(x=col1,y=col2),color=the_colors[[4]],shape=the_df$col3,size=5)
print(the_plot)
ggsave("test_plot.pdf",plot=the_plot,width=10,height=8)
注意:我完全意识到这段代码没有按照预期的方式使用 R 和 ggplot2。这常常遭到反对。然而,我正在寻找这个功能,它在 R / ggplot2 中没有提供:控制图例独立于情节并且不干扰情节。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)