我正在绘制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?谢谢.
我试图在地图上获得土地和水的两个单独的梯度。我能够获得水梯度(第一张图),但不能获得土地。
如何在此代码中设置土地的灰色渐变(类似于下面的图 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 …
是否可以通过审美来改变绘图的颜色渐变?我正在使用与下面给出的线类似的代码生成一个图,并且在某些情况下发现并不总是很容易区分不同的组.例如,在下面的图表中,如果我可以让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) 我有XY我想使用曲线图的数据scatter plot,用R的plotly包.
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渐变.
我正在寻找的是有绿色的色调(比如从有色左下方组gray到darkgreen)对应于score(从低到高),与同为分别在橙色和蓝色,其他两组.
我有一个非常简单的问题,但我一直在努力在网上寻找答案。
我有一个用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 ×5
ggplot2 ×4
geospatial ×1
gradient ×1
heatmap ×1
maps ×1
plot ×1
plotly ×1
scatter-plot ×1