Tôi có 3 tệp shp đại diện cho ngôi nhà, phòng và giường của một ngôi nhà tương ứng. Tôi cần phải vẽ chúng trên một đồ thị bằng cách sử dụng R để tất cả chúng chồng lên nhau. Tôi biết rằng trong hàm plot
, tôi có thể sử dụng line
để vẽ đường mới trên đầu cốt truyện hiện có, có bất kỳ điều gì tương đương trong spplot
không? Cảm ơn.lô nhiều tệp shp trên biểu đồ sử dụng spplot trong R
Trả lời
Bạn có thể sử dụng đối số sp.layout
trong spplot
. Ngoài ra, bạn có thể sử dụng ggplot2. Một số mã ví dụ (chưa được kiểm tra):
library(ggplot2)
shp1_data.frame = fortify(shp1)
shp1_data.frame$id = "shp1"
shp2_data.frame = fortify(shp2)
shp2_data.frame$id = "shp2"
shp = rbind(shp1_data.frame, shp2_data.frame)
ggplot(aes(x = x, y = y, group = group, col = id), data = shp) + geom_path()
ggplot2
, các cột trong dữ liệu được liên kết với tỷ lệ đồ họa trong ô. Trong trường hợp này x
là tọa độ x, y
là toạ độ y, group
là một cột trong data.frame shp chỉ định đa giác nào thuộc về điểm và col
là màu của đa giác. Hình tôi đã sử dụng là geom_path
, vẽ một chuỗi các dòng dựa trên dữ liệu đầu vào đa giác.frame. Cách khác là sử dụng geom_poly
, cũng hỗ trợ điền vào đa giác.
Dưới đây là một cách tiếp cận, sử dụng tiện lợi layer()
chức năng từ gói latticeExtra:
# (1) Load required libraries
library(sp)
library(rgeos) # For its readWKT() function
library(latticeExtra) # For layer()
# (2) Prepare some example data
sp1 = readWKT("POLYGON((0 0,1 0,1 1,0 1,0 0))")
sp2 = readWKT("POLYGON((0 1,0.5 1.5,1 1,0 1))")
sp3 = readWKT("POLYGON((0.5 0,0.5 0.5,0.75 0.5,0.75 0, 0.5 0))")
# spplot provides "Plot methods for spatial data with attributes",
# so at least the first object plotted needs a (dummy) data.frame attached to it.
spdf1 <- SpatialPolygonsDataFrame(sp1, data=data.frame(1), match.ID=1)
# (3) Plot several layers in a single panel
spplot(spdf1, xlim=c(-0.5, 2), ylim=c(-0.5, 2),
col.regions="grey90", colorkey=FALSE) +
layer(sp.polygons(sp2, fill="saddlebrown")) +
layer(sp.polygons(sp3, fill="yellow"))
Ngoài ra, bạn có thể đạt được kết quả tương tự qua sp.layout=
luận spplot()
's. (Chỉ định first=FALSE
đảm bảo rằng 'mái nhà' và 'cửa' sẽ được vẽ sau khi/phía trên vuông màu xám được cho là đối số đầu tiên spplot()
's.)
spplot(spdf1, xlim=c(-0.5, 2), ylim=c(-0.5, 2),
col.regions="grey90", colorkey=FALSE,
sp.layout = list(list(sp2, fill="saddlebrown", first=FALSE),
list(sp3, fill="yellow", first=FALSE)))
- 1. Biểu đồ lô trong Highcharts
- 2. API lô biểu đồ
- 3. Tạo nhóm thanh-lô dữ liệu nhiều cột trong R
- 4. R: Lô ô nhiều ô bằng cách sử dụng các cột từ khung dữ liệu
- 5. Tạo biểu đồ cuộc gọi trong R
- 6. Biểu đồ lô như các dòng
- 7. R/quantmod: nhiều biểu đồ tất cả sử dụng cùng trục y
- 8. Lô một hình ảnh JPG sử dụng đồ họa cơ sở R
- 9. Nhãn X Trục trong Lô thời gian Lô bằng cách sử dụng R
- 10. Biểu đồ lô với các điểm thay vì các thanh
- 11. Bao gồm tệp lô trong tệp lô
- 12. dòng Lô đồ thị từ dữ liệu biểu đồ trong matplotlib
- 13. R: Cách xếp các biểu đồ hình tròn trên 'chấm' trong ô phân tán trong R
- 14. Cách vẽ 2 loại biểu đồ trên cùng biểu đồ sử dụng EPPlus
- 15. Biểu đồ của hai biến trong R
- 16. Lô mùa xuân FlatFileItemReader đọc nhiều tệp
- 17. Làm cách nào để in đồ họa R thành nhiều trang PDF và nhiều tệp PDF?
- 18. Lô màu 2d màu trong R
- 19. Đồ thị lô trong Java
- 20. Lô bằng màu có điều kiện dựa trên các giá trị trong R
- 21. R Lô ô lưới vĩ độ có kinh độ trên bản đồ
- 22. Lô một biểu đồ CDF bởi Microsoft Excel
- 23. Vẽ và lưu biểu đồ R
- 24. có các điểm lô được tô màu trên một phổ trong R
- 25. Nhận xét nhiều dòng trong tệp lô DOS
- 26. Cách sao chép tệp "đang sử dụng" qua tệp theo lô trong Windows 7
- 27. Sử dụng XSD2CODE với nhiều tệp lược đồ
- 28. Lô một sơ đồ cây từ một danh sách trong R
- 29. R thiết lập xlim trong xts lô
- 30. Biểu đồ trên mạng
Khía cạnh nào của spplot mà bạn không thể làm với cốt truyện cơ sở bạn cần? Với các đối tượng sp bạn chỉ vẽ ô đầu tiên, sau đó vẽ đồ thị bằng add = TRUE để phủ lên các đối tượng khác. Tại sao mang spplot vào hỗn hợp? – Spacedman