情節似乎有一個錯誤,否則我無法理解這個問題。在解決之前,我需要一個解決方法。
有誰明白為什么這四年獨特的作業是有效的
library(sf)
library(plotly)
library(ggplot2)
library(dplyr)
dat = data.frame(cla = factor(rep(LETTERS[1:2],10)), year = rep(c(2018:2022),4),x=runif(20, 1, 99),y = runif(20, 1, 99))
dat_sf = st_as_sf(dat, coords = c("x","y"))
gg = dat_sf %>%
ggplot(aes(color=cla, frame = year))
geom_sf(size=3)
ggplotly(gg)
這會引發五年的錯誤
dat = data.frame(cla = factor(rep(LETTERS[1:2],10)), year = rep(c(2018:2021),5),x=runif(20, 1, 99),y = runif(20, 1, 99))
dat_sf = st_as_sf(dat, coords = c("x","y"))
gg = dat_sf %>%
ggplot(aes(color=cla, frame = year))
geom_sf(size=3)
ggplotly(gg)
uj5u.com熱心網友回復:
問題不在于 plotly 包,而在于您創建 data.frame 資料的方式。
當代碼運行時,您已經考慮了五個不同的年份并重復了 4 次,而當代碼沒有按預期作業時,您已經考慮了四個不同的年份并重復了 5 次。因此,當警告發生時,cla A 和 B 之間沒有共同的年份。
cla A 有 2018 年和 2020 年,而 cla B 有 2019 年和 2021 年作為引起警告的不同年份。這是因為rep(c(2018:2021), 5) 將資料框創建為
cla year x y
1 A 2018 50.820322 88.405820
2 B 2019 34.074510 74.976814
3 A 2020 88.644793 96.961966
4 B 2021 4.133220 5.326413
5 A 2018 24.248510 89.533287
6 B 2019 68.276054 85.819080
7 A 2020 23.130205 76.989944
8 B 2021 32.212470 37.928009
9 A 2018 18.050414 5.126589
10 B 2019 79.540099 36.712286
11 A 2020 15.335642 27.827624
12 B 2021 81.626304 84.345813
13 A 2018 33.437787 36.515368
14 B 2019 37.668600 30.838823
15 A 2020 62.715052 75.395263
16 B 2021 10.470107 83.793793
17 A 2018 3.155384 45.876313
18 B 2019 98.318388 72.503903
19 A 2020 58.226007 11.199706
20 B 2021 77.618660 22.558351
取而代之的是,您可以使用rep(2018:2021, each = 5)which 將創建如下資料框:
dat = data.frame(cla = factor(rep(LETTERS[1:2],10)), year = rep(2018:2021, each = 5),x=runif(20, 1, 99),y = runif(20, 1, 99))
cla year x y
1 A 2018 94.487222 90.096357
2 B 2018 74.699679 6.525458
3 A 2018 81.257628 50.285014
4 B 2018 41.942156 35.353388
5 A 2018 59.196172 83.864500
6 B 2019 79.284709 80.030646
7 A 2019 88.064048 12.498460
8 B 2019 38.748776 70.843282
9 A 2019 9.851564 24.056348
10 B 2019 62.322876 8.345762
11 A 2020 74.072349 92.693322
12 B 2020 9.367089 16.402447
13 A 2020 30.450726 64.411620
14 B 2020 61.227091 18.004739
15 A 2020 74.787342 2.967253
16 B 2021 90.871599 52.088757
17 A 2021 47.623550 9.455234
18 B 2021 56.577708 28.734230
19 A 2021 73.188794 42.202620
20 B 2021 85.029848 58.553256
這將解決錯誤繪圖的問題,因為 cla A 和 B 將有共同的繪圖年份。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/371961.html
