GGally::ggpairs绘制好像下面的图表.我唯一想要进一步完善它的是删除绘图上部的所有网格线,其中是相关系数.也许还可以在每个上图周围绘制矩形.
library("GGally")
data(iris)
ggpairs(iris[, 1:4], lower=list(continuous="smooth", params=c(colour="blue")),
diag=list(continuous="bar", params=c(colour="blue")),
upper=list(params=list(corSize=6)), axisLabels='show')
Run Code Online (Sandbox Code Playgroud)

我正在使用下面的代码生成以下图表.
# Setup
data(airquality)
# Device start
png(filename = "example.png", units = "cm", width = 20, height = 14, res = 300)
# Define chart
pairs.chrt <- ggpairs(airquality,
lower = list(continuous = "smooth"),
diag = list(continuous = "blank"),
upper = list(continuous = "blank")) +
theme(legend.position = "none",
panel.grid.major = element_blank(),
axis.ticks = element_blank(),
axis.title.x = element_text(angle = 180, vjust = 1, color = "black"),
panel.border = element_rect(fill = NA))
# Device off and print
print(pairs.chrt)
dev.off()
Run Code Online (Sandbox Code Playgroud)

我目前正在尝试修改轴标题的显示.特别是,我希望轴标题是:
我试图复制Coursera R回归模型课程中给出的这个简单示例:
require(datasets)
data(swiss)
require(GGally)
require(ggplot2)
ggpairs(swiss, lower = list(continuous = "smooth", params = c(method = "loess")))
Run Code Online (Sandbox Code Playgroud)
我希望看到一个6x6对图 - 一个散点图,黄土更平滑,瑞士数据中6个变量的每个组合的置信区间.
但是,我收到以下错误:
display_param_error()中的错误:'params'是不推荐使用的参数.请'包装'函数以提供参数.help("wrap",package ="GGally")
我通过看ggpairs()和wrap()帮助文件,并尝试很多的排列wrap()和wrap_fn_with_param_arg()功能.
我可以按预期工作:
ggpairs(swiss, lower = list(continuous = wrap("smooth")))
Run Code Online (Sandbox Code Playgroud)
但是一旦我添加了黄土部分,它就不会:
ggpairs(swiss, lower = list(continuous = wrap("smooth"), method = wrap("loess")))
Run Code Online (Sandbox Code Playgroud)
当我尝试上面这一行时,我收到此错误.
值[3L]出错:以下ggpair绘图函数随时可用:连续:c('points','smooth','density','cor','blank')组合:c('box','dot ','facethist','facetdensity','denstrip','blank')离散:c('ratio','facetbar','blank')na:c('na','blank')
diag continuous:c('densityDiag','barDiag','blankDiag')diag离散:c('barDiag','blankDiag')diag na:c('naDiag','blankDiag')
您还可以提供您自己的函数,该函数遵循函数的api(数据,映射,...){...并返回一个ggplot2绘图对象Ex:my_fn < - function(data,mapping,...){p < - ggplot(data = data,mapping = mapping)+ geom_point(...)p} ggpairs(data,lower = list(continuous = my_fn))
提供的功能:黄土
显然我在错误的地方进入黄土.任何人都可以帮我理解如何添加黄土部分?
请注意,我的问题与此问题不同,因为我问如何在ggpairs中实现黄土,因为params参数已被弃用.
非常感谢.
我在Shiny应用程序中有一些代码,可以生成下面的第一个图表.如您所见,字体大小随相关系数的大小而变化.我想用ggpairs(GGally)或ggplot2生成类似的东西.下面的第二张图片是使用以下代码生成的:
library(GGally)
ggpairs(df,
upper = list(params = c(size = 10)),
lower = list(continuous = "smooth", params = c(method = "loess", fill = "blue"))
)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,相关字体的大小可以使用大小进行调整,但是当我设置大小向量时,只使用第一个值.我还想删除'Corr:'并添加一个重要指标.使用颜色作为相关系数的符号也很不错.在较低的,method并fill没有链接smooth.关于如何让第二个绘图捕获第一个更多功能的任何建议都会很棒.
df <- structure(list(y1 = c(8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24,
4.26, 10.84, 4.82, 5.68), x1 = c(10L, 8L, 13L, 9L, 11L, 14L,
6L, 4L, 12L, 7L, 5L), y2 = c(9.14, 8.14, 8.74, 8.77, 9.26, 8.1,
6.13, 3.1, 9.13, 7.26, 4.74), x2 = c(10L, 8L, 13L, 9L, …Run Code Online (Sandbox Code Playgroud) 考虑这个例子:
data(tips, package = "reshape")
library(GGally)
pm <- ggpairs(tips, mapping = aes(color = sex), columns = c("total_bill", "time", "tip"))
pm
Run Code Online (Sandbox Code Playgroud)
如何使密度图更透明并去除黑线?
这些GGally软件包最近似乎发生了很大的变化,我找不到一个有效的解决方案
更新
我找到了如何使用自定义函数更改alpha:
my_dens <- function(data, mapping, ..., low = "#132B43", high = "#56B1F7") {
ggplot(data = data, mapping=mapping) +
geom_density(..., alpha=0.7)
}
pm <- ggpairs(tips, mapping = aes(color = sex), columns = c("total_bill", "time", "tip"),
diag=list(continuous=my_dens))
pm
Run Code Online (Sandbox Code Playgroud)
但黑线仍然存在.
我正在使用绘制散点图矩阵ggpairs.我使用以下代码:
# Load required packages
require(GGally)
# Load datasets
data(state)
df <- data.frame(state.x77,
State = state.name,
Abbrev = state.abb,
Region = state.region,
Division = state.division
)
# Create scatterplot matrix
p <- ggpairs(df,
# Columns to include in the matrix
columns = c(3,5,6,7),
# What to include above diagonal
# list(continuous = "points") to mirror
# "blank" to turn off
upper = "blank",
legends=T,
# What to include below diagonal
lower = list(continuous = "points"),
# What to …Run Code Online (Sandbox Code Playgroud) 我正在创建一个散点图矩阵GGally::ggpairs.我正在使用自定义函数(下面称为my_fn)来创建左下角的非对角线子图.在调用该自定义函数的过程中,有关于计算的每个子图的信息,以及我想要存储以供日后使用的子图.
在下面的示例中,每个h@cID都是具有100个值的int []结构.总共,它在my_fn中创建了10次(对于10个左下角的非对角线子图中的每一个,都会创建一次).我试图将所有这10个h@cID结构存储到listCID列表对象中.
我没有成功使用这种方法,并且我尝试了一些其他变体(例如尝试将listCID输入参数作为输入参数my_fn,或者最终尝试返回它).
我可以h@cID有效地存储十个结构,my_fn以便以后使用吗?我觉得有几个我不完全熟悉的语法问题可以解释为什么我被卡住了,同样如果我没有使用适当的术语,我也很乐意改变这个问题的标题.谢谢!
library(hexbin)
library(GGally)
library(ggplot2)
set.seed(1)
bindata <- data.frame(
ID = paste0("ID", 1:100),
A = rnorm(100), B = rnorm(100), C = rnorm(100),
D = rnorm(100), E = rnorm(100))
bindata$ID <- as.character(bindata$ID
)
maxVal <- max(abs(bindata[ ,2:6]))
maxRange <- c(-1 * maxVal, maxVal)
listCID <- c()
my_fn <- function(data, mapping, ...){
x <- data[ ,c(as.character(mapping$x))]
y <- data[ ,c(as.character(mapping$y))]
h …Run Code Online (Sandbox Code Playgroud) 我试图在对角线中生成一个带有密度图的散点图矩阵(最好使用ggplot).ggpairsGGally包中的文档说明:
diag是一个列表,可能只包含变量'continuous'和'discrete'.diag列表的每个元素都是一个实现以下选项的字符串:continuous =恰好其中一个('density','bar','blank'); discrete =恰好其中一个('bar','blank').
这表明(??)这应该可以使用diag=list(continuous="density").
但是以下代码:
xx <- mtcars[,c(1,3,4,6)] ## extract mpg, disp, hp, and wt from mtcars
library(GGally)
ggpairs(xx,diag=list(continuous="density"))
Run Code Online (Sandbox Code Playgroud)
给出这个:

我究竟做错了什么?
注意:尝试做同样的事情plotmatrix(xx)给出了这个:

这是因为密度图显然是使用基于完整数据集(xx)的范围在每个对角线面上缩放,而不是基于xx适当面的子集的范围.结果,第二行(disp)看起来很好,因为disp具有最大范围,但是第1行和第4行是嘎吱嘎吱的.
我有以下数据集和代码来构建数据框中每对变量的2d密度等值线图.我的问题是ggpairs()中是否有一种方法可以确保不同变量对的比例相同,例如ggplot2中不同构面的相同比例.例如,我希望每个图片的x比例和y比例都来自[-1,1].
提前致谢!
情节看起来像 
library(GGally)
ggpairs(df,upper = list(continuous = "density"),
lower = list(combo = "facetdensity"))
#the dataset looks like
print(df)
x y z w
1 0.49916998 -0.07439680 0.37731097 0.0927331640
2 0.25281542 -1.35130718 1.02680343 0.8462638556
3 0.50950876 -0.22157249 -0.71134553 -0.6137126948
4 0.28740609 -0.17460743 -0.62504812 -0.7658094835
5 0.28220492 -0.47080289 -0.33799637 -0.7032576540
6 -0.06108038 -0.49756810 0.49099505 0.5606988283
7 0.29427440 -1.14998030 0.89409384 0.5656682378
8 -0.37378096 -1.37798177 1.22424964 1.0976507702
9 0.24306941 -0.41519951 0.17502049 -0.1261603208
10 0.45686871 -0.08291032 0.75929106 0.7457002259
11 -0.16567173 -1.16855088 0.59439600 0.6410396945
12 0.22274809 …Run Code Online (Sandbox Code Playgroud) 给定一个新的会话,执行函数文档中提供的小ggparcoord(.)示例
library(GGally)
data(diamonds, package="ggplot2")
diamonds.samp <- diamonds[sample(1:dim(diamonds)[1], 100), ]
ggparcoord(data = diamonds.samp, columns = c(1, 5:10))
Run Code Online (Sandbox Code Playgroud)
结果如下:
再次,从一个新的会话开始并使用加载的dplyr执行相同的脚本
library(GGally)
library(dplyr)
data(diamonds, package="ggplot2")
diamonds.samp <- diamonds[sample(1:dim(diamonds)[1], 100), ]
ggparcoord(data = diamonds.samp, columns = c(1, 5:10))
Run Code Online (Sandbox Code Playgroud)
结果是:
错误:(列表)对象无法强制输入'double'
需要注意的是顺序库()语句也没有关系.
问题
我需要更大的分析中的dplyr和ggparcoord(.),但这个最小的例子反映了我面临的问题.
版本
UPDATE
将Joran给出的优秀答案包括起来:
答案
ggally ×10
r ×10
ggplot2 ×8
correlation ×1
dplyr ×1
loess ×1
plot ×1
r-corrplot ×1
scatter-plot ×1