你如何改变ggplot2传奇中的点的外观?

时间:2014-07-15 13:50:31

标签: r ggplot2

对于有许多点的散点图,一种常见的技术是减小点的大小并使它们透明。

library(ggplot2)
ggplot(diamonds, aes(x, y, colour = cut)) +
  geom_point(alpha = 0.25, size = 0.5) +
  ylim(0, 12)

A scatterplot of the diamonds dataset with points reduced in size and opacity.  The points in the legend are hard to see.

不幸的是,传说中的点现在太小而且看不清楚。

我想要一种方法来改变图例中的点,而不依赖于主绘图面板中的图。它应该是以下内容之一:

thm <- theme_get()
thm[grepl("legend", names(thm))]

我很难找到合适的设置。如何更改磅值?

2 个答案:

答案 0 :(得分:1)

如果您只需要在图例中更改格式,则应在override.aes=中使用size=guide_legend(参见下文)。这将覆盖绘图中使用的大小,并将仅为图例使用新的大小值。

要获取图例中的点和绘图解决方法中的线条,请添加geom_point(size=0)以确保点不可见,然后在guides()设置linetype=0以删除线和size=3获得更大的分数。

ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+ geom_point(size=0)+ guides(colour = guide_legend(override.aes = list(size=3,linetype=0))) enter image description here

答案 1 :(得分:1)

您可以使用包guide_legend()中的scales功能来实现您的效果。

此功能允许您覆盖绘图中指南(图例)的aes值。在您的情况下,您希望覆盖alpha比例的sizecolour值。

试试这个:

library(ggplot2)
library(scales)
ggplot(diamonds, aes(x, y, colour = cut)) +
  geom_point(alpha = 0.25, size = 1) +
  ylim(0, 12) +
  guides(colour=guide_legend(override.aes=list(alpha=1, size=3)))

enter image description here