相关疑难解决方法(0)

如何使用wrap函数在GGally :: ggpairs中使用loess方法

我试图复制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参数已被弃用.

非常感谢.

r ggplot2 loess ggally

15
推荐指数
2
解决办法
7063
查看次数

如何在ggplot中重现smoothScatter的异常值绘图?

我试图获得类似smoothScatter函数的功能,仅在ggplot中.除了绘制N个最稀疏的点之外,我已经找到了所有的东西.谁能帮我这个?

library(grDevices)
library(ggplot2)

# Make two new devices
dev.new()
dev1 <- dev.cur()
dev.new()
dev2 <- dev.cur()

# Make some data that needs to be plotted on log scales
mydata <- data.frame(x=exp(rnorm(10000)), y=exp(rnorm(10000)))

# Plot the smoothScatter version
dev.set(dev1)
with(mydata, smoothScatter(log10(y)~log10(x)))

# Plot the ggplot version
dev.set(dev2)
ggplot(mydata) + aes(x=x, y=y) + scale_x_log10() + scale_y_log10() + 
  stat_density2d(geom="tile", aes(fill=..density..^0.25), contour=FALSE) +
  scale_fill_gradientn(colours = colorRampPalette(c("white", blues9))(256))
Run Code Online (Sandbox Code Playgroud)

请注意,在基本图形版本中,如何在平滑密度图上绘制100个最"稀疏"的点.稀疏度由点坐标处的核密度估计值定义,重要的是,核对密度估计值是对数变换(或任何其他坐标变换)之后计算的.我可以通过添加来绘制所有+ geom_point(size=0.5),但我只想要稀疏点.

有没有办法用ggplot来实现这个目标?这有两个部分.第一个是找出坐标变换的异常值,第二个是仅绘制那些点.

r smooth scatter-plot ggplot2

12
推荐指数
1
解决办法
6514
查看次数

现在,不推荐使用params,更改ggpairs中的颜色

我看到这些帖子 GGally :: ggpairs绘图没有网格线时绘制相关系数 使用ggpairs来创建这个图

阅读后,我能够实现这个黑客https://github.com/tonytonov/ggally/blob/master/R/gg-plots.r,我的情节看起来像这样

我的情节

我认为这是一个很好的结果,但我无法改变颜色.

MWE就是这个

library(ggally)

# load the hack
source("ggally_mod.R") 
# I saved https://github.com/tonytonov/ggally/blob/master/R/gg-plots.r as "ggally_mod.R"
assignInNamespace("ggally_cor", ggally_cor, "GGally")

ggpairs(swiss)
Run Code Online (Sandbox Code Playgroud)

现在我想跑

ggpairs(swiss, 
 lower=list(continuous="smooth", wrap=c(colour="blue")),
 diag=list(continuous="bar", wrap=c(colour="blue")))
Run Code Online (Sandbox Code Playgroud)

但颜色保持不变.有没有办法改变颜色,因为params不再工作了?

plot r ggplot2 ggally

5
推荐指数
1
解决办法
3910
查看次数

如何在GGally中使用自己的密度函数创建较低密度的图

使用以下代码:

library(GGally)
library(tidyverse)
library(viridis)


dat <- iris %>% select(-Species)

my_fn <- function(data, mapping, ...){
      # Using default ggplot density function

      p <- ggplot(data = data, mapping = mapping) + 
        stat_density2d(aes(fill=..density..), geom="tile", contour = FALSE) +
        scale_fill_gradientn(colours=viridis::viridis(100, option="viridis"))
      p
}


ggpairs(dat, lower=list(continuous=my_fn)) +
  theme_void()
Run Code Online (Sandbox Code Playgroud)

我可以创建此图:

在此处输入图片说明

我的问题是如何使用以下方案更改GGally低密度图:

library(MASS)
# Get density of points in 2 dimensions.
# @param x A numeric vector.
# @param y A numeric vector.
# @param n Create a square n by n grid to compute density.
# …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggally

4
推荐指数
1
解决办法
318
查看次数

R - 平滑颜色并向散点图添加图例

我在R中有一个散点图.每个(x,y)点都根据其z值着色.所以,你可以把每个点为(x,y,z),在(x,y)确定其位置,并z确定其沿彩色渐变色.我想补充两件事

  1. 右侧的图例显示颜色渐变,哪些z值对应于什么颜色
  2. 我想,我想使用某种类型的插值来平滑所有颜色.换句话说,整个绘图区域(或至少大部分绘图区域)应该变为彩色,以使其看起来像一个巨大的热图而不是散点图.所以,在下面的例子中,周围会有很多橙色/黄色,然后是一些紫色斑点.如果需要的话,我很高兴进一步澄清我在这里要解释的内容.

这是我目前的代码,以及它制作的图像.

x <- seq(1,150)
y <- runif(150)
z <- c(rnorm(mean=1,100),rnorm(mean=20,50))
colorFunction <- colorRamp(rainbow(100))
zScaled <- (z - min(z)) / (max(z) - min(z))
zMatrix <- colorFunction(zScaled)
zColors <- rgb(zMatrix[,1], zMatrix[,2], zMatrix[,3], maxColorValue=255)
df <- data.frame(x,y)
x <- densCols(x,y, colramp=colorRampPalette(c("black", "white")))
df$dens <- col2rgb(x)[1,] + 1L
plot(y~x, data=df[order(df$dens),],pch=20, col=zColors, cex=1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

interpolation r legend scatter-plot heatmap

3
推荐指数
1
解决办法
5376
查看次数

标签 统计

r ×5

ggplot2 ×4

ggally ×3

scatter-plot ×2

heatmap ×1

interpolation ×1

legend ×1

loess ×1

plot ×1

smooth ×1