2017-07-22 70 views
1

不知道标题恰当地解释了我的问题:使用小包裹,我已经一个情节这是其他地块的总结,这导致其上,我绘制颜色变高得多的价值是阴谋通过。因此所有其他地块只显示(大部分)一种颜色:Example graphGGPLOT2方面设置的情节颜色

我希望颜色化取决于非概要图,而如果总结图由于包含高值而只显示大部分颜色(尽管较低的值仍应显示适当的颜色),我不太在意。感谢任何帮助。

示例代码:

library(gdata) 
library(viridis) 
library(ggplot2) 
summary <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 15, max = 200)) 
dat2 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30)) 
dat3 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30)) 
dat4 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30)) 
dat <- combine(summary, dat2, dat3, dat4) 

p <- ggplot(dat, aes(x = x, y = y)) + 
geom_point(aes(color = z)) + 
scale_color_viridis(option = "magma") + 
theme(panel.background = element_rect(fill = "grey93"), 
    strip.background = element_blank(), 
    panel.grid = element_blank(), 
    panel.border = element_rect(fill = NA, colour = "black", size = 0.5, linetype = "solid"))` 

p1 <- p + facet_wrap(~source) 
+0

它是确定,如果你只是设置'z'对于那些'summary'行0的得分?如果是这样,在运行'ggplot(之前运行此行)'代码:'DAT < - 变异(DAT,Z = if_else(源== “摘要”,0,z)的)' – Phil

+0

不幸的是并非如此,因为这些值仍然是有趣的信息,虽然我期望最高,但有些可能会更低。 – Jaeoc

回答

1
summary <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 15, max = 200)) 
dat2 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30)) 
dat3 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30)) 
dat4 <- data.frame(x = 1:15, y = runif(15), z = runif(15, min = 0, max = 30)) 
dat <- combine(summary, dat2, dat3, dat4) 
dat_ <- subset(dat, source != "summary") 

cut_off <- 70 # adjust here where you want the cut-off of z values to be. 
summary2 <- subset(dat, source == "summary" & z < cut_off) 

p <- ggplot(dat_, aes(x = x, y = y)) + 
geom_point(aes(color = z)) + 
geom_point(data = summary2, aes(col = z)) + 
scale_color_viridis(option = "magma") + 
theme(panel.background = element_rect(fill = "grey93"), 
     strip.background = element_blank(), 
     panel.grid = element_blank(), 
     panel.border = element_rect(fill = NA, colour = "black", size = 0.5, linetype = "solid")) 

p1 <- p + facet_wrap(~source) 

summary3 <- subset(dat, source == "summary" & z >= cut_off) 
p1 + geom_point(data = summary3, col = "red") # adjust the color aesthetic of the highest summary graph points here. 

那么,你将看到的是,有AZ值大于或等于70的汇总图彩色“红”汇总数据,因此他们与对比viridis岩浆比例。 (试验“白色”,它也很好地对比)。 z值小于70的所有摘要数据观察结果将在摘要图中遵循与其他三个图相同的色阶。降低cut_off变量(即当前设置为70)以在dat2,dat3和dat4图表中获得更多颜色。

这就是你一直在寻找确切的答案。

+0

不知道你可以在这个小平面上添加图形,并且非常感谢你的学习。不过,我仍然希望汇总图中任何可能的较低值显示适当的比例尺颜色,因此这不能很好地解决我的问题。 – Jaeoc

+0

我对原始答案进行了编辑。告诉我这是否有效,如果有的话,你需要做什么调整,如果有的话。 – Odysseus210

+0

也不太合适。为了可比性,我需要一种特定的颜色来表示图中相同的值。一张图中的z = 30应该与所有其他图中的z = 30具有相同的颜色。我最初使用gridextra,但由于这个原因去了包装。我欣赏这些尝试! – Jaeoc