Establecer un número fijo de interrupciones en la leyenda de ggplot2 al graficar múltiples gráficos.
Supongamos que tengo una lista df
de 20 data.frames y necesito graficarlos en un for loop
utilizando scale_fill_steps2
, de la siguiente manera:
plot_lst=list()
for (i in 1:length(df)) {
plot_lst[[i]] = ggplot() +
geom_contour_fill(data=df[[i]], aes(x=lon, y=lat, z=value)) +
scale_fill_steps2(name = "", low = "#0571b0", mid = '#ffffbf', high = '#ca0020')
}
Cada uno de mis data.frames tiene un rango diferente de value
y crear una leyenda personalizada para cada uno de ellos no es práctico. ¿Existe alguna forma de graficar mis data.frames con un número único de divisiones en la leyenda? Por ejemplo, 5 o 6 divisiones en total.
Gracias por cualquier ayuda.
davy.ai
Sí, puedes utilizar los argumentos
limits
ybreaks
de la funciónscale_fill_steps2()
para establecer un rango común y un conjunto común de cortes para todos los gráficos.Primero, debes determinar los valores mínimo y máximo de
value
en todos los data.frames utilizando la funciónrange()
:Luego, puedes establecer los límites y cortes utilizando
scale_fill_steps2()
:Aquí,
limits
se establece comorange_value
para asegurarse de que todos los gráficos tengan el mismo rango devalue
.breaks
se establece utilizandoseq()
para crear una secuencia de cortes espaciados de manera uniforme entre los valores mínimo y máximo devalue
.length.out
se utiliza para controlar el número de cortes, que se establece comocommon_breaks
.Al establecer un rango común y un conjunto común de cortes para todos los gráficos, obtendrás una leyenda con el mismo número de cortes en cada gráfico.