rggplot2r-sfrayshader

Add color on height 3D map with Rayshader in R


I want to make 3D map with rayshader. I have seen this web https://www.tylermw.com/3d-ggplots-with-rayshader/ and try the code with my data. In this web, height map has black color but not on my output. Are there any way to get result like that? Thanks..

I use this code.

map <- sf::st_read('map/map.shp', quiet = TRUE)
gg = ggplot(map) +
   geom_sf(aes(fill =AREA),linewidth=0.7,colour='black',inherit.aes=FALSE) +
    scale_fill_viridis('Area',na.value = 'white')+
   theme(axis.line = element_blank(),axis.title = element_blank(),
         axis.ticks = element_blank(), axis.text = element_blank())
plot_gg(gg, multicore = TRUE, width = 6 ,height=2.7, fov = 70,offset_edges = TRUE)

This is snapshot my result. my output

This is my expect. my expect


Solution

  • Obviously, you are using new version of ggplot2 3.4.0. I think your issue is not about adding color but more likely to do with newer version of ggplot2, specifically new linewidth(). Your color is still correct as black but thinner. This has been documented https://ggplot2.tidyverse.org/news/index.html.

    I have also experienced some strange behaviors with ggplot2 3.4.0 and rayshader. As you can see in the following graph, my 3D graph with ggplot2 3.4.0 became unrecognizable.

    rayshader with ggplot 3.4.0

    enter image description here

    The only solution I have so far is to switch back to ggplot2 3.3.6.

    library(remotes)
    install_version("ggplot2", version = "3.3.6", repos = "http://cran.us.r-project.org")
    

    You may want to try it, as least as a temporary solution.

    rayshader with ggplot 3.3.6

    enter image description here