지도의 여러 레이어에 대해 ggplot에서 범례를 사용자 정의하는 방법은 무엇입니까?

이고르 코벨로

캡션을 수정하려고하는데 만드는 데 문제가 있습니다. 클래스 (채우기), 모양 제한 (색상), 점 (색상) 및 그리드 (채우기 = NA)에 대한 캡션을 원했습니다. 모두 넣었 aes ()지만 예상 한 결과가 없습니다. 아무도 나를 도울 수 있습니까? 감사!

library(geobr)
library(sf)
library(ggplot2)
library(ggspatial)

#Directory

getwd()

#Download spatial data ------------------------------------------------

download.file(url = "http://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.dbf", 
              destfile = "SP_3543907_USO.dbf", mode = "wb")
download.file(url = "http://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.prj", 
              destfile = "SP_3543907_USO.prj", mode = "wb")
download.file(url = "http://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.shp", 
              destfile = "SP_3543907_USO.shp", mode = "wb")
download.file(url = "http://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.shx", 
              destfile = "SP_3543907_USO.shx", mode = "wb")

#Import spatial data --------------------------------------------------

uso <- sf::st_read("SP_3543907_USO.shp")
uso
plot(uso$geometry)

#Area limit

rio_claro_limit <- geobr::read_municipality(code_muni = 3543907, year = 2015)
rio_claro_limit
plot(rio_claro_limit$geom)

#Random sample points

set.seed(123)
pts <- st_sample(uso, size = 20, type="random") %>% st_sf

#Grid 50km x 50km

grid_50 <- st_make_grid(uso, cellsize = c(5000, 5000)) %>% 
  st_sf(grid_id = 1:length(.))

#Labels grid

grid_lab <- st_centroid(grid_50) %>% cbind(st_coordinates(.))

#Points in grid

pts %>% st_join(grid_50, join = st_intersects) %>% as.data.frame


#Map --------------------------------------------------------------------

ggplot() +
  geom_sf(data = uso, aes(fill = CLASSE_USO, color = NA)) +
  geom_sf(data = rio_claro_limit, aes(color = 'black', fill = NA)) +
  geom_sf(data = pts, aes(color = 'red'), size = 1.7) + 
  geom_sf(data = grid_50, aes(fill=NA), lwd = 0.3) +
  geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
  xlab("")+
  ylab("")+
  scale_fill_manual(name="Classes de Uso", values = c("blue", "orange", "gray30", "forestgreen", "green", NA))+
  scale_color_identity(guide = "legend")

여기에 이미지 설명 입력

스테판

다음과 같이 원하는 결과를 얻을 수 있습니다.

  1. 나는 모든 이동 fill=NAcolor=NA의 밖으로 aes()문. 평소와 같이 특정 값에 대한 색상을 수정하거나 채우기 또는 더 일반적으로 모든 aes를 원하는 경우 범례에 표시하려는 경우를 제외하고는 aes () 외부에 두는 것이 가장 좋습니다.

  2. key_glyph"포인트"레이어의 소위 , 즉 범례에 그려진 아이콘을로 설정합니다 "point".

이 단계는 채우기 키 주위의 검은 색 테두리도 제거함에 따라 guides레이어를 추가하여 다시 가져 왔습니다. 개인적으로 나는 검은 색 테두리를 제거 할 것이지만, 당신의 음모입니다. (:

library(geobr)
library(sf)
library(ggplot2)
library(ggspatial)

ggplot() +
  geom_sf(data = uso, aes(fill = CLASSE_USO), color = NA) +
  geom_sf(data = rio_claro_limit, aes(color = 'black'), fill = NA, key_glyph = "point") +
  geom_sf(data = pts, aes(color = 'red'), size = 1.7, key_glyph = "point") + 
  geom_sf(data = grid_50, fill = NA, lwd = 0.3) +
  geom_text(data = grid_lab, aes(x = X, y = Y, label = grid_id), size = 2) +
  xlab("")+
  ylab("")+
  scale_fill_manual(name="Classes de Uso", values = c("blue", "orange", "gray30", "forestgreen", "green", NA)) +
  guides(fill = guide_legend(override.aes = list(color = "black"))) +
  scale_color_identity(guide = "legend")

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

한 어레이의 여러 어레이에서 특정 사용자 여러 데이터를 가져 와서 표시하는 방법은 무엇입니까?

분류에서Dev

Plotly : plotly.express.imshow에서 색상 및 범례에 대한 사용자 지정 단계를 정의하는 방법은 무엇입니까?

분류에서Dev

R에서 ggplot2의 상자 그림에 추가 된 점의 의미에 대한 범례 정보를 추가하는 방법은 무엇입니까?

분류에서Dev

ggplot을 위해 r에서 색상 팔레트를 사용자 정의하는 방법은 무엇입니까?

분류에서Dev

ggplot2 | 범례에서 문자열 값의 순서를 사용자 지정하는 방법은 무엇입니까?

분류에서Dev

여러 색상의 선에 대한 기본 범례를 만드는 방법은 무엇입니까?

분류에서Dev

하나의 정적지도에 여러 마커를 사용하는 방법은 무엇입니까?

분류에서Dev

여러 개체에 대해 하나의 처리기를 사용하는 방법은 무엇입니까?

분류에서Dev

Objective C를 사용하여 특정 뷰 컨트롤러에 대해 별도의 방향을 만드는 방법은 무엇입니까?

분류에서Dev

하나의 어레이에 대해 linq의 group by 및 min statment를 사용하는 방법은 무엇입니까?

분류에서Dev

Auth0 테넌트에서 자동 마이그레이션을 사용하여 사용자 지정 데이터베이스의 사용자에 대해 확인 된 이메일 상태를 포함하는 방법은 무엇입니까?

분류에서Dev

복원 모델을 사용하여 ggplot에서 범례를 삭제하는 방법은 무엇입니까?

분류에서Dev

BigQuery SQL의 여러 열에 사용자 정의 함수를 적용하는 방법은 무엇입니까?

분류에서Dev

matplotlib에 설정된 사용자 정의 번호를 사용하여 막대의 색상을 사용자 정의하는 방법은 무엇입니까?

분류에서Dev

ggplot의 다른 데이터 프레임에서 aes_string을 매핑하여 ggplot에서 범례를 생성하는 방법은 무엇입니까?

분류에서Dev

플롯을 사용하여 산점도에서 세 번째 변수에 대한 두 번째 범례를 표시하는 방법은 무엇입니까?

분류에서Dev

R Highcharter-여러 y 축에 대한 툴팁을 사용자 정의하는 방법은 무엇입니까?

분류에서Dev

대화 형 도구를 사용하여 MATLAB에서 이미지를 자르는 방법은 무엇입니까?

분류에서Dev

R ggplot2-하단의 범례가 잘립니다. 즉석에서 범례에 대한 최적의 열 수를 찾는 방법은 무엇입니까?

분류에서Dev

UITableViewCell의 대리자 메서드를 사용하여 레이블에서 계산을 설정하는 방법은 무엇입니까?

분류에서Dev

R에서 ggplot / geom_bar를 사용하여 막대 위에 데이터 세트의 사용자 지정 레이블을 추가하는 방법은 무엇입니까?

분류에서Dev

MATLAB에서이 상자 그림의 범례를 수정하는 방법은 무엇입니까?

분류에서Dev

별도의 디렉토리를 사용하여 여러 사용자를 위해 FTP 서버를 설정하는 방법은 무엇입니까?

분류에서Dev

Leaflet에서 여러 사용자 지정 아이콘을 정의하는 방법은 무엇입니까?

분류에서Dev

px 대신 %를 사용하여 Google지도에서 높이를 설정하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 게시물 유형의 게시물에 대한 사용자 입력을 사용하여 워드 프레스에 여러 메타 상자를 추가하는 방법은 무엇입니까?

분류에서Dev

Javascript에서 대시 뒤의 문자를 RegEx를 사용하여 대체하는 방법은 무엇입니까?

분류에서Dev

Java에서 루프를 사용하여 여러 세트를 정의하는 방법은 무엇입니까?

분류에서Dev

Java에서 루프를 사용하여 여러 세트를 정의하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    한 어레이의 여러 어레이에서 특정 사용자 여러 데이터를 가져 와서 표시하는 방법은 무엇입니까?

  2. 2

    Plotly : plotly.express.imshow에서 색상 및 범례에 대한 사용자 지정 단계를 정의하는 방법은 무엇입니까?

  3. 3

    R에서 ggplot2의 상자 그림에 추가 된 점의 의미에 대한 범례 정보를 추가하는 방법은 무엇입니까?

  4. 4

    ggplot을 위해 r에서 색상 팔레트를 사용자 정의하는 방법은 무엇입니까?

  5. 5

    ggplot2 | 범례에서 문자열 값의 순서를 사용자 지정하는 방법은 무엇입니까?

  6. 6

    여러 색상의 선에 대한 기본 범례를 만드는 방법은 무엇입니까?

  7. 7

    하나의 정적지도에 여러 마커를 사용하는 방법은 무엇입니까?

  8. 8

    여러 개체에 대해 하나의 처리기를 사용하는 방법은 무엇입니까?

  9. 9

    Objective C를 사용하여 특정 뷰 컨트롤러에 대해 별도의 방향을 만드는 방법은 무엇입니까?

  10. 10

    하나의 어레이에 대해 linq의 group by 및 min statment를 사용하는 방법은 무엇입니까?

  11. 11

    Auth0 테넌트에서 자동 마이그레이션을 사용하여 사용자 지정 데이터베이스의 사용자에 대해 확인 된 이메일 상태를 포함하는 방법은 무엇입니까?

  12. 12

    복원 모델을 사용하여 ggplot에서 범례를 삭제하는 방법은 무엇입니까?

  13. 13

    BigQuery SQL의 여러 열에 사용자 정의 함수를 적용하는 방법은 무엇입니까?

  14. 14

    matplotlib에 설정된 사용자 정의 번호를 사용하여 막대의 색상을 사용자 정의하는 방법은 무엇입니까?

  15. 15

    ggplot의 다른 데이터 프레임에서 aes_string을 매핑하여 ggplot에서 범례를 생성하는 방법은 무엇입니까?

  16. 16

    플롯을 사용하여 산점도에서 세 번째 변수에 대한 두 번째 범례를 표시하는 방법은 무엇입니까?

  17. 17

    R Highcharter-여러 y 축에 대한 툴팁을 사용자 정의하는 방법은 무엇입니까?

  18. 18

    대화 형 도구를 사용하여 MATLAB에서 이미지를 자르는 방법은 무엇입니까?

  19. 19

    R ggplot2-하단의 범례가 잘립니다. 즉석에서 범례에 대한 최적의 열 수를 찾는 방법은 무엇입니까?

  20. 20

    UITableViewCell의 대리자 메서드를 사용하여 레이블에서 계산을 설정하는 방법은 무엇입니까?

  21. 21

    R에서 ggplot / geom_bar를 사용하여 막대 위에 데이터 세트의 사용자 지정 레이블을 추가하는 방법은 무엇입니까?

  22. 22

    MATLAB에서이 상자 그림의 범례를 수정하는 방법은 무엇입니까?

  23. 23

    별도의 디렉토리를 사용하여 여러 사용자를 위해 FTP 서버를 설정하는 방법은 무엇입니까?

  24. 24

    Leaflet에서 여러 사용자 지정 아이콘을 정의하는 방법은 무엇입니까?

  25. 25

    px 대신 %를 사용하여 Google지도에서 높이를 설정하는 방법은 무엇입니까?

  26. 26

    사용자 지정 게시물 유형의 게시물에 대한 사용자 입력을 사용하여 워드 프레스에 여러 메타 상자를 추가하는 방법은 무엇입니까?

  27. 27

    Javascript에서 대시 뒤의 문자를 RegEx를 사용하여 대체하는 방법은 무엇입니까?

  28. 28

    Java에서 루프를 사용하여 여러 세트를 정의하는 방법은 무엇입니까?

  29. 29

    Java에서 루프를 사용하여 여러 세트를 정의하는 방법은 무엇입니까?

뜨겁다태그

보관