相关疑难解决方法(0)

如何在ggplot2中为同一美学设置多个图例?

我正在绘制ggplot2中多个数据帧的数据,如下所示:

# subset of iris data
vdf = iris[which(iris$Species == "virginica"),]
# plot from iris and from vdf
ggplot(iris) + 
   geom_line(aes(x=Sepal.Width, y=Sepal.Length, colour=Species)) + 
   geom_line(aes(x=Sepal.Width, y=Sepal.Length), colour="gray", size=2,
             data=vdf)
Run Code Online (Sandbox Code Playgroud)

图例colour仅包含条目iris,而不包括条目vdf.我怎样才能使ggplot2聚合成一个传说data=vdf,在这种情况下,它将是传说下面的灰线iris?谢谢.

plot r ggplot2

6
推荐指数
2
解决办法
2297
查看次数

使用 ggplot 中的两个梯度分离土地和水

我试图在地图上获得土地和水的两个单独的梯度。我能够获得水梯度(第一张图),但不能获得土地。

如何在此代码中设置土地的灰色渐变(类似于下面的图 2)?

样本数据

library(marmap)
library(ggplot2)

greys <- c(grey(0.6), grey(0.93), grey(0.99))

# Get map data
bat <- getNOAA.bathy(-68, -51, -48, -39, res = 1, keep = TRUE)
Run Code Online (Sandbox Code Playgroud)

生成水梯度图

autoplot(bat, geom = c("raster", "contour"), colour = "white", size = 0.1) + 
  scale_fill_gradientn(limits = c(-6600, 0), colors = c("steelblue4", "#C7E0FF")) +
  NULL
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我尝试在 中设置不同的限制scale_fill_gradientn,但运气不佳:

autoplot(bat, geom = c("raster", "contour"), colour = "white", size = 0.1) + 
  scale_fill_gradientn(limits = c(min(bat), max(bat)), 
                       colors = c("steelblue4", "#C7E0FF", greys)) +
  NULL
Run Code Online (Sandbox Code Playgroud)

所需的输出(使用基本 R …

maps r geospatial ggplot2

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

改变使用ggplot2创建的散点图上的颜色渐变

是否可以通过审美来改变绘图的颜色渐变?我正在使用与下面给出的线类似的代码生成一个图,并且在某些情况下发现并不总是很容易区分不同的组.例如,在下面的图表中,如果我可以让A组点使用白蓝渐变而B组点使用白红渐变,则更容易区分结果.

data <- data.frame(x=c(1,2,3,4,5,6,1,2,3,4,5,6), 
    y=c(1,2,3,4,5,6,1,2,3,4,5,6), grp=c(rep("A",6),rep("B",6)),
    dt=c("2010-06-30","2010-05-31","2010-04-30",
      "2010-03-31","2010-02-26","2010-01-29","2010-06-30",
      "2010-05-31","2010-04-30",
      "2010-03-31","2010-02-26","2010-01-29"))
p <- ggplot(data, aes(x,y,color=as.integer(as.Date(data$dt)))) + 
    geom_jitter(size=4, alpha=0.75, aes(shape=grp)) + 
    scale_colour_gradient(limits=as.integer(as.Date(c("2010-01-29","2010-06-30"))),
    low="white", high="blue") +
    scale_shape_discrete(name="") +
    opts(legend.position="none")
print(p)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

使用渐变按组对散点图进行颜色编码

我有XY我想使用曲线图的数据scatter plot,用Rplotly包.

set.seed(1)
df <- data.frame(x=c(rnorm(30,1,1),rnorm(30,5,1),rnorm(30,9,1)),
                 y=c(rnorm(30,1,1),rnorm(30,5,1),rnorm(30,9,1)),
                 group=c(rep("A",30),rep("B",30),rep("C",30)),score=runif(90,0,1))
Run Code Online (Sandbox Code Playgroud)

每个点都分配给三个组中的一个(df$group)并且在该[0,1]范围内具有分数.

我正在寻找一种方法来绘制数据图形,使每组用不同颜色着色,但颜色(或强度)的阴影反映了分数.

所以我认为这会奏效:

library(dplyr)
library(plotly)

    plot_ly(marker=list(size=10),type='scatter',mode="markers",x=~df$x,y=~df$y,color=~df$score,colors=c("#66C2A5","#FC8D62","#8DA0CB")) %>%
  layout(xaxis=list(title="X",zeroline=F,showticklabels=F),yaxis=list(title="Y",zeroline=F,showticklabels=F))
Run Code Online (Sandbox Code Playgroud)

但我得到: 在此输入图像描述

如果我只是通过group以下颜色代码:

plot_ly(marker=list(size=10),type='scatter',mode="markers",x=~df$x,y=~df$y,color=~df$group,colors=c("#66C2A5","#FC8D62","#8DA0CB")) %>%
      layout(xaxis=list(title="X",zeroline=F,showticklabels=F),yaxis=list(title="Y",zeroline=F,showticklabels=F))
Run Code Online (Sandbox Code Playgroud)

我明白了: 在此输入图像描述

所以看起来它正在混合group颜色和score渐变.

我正在寻找的是有绿色的色调(比如从有色左下方组graydarkgreen)对应于score(从低到高),与同为分别在橙色和蓝色,其他两组.

gradient r scatter-plot plotly

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

带有 geom_raster 和 geom_point 的两种颜色渐变

我有一个非常简单的问题,但我一直在努力在网上寻找答案。

我有一个用ggplot + geom_raster制作的热图。我想在每个矩形内插入一个符号,以便它们可以传达另一条信息。为此,我想到了使用geom_point

绘图很棒,但我在颜色渐变方面遇到了问题。

plot <- ggplot(data, aes(x = Var1, y = Var2, fill = value)) +
        geom_tile() + 
        geom_raster(aes(fill=value)) +
        scale_fill_gradient2(low = "gray", high = "red", mid = "#e3e3e3", midpoint = "0") + 
        geom_point(data = significance, aes(x = Var1, y = Var, color = value), shape = 21, size = 3) +
        scale_color_gradient(low = "gray", high = "gray")
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,散点图同时吸收了两个梯度,而不仅仅是吸收了“颜色”梯度。由于热图的值非常接近于零,而散点图的值很高,因此“填充”部分使热图全为灰色。

我以此作为参考尝试两种渐变:使用两种比例颜色渐变 ggplot2

r heatmap ggplot2

2
推荐指数
1
解决办法
504
查看次数

标签 统计

r ×5

ggplot2 ×4

geospatial ×1

gradient ×1

heatmap ×1

maps ×1

plot ×1

plotly ×1

scatter-plot ×1