An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131119/592ac670/attachment.pl>
Help with removing extra legend elements in ggplot
6 messages · scoyoc, David Winsemius, Dennis Murphy +1 more
On Nov 19, 2013, at 3:44 PM, Matthew Van Scoyoc wrote:
I can't get the fine tuning right with my legend. I get an extra legend element "10" which is the point size in my plot. Can someone help me get rid of this extra element? Additionally I would also like to reduce the size of the legend. If you want to reproduce my figure you can download my data in csv format here <https://github.com/scoyoc/EcoSiteDelineation/blob/master/VegNMDS_scores.csv
. Here is my code...
veg.nmds.sc = read.csv("VegNMDS_scores.csv", header = T)
nmds.fig = ggplot(data = veg.nmds.sc, aes(x = NMDS1, y = NMDS2))
nmds.fig + geom_point(aes(color = VegType, shape = VegType, size = 10)) +
scale_colour_manual(name = "Vegetation Type",
values = c("blue", "magenta", "gray50", "red",
"cyan3",
"green4", "gold")) +
scale_shape_manual(name = "Vegetation Type", values = c(15, 16, 17, 18,
15, 16, 17)) +
theme_bw() +
theme(panel.background = element_blank(), panel.grid.major =
element_blank(),
panel.grid.minor = element_blank(),
legend.key = element_rect(color = "white")
)
I have been messing around with
theme(..., legend.key.size = unit(1, "cm"))
but I keep getting the error "could not find function unit". I'm not sure why, isn't unit supposed to be part of the legend.key argument?
Try this workaround to what sounds like a bug: library(grid) # then repeat the call.
David Winsemius Alameda, CA, USA
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131119/b2af4fb8/attachment.pl>
The additional element comes from this code: geom_point(aes(color = VegType, shape = VegType, size = 10)) Take the size argument outside the aes() statement and the legend will disappear: geom_point(aes(color = VegType, shape = VegType), size = 10) The aes() statement maps a variable to a plot aesthetic. In this case you're mapping VegType to color and shape. You want to *set* the size aesthetic to a constant value, and that is done by assigning the value 10 to the size aesthetic outside of aes(). Dennis
On Tue, Nov 19, 2013 at 4:35 PM, Matthew Van Scoyoc <scoyoc at gmail.com> wrote:
No dice. I still get the "10" legend element. Thanks for the quick reply. Cheers, MVS ===== Matthew Van Scoyoc Graduate Research Assistant, Ecology Wildland Resources Department <http://www.cnr.usu.edu/wild/> & Ecology Center <http://www.usu.edu/ecology/> Quinney College of Natural Resources <http://cnr.usu.edu/> Utah State University Logan, UT <mvanscoyoc at aggiemail.usu.edu>https://sites.google.com/site/scoyoc/ ===== Think SNOW! On Tue, Nov 19, 2013 at 5:12 PM, David Winsemius <dwinsemius at comcast.net>wrote:
On Nov 19, 2013, at 3:44 PM, Matthew Van Scoyoc wrote:
I can't get the fine tuning right with my legend. I get an extra legend element "10" which is the point size in my plot. Can someone help me get
rid
of this extra element? Additionally I would also like to reduce the size
of
the legend. If you want to reproduce my figure you can download my data in csv
format
here <
. Here is my code...
veg.nmds.sc = read.csv("VegNMDS_scores.csv", header = T)
nmds.fig = ggplot(data = veg.nmds.sc, aes(x = NMDS1, y = NMDS2)) nmds.fig + geom_point(aes(color = VegType, shape = VegType, size = 10))
+
scale_colour_manual(name = "Vegetation Type",
values = c("blue", "magenta", "gray50", "red",
"cyan3",
"green4", "gold")) +
scale_shape_manual(name = "Vegetation Type", values = c(15, 16, 17, 18,
15, 16, 17)) +
theme_bw() +
theme(panel.background = element_blank(), panel.grid.major =
element_blank(),
panel.grid.minor = element_blank(),
legend.key = element_rect(color = "white")
)
I have been messing around with
theme(..., legend.key.size = unit(1, "cm"))
but I keep getting the error "could not find function unit". I'm not sure why, isn't unit supposed to be part of the legend.key argument?
Try this workaround to what sounds like a bug: library(grid) # then repeat the call. -- David Winsemius Alameda, CA, USA
[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20131119/d7bb9145/attachment.pl>
5 days later
On Tue, 19 Nov 2013 16:44:11 -0700
Matthew Van Scoyoc <scoyoc at gmail.com> wrote:
You want to consider this as a programming bug in your code. Executing each line sequentially shows that the problem appears in the second line: nmds.fig + geom_point(aes(color = VegType, shape = VegType, size = 10)) ?aes() and ?geom_point() reveals a misplaced right parenthesis. "Size" belongs to geom_point(), not aes() as you have it grouped. jwdougherty