Comments (6)
Hi! That's just "base" ggplot. You need to use + theme(legend.position="top")
. See here: http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/
from ggnewscale.
Yes this is to position them on top of the plot which does work but my two legends align horizontally and I'd like them to align vertically.
from ggnewscale.
Yes, you need to put guide = guide_legend(direction = "horizontal") into the scale_fill_continuous (or whatever scale you use) call.
from ggnewscale.
I use guide = guide_legend(direction = "horizontal")
for both guides so that they are laying horizontally but I can't manage to place them pn top of each other. Sorry I don't have a reproducible example at the moment but I'll post one if I don't figure out the issue.
from ggnewscale.
Hi, sorry to bother agsin but here's an example of my problem:
topography <- expand.grid(x = 1:nrow(volcano),
y = 1:ncol(volcano))
topography$z <- c(volcano)
measurements <- data.frame(x = runif(30, 1, 80),
y = runif(30, 1, 60),
thing = rnorm(30))
guide1 <- guide_legend(direction = "horizontal",
order = 1)
guide2 <- guide_legend(direction = "horizontal",
order = 2)
ggplot(mapping = aes(x, y)) +
geom_contour(data = topography, aes(z = z, color = stat(level))) +
scale_color_viridis_c(option = "D", guide = guide1) +
new_scale_color() +
geom_point(data = measurements, size = 3, aes(color = thing)) +
scale_color_viridis_c(option = "A", guide = guide2) +
theme_bw() +
theme(legend.position = "top")
Basically I would like the legend of thing
to be placed under the legend of level
on top of the plot.
Besides I also wonder why the legend items lose their gradient style for lines and points when adding specific guide_legend()
for each legend group.
Thanks
from ggnewscale.
Per this question maybe using legend.box = "vertical"
does the trick:
library(ggplot2)
library(ggnewscale)
topography <- expand.grid(x = 1:nrow(volcano),
y = 1:ncol(volcano))
topography$z <- c(volcano)
measurements <- data.frame(x = runif(30, 1, 80),
y = runif(30, 1, 60),
thing = rnorm(30))
guide1 <- guide_legend(direction = "horizontal",
order = 1)
guide2 <- guide_legend(direction = "horizontal",
order = 2)
ggplot(mapping = aes(x, y)) +
geom_contour(data = topography, aes(z = z, color = stat(level))) +
scale_color_viridis_c(option = "D", guide = guide1) +
new_scale_color() +
geom_point(data = measurements, size = 3, aes(color = thing)) +
scale_color_viridis_c(option = "A", guide = guide2) +
theme_bw() +
theme(legend.position = "top", legend.box = "vertical")
Created on 2020-01-19 by the reprex package (v0.3.0)
I believe, though, that these questions are better suited for stackoverflow because they are questions about use and options of ggplot2, not bugs or problems present in the ggnewscale package. Furthermore, posting them there allows for greater exposure so that other people with similar problems can find them. I encourage you to post there.
from ggnewscale.
Related Issues (20)
- Release ggnewscale 0.4.7
- Multiple new_scale_fill doesn't work. HOT 9
- Support for plotly HOT 4
- Release ggnewscale 0.4.8
- Issue When Trying to Employ `guide_colourbar` ::::: v0.4.8 HOT 5
- Legend issues when using `guides(...)` HOT 4
- Add ability to name scales HOT 7
- ggnewscale CRAN note HOT 3
- Issues with next version of ggplot2 HOT 4
- Question on overriding scales on a pre-existing ggnewscale plot HOT 3
- Release ggnewscale 0.4.9
- Release ggnewscale 0.4.10
- new_scale_colour does not work with a scale_* function that includes a guide argument HOT 4
- `guide` vs. `show.legend` with `new_scale()` HOT 4
- Does not display two scales HOT 2
- Release ggnewscale 0.5.0
- Release ggnewscale 0.4.10 HOT 4
- new_scale_*() throws an error in ggplot2 3.5.0 HOT 4
- New Scales Clear Custom Attributes HOT 2
- setting legend name in `guides` vs. in `scale_manual` with `new_scale()` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ggnewscale.