![](/img/trans.png)
[英]ggplot2 plots not rendering points if alpha in geom_points is set to other value than 1 in anaconda
[英]ggplot2 plots more points than asked
我試圖用不同顏色的非重疊正方形填充正方形區域,並且ggplot2在較高的x和y限制處比數據框中的點繪制更多的點。 這是代碼
l = 1000
a=seq(0,1, 1/(l-1))
x=rep(a, each=length(a))
y=rep(a, length(a))
k = length(x)
c=sample(1:10, k, replace = TRUE)
data <- data.frame(x, y, c)
ggplot(data, aes(x=x, y=y)) + geom_point(shape=15, color=c)
ggsave('k.jpg', width=10, height=10)
我用RStudio得到的結果是這樣。 請注意圖像右側和頂部的額外點。
我如何才能讓ggplot專門為數據幀中的那些點專門繪制一個正方形,而不是更多?
作為第二個相關問題,如果l從1000更改為l = 100,會發生什么情況
我的問題是,正方形沒有完全堆疊在一起,在它們之間留有空白。 我想知道如何從數組(l)的每個維度中的點數計算geom_point內的size的正確值,以使正方形完美堆疊。
非常感謝
使用geom_tile
而不是geom_point
可能會更好,因為這樣可以更好地控制矩形的大小和邊框的寬度。 有關詳細信息,請參見?geom_tile
。
使用OP的示例提供一些替代方法,減小數據框的尺寸以增加切片的大小:
數據
library(ggplot2)
l = 100
a = seq(0, 1, 1 / (l - 1))
x = rep(a, each = length(a))
y = rep(a, length(a))
k = length(x)
c = sample(1:10, k, replace = TRUE)
data <- data.frame(x, y, c)
例子1
非常簡單,只需粘貼"white"
作為colour
即可使瓷磚更具特色。
ggplot(data, aes(x = x, y = y, fill = c)) + geom_tile(colour = "white")
例子2
手動創建一個調色板,並使用coord_equal
強制指定比例(默認為1),以便將圖塊coord_equal
正方形:
colors<-c("peachpuff", "yellow", "orange", "orangered", "red",
"darkred","firebrick", "royalblue", "darkslategrey", "black")
ggplot(data, aes(x = x, y = y)) +
geom_tile(aes(fill = factor(c)), colour = "white") +
scale_fill_manual(values = colors, name = "Colours") +
coord_equal()
比較geom_point和geom_tile
創建較小的數據框(10 x 10, l = 10
),以更仔細地觀察使用geom_point而不是geom_tile時發生的情況。
原始OP代碼
ggplot(data, aes(x = x, y = y)) + geom_point(shape = 15, color = c)
例子1
ggplot(data, ae(x = x, y = y, fill = c)) + geom_tile(colour = "white")
例子2
colors<-c("peachpuff", "yellow", "orange", "orangered", "red",
"darkred","firebrick", "royalblue", "darkslategrey", "black")
ggplot(data, aes(x = x, y = y)) +
geom_tile(aes(fill = factor(c)), colour = "white") +
scale_fill_manual(values = colors, name = "Colours") +
coord_equal()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.