gpt4 book ai didi

r - 如何仅更改 GGally 包中 ggpairs 函数中 "lower"绘图的参数

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

我有以下例子

data(diamonds, package="ggplot2")
diamonds.samp <- diamonds[sample(1:dim(diamonds)[1],200),]

ggpairs(diamonds.samp, columns=8:10,
upper=list(continuous='cor'),
lower=list(continuous = 'points'),
diag=list(continuous='density'),
axisLabels='show'
)

结果是一个非常漂亮的数字: Result of ggpair function

但我的问题是,在实际数据集中,我有很多点,我想更改点几何的参数。我想减小点大小并使用较低的 alpha 值。但是,我不能使用适用于所有情节的“参数”选项来做到这一点 - 而不仅仅是较低的情节:
ggpairs(diamonds.samp, columns=8:10,
upper=list(continuous='cor'),
lower=list(continuous = 'points'),
diag=list(continuous='density'),
params=c(alpha=1/10),
axisLabels='show'
)

导致这个情节:
Result of ggpair function

有没有一种方法可以将参数仅应用于“较低”的图 - 或者我是否必须按照主题 How to adjust figure settings in plotmatrix? 中的建议使用创建自定义图的功能

提前 - 谢谢!

最佳答案

似乎没有任何优雅的方法可以做到这一点,但您可以通过编写一个函数来获取来自 ggally_pairs() 对象的现有子图调用,然后在最后一个括号之前挤压参数。 [不是很健壮,它只适用于图形已经有效的情况]

diamonds.samp <- diamonds[sample(1:dim(diamonds)[1],200),]
g<-ggpairs(diamonds.samp, columns=8:10,
upper=list(continuous='cor'),
lower=list(continuous = 'points'),
diag=list(continuous='density'),
axisLabels='show'
)

add_p<-function(g,i,params){

side=length(g$columns) # get number of cells per side
lapply(i,function(i){

s<-as.character(g$plots[i]) # get existing call as a template
l<-nchar(s)
p<-paste0(substr(s,1,l-1),",",params,")") # append params before last bracket
r<-i%/%side+1 # work out the position on the grid
c<-i%%side

array(c(p,r,c)) # return the sub-plot and position data

})

}


rep_cells<-c(4,7,8)
add_params<-"alpha=0.3, size=0.1, color='red'"

ggally_data<-g$data # makes sure that the internal parameter picks up your data (it always calls it's data 'ggally_data'
calls<-add_p(g,rep_cells,params=add_params) #call the function
for(i in 1:length(calls)){g<-putPlot(g,calls[[i]][1],as.numeric(calls[[i]][2]),as.numeric(calls[[i]][3]))}

g # call the plot

enter image description here

关于r - 如何仅更改 GGally 包中 ggpairs 函数中 "lower"绘图的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20372224/

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