我試圖在 ggplot2 中繪制一個圓形的 7 個點的圖形,但試圖繪制它們只顯示 6 個,我不知道為什么會發生這種情況。
代碼如下:
# Function for the points
circleFun <- function(center = c(-1, 1), diameter = 1, npoints = 7) {
r <- diameter / 2
tt <- seq(0, 2 * pi, length.out = npoints)
xx <- center[1] r * cos(tt)
yy <- center[2] r * sin(tt)
return(data.frame(x = xx, y = yy))
}
# example with 7 points
ej <-
circleFun(diameter = 50, center = c(50,50), npoints = 7)
# plot
ej |>
ggplot(aes(x = x, y = y))
geom_point(alpha = 0.4)
theme_bw()
有誰知道為什么會這樣?
uj5u.com熱心網友回復:
第 1 行和第 7 行相同,因此它們的點重疊。這個點有點暗(根據你的 alpha = 0.4)。您可以通過添加 x = jitter(x) 來使這一點變得明顯(為了演示,您不會在生產中這樣做)。鑒于相同的資料,我不確定您期望看到什么。
如果您想要 7 個不同的點,那么我建議您創建n 1并洗掉最后一個(或第一個)點。
circleFun <- function(center = c(-1, 1), diameter = 1, npoints = 7) {
r <- diameter / 2
tt <- seq(0, 2 * pi, length.out = npoints 1) # changed
xx <- center[1] r * cos(tt)
yy <- center[2] r * sin(tt)
data.frame(x = xx, y = yy)[-1,,drop = FALSE] # changed
}
## unchanged from here on
ej <-
circleFun(diameter = 50, center = c(50,50), npoints = 7)
ej |>
ggplot(aes(x = x, y = y))
geom_point(alpha = 0.4)
theme_bw()

(順便說一句,不需要顯式呼叫return(.),尤其是當它是函式的唯一端點并且基于資料流“顯而易見”時。這當然沒有什么壞處,但它在呼叫堆疊上增加了一步這沒有任何價值。它可能是宣告性/自我記錄,因此這是一個風格/主觀點。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/407009.html
標籤:
