Dear Micha,
Thank you very much for the tip. I worked out, but I am concerned about the
warning that appears:

*Scale on map varies by more than 10%, scale bar may be inaccurate*

On Sat, Jul 12, 2025 at 5:01 PM Micha Silver <[email protected]>
wrote:

>
>
>
>
> --
> Micha Silver
> cell: +972-523-665918
>
>
> On Saturday, 12 July 2025 at 16:47, Gabriel Cotlier <[email protected]>
> wrote:
>
> > Hello,
> > I would like to ask for help to add a scale bar to the following map
> below.
> > Thanks a lot in advance.
> > Kind regards,
> > Gabriel
>
> You might consider the `ggspatial` package that has a function:
> `annotation_scale()`
>
> https://paleolimbot.github.io/ggspatial/reference/annotation_scale.html
>
>
> >
> > library(ggplot2)
> > library(sf)
> > library(rnaturalearth)
> > library(rnaturalearthdata)
> >
> > # Get world map data
> > world <- ne_countries(scale = "medium", returnclass = "sf")
> >
> > # Define the bounding box for Europe
> > europe_extent <- st_bbox(c(xmin = -12, xmax = 35, ymin = 30, ymax = 72),
> > crs = st_crs(4326))
> >
> > # Filter for Europe, then for Italy and Iberian Peninsula
> > europe <- st_crop(world, europe_extent)
> > italy_and_iberian <- europe[europe$name %in% c("Spain", "Portugal",
> > "Italy"),]
> >
> > # Load another shapefile
> > # Replace "path/to/your/shapefile.shp"
> > A <- st_read("path/to/your/shapefile1.shp" )
> > B <- st_read("path/to/your/shapefile2.shp" )
> > sq1 <- st_read("path/to/your/shapefile3.shp" )
> > sq2 <- st_read("path/to/your/shapefile4.shp" )
> >
> > # Plot the map with the added shapefile
> > ggplot(data = europe) +
> > geom_sf(fill = "lightgray") + # Background map
> > geom_sf(data = italy_and_iberian, fill = "skyblue") + # Highlighted areas
> > geom_sf(data = A, fill = "lightgreen") + # Added shapefile
> > geom_sf(data = B, fill = "lightblue") + # Added shapefile
> > geom_sf(data = sq1, fill =NA, color="red", lwd=0.5) + # Added shapefile
> > geom_sf(data = sq2, fill=NA, color ="red", lwd=0.5) + # Added shapefile
> > coord_sf(xlim = c(-12, 35), ylim = c(30, 72), expand = FALSE) + # Set map
> > boundaries.
> > theme_bw() +
> > labs(title = "Italian, Iberian in Europe")
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > [email protected]
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to