我想將資料框中的變數(即('prop1', 'prop2', 'prop3'))鏈接到圖中的特定顏色和形狀。但是,我還想排除資料(使用dplyr::filter)來自定義繪圖顯示,而不更改用于特定變數的點和形狀。下面給出了一個最小的例子。
library(ggplot2)
library(dplyr)
library(magrittr)
obj <- c("cmpd 1","cmpd 1","cmpd 1","cmpd 2","cmpd 2")
x <- c(1, 2, 4, 7, 3)
var <- c("prop1","prop2","prop3","prop2","prop3")
y <- c(1, 2, 3, 2.5, 4)
col <- c("#E69F00","#9E0142","#56B4E9","#9E0142","#56B4E9")
shp <- c(0,1,2,1,2)
df2 <- cbind.data.frame(obj,x,var,y,col,shp)
plot <- ggplot(data = df2 %>%
filter(obj %in% c(
"cmpd 1",
"cmpd 2"
)),
aes(x = x,
y = y,
colour = as.factor(var),
shape = as.factor(var)))
geom_point(size=2)
#scale_shape_manual(values=shp)
#scale_color_manual(values=col)
facet_grid(.~obj)
plot

但是,當我編輯cmpd1(只是在代碼中散列)顏色和形狀prop2以及更改prop3時cmpd2(請參見 plot2)。

為此,我嘗試在代碼中添加scale_shape_manual和scale_color_manual(當前已散列)并將它們鏈接到col資料框shp(df2條件?
任何和所有的幫助表示贊賞。
uj5u.com熱心網友回復:
嘗試這樣的事情:
library(tidyverse)
obj <- c("cmpd 1","cmpd 1","cmpd 1","cmpd 2","cmpd 2")
x <- c(1, 2, 4, 7, 3)
var <- c("prop1","prop2","prop3","prop2","prop3")
y <- c(1, 2, 3, 2.5, 4)
df2 <- cbind.data.frame(obj,x,var,y)
col <- c("prop1" = "#E69F00",
"prop2" = "#9E0142",
"prop3" = "#56B4E9")
shp <- c("prop1" = 0,
"prop2" = 1,
"prop3" = 2)
plot <- ggplot(data = df2 %>%
filter(obj %in% c(
"cmpd 1",
"cmpd 2"
)),
aes(x = x,
y = y,
colour = var,
shape = var))
geom_point(size=2)
scale_shape_manual(values=shp)
scale_color_manual(values=col)
facet_grid(.~obj)
plot
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474407.html
上一篇:如何制作geom_col
下一篇:R-在ggplot中包括兩個y軸
