gpt4 book ai didi

r - ggplot2 以轴为单位指定点大小

转载 作者:行者123 更新时间:2023-12-04 12:01:19 26 4
gpt4 key购买 nike

我想从一个简单的数据集中绘制一个矩形内有大点的图。我可能想在不同方面显示多个结果。问题是矩形的大小(使用 geom_rect )以轴为单位定义,而 size geom_point 的论据是在其他一些单位。因此,矩形的点的相对大小根据面的数量而变化:

data<-data.frame(y=1:3,
facet=factor(1:3),
x=rep(1,3))

testplot<-function(data){
p<-ggplot(data,aes(x=x,y=y,color=y))
p<-p+facet_grid(.~facet)
p<-p+scale_x_continuous(limits=c(0.5,1.5))
p<-p+scale_y_continuous(limits=c(0.5,3.5))
p<-p+geom_rect(xmin=0.85,xmax=1.15,ymin=0.74,ymax=3.25)
p<-p+geom_point(size=50)
return(p)
}

p1<-testplot(subset(data,facet=="1"))
p2<-testplot(data)

我的问题是,是否可以以轴为单位缩放绝对点大小,以便 p1 和 p2 的点和矩形的相对大小相同,而与图中的面数无关。

最佳答案

使这相当直接,半径 r是相对于坐标比例缩放的(因此如果你想要圆圈,使用 coord_fixed() 很重要)。

示例 :

library(ggplot2)
library(ggforce)

##sample data frame
grid_df = data.frame(x = 1:5, y = rep(1,5), r = seq(0.1, 0.5, 0.1), fill = letters[1:5])

有空圈
ggplot() + 
geom_circle(data = grid_df, mapping = aes(x0 = x, y0 = y, r = r)) +
coord_fixed()

enter image description here

带有实心圆圈和“固定”填充(在 aes 之外)
ggplot() + 
geom_circle(data = grid_df, mapping = aes(x0 = x, y0 = y, r = r), fill = 'black') +
coord_fixed()

enter image description here

带有实心圆圈和基于变量的填充(在 aes 内)
ggplot() + 
geom_circle(data = grid_df, mapping = aes(x0 = x, y0 = y, r = r, fill = fill)) +
coord_fixed()

enter image description here

关于r - ggplot2 以轴为单位指定点大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24488975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com