R ggplot2:带基线的刻面线图

R ggplot2:带基线的刻面线图,r,ggplot2,facet,R,Ggplot2,Facet,我想创建一个刻面线图。在每个子批次中,将一个y值(y1或y2)与基线进行比较。y值和基线应以不同的颜色显示,但该配色方案应在每个子批次内保持一致。作为一个图例,我只需要两个条目:“y值”和“基线”,因为每个子批次的标题命名要比较的y值 然而,我只得到了这个(示例代码): 库(ggplot2) 图书馆(重塑) df=数据帧(c(10,20,40),c(0.1,0.2,0.3),c(0.1,0.4,0.5),c(0.05,0.1,0.2)) 名称(df)[1]=“类” 姓名(df)[2]=“y1”

我想创建一个刻面线图。在每个子批次中,将一个y值(y1或y2)与基线进行比较。y值和基线应以不同的颜色显示,但该配色方案应在每个子批次内保持一致。作为一个图例,我只需要两个条目:“y值”和“基线”,因为每个子批次的标题命名要比较的y值

然而,我只得到了这个(示例代码):

库(ggplot2)
图书馆(重塑)
df=数据帧(c(10,20,40),c(0.1,0.2,0.3),c(0.1,0.4,0.5),c(0.05,0.1,0.2))
名称(df)[1]=“类”
姓名(df)[2]=“y1”
姓名(df)[3]=“y2”
名称(df)[4]=“基线”

df$classes这就是你的想法吗

df = data.frame(classes=c(10,20,40), y1=c(0.1,0.2,0.3), y2=c(0.1,0.4,0.5),
                baseline=c(0.05,0.1,0.2))
df$classes <- factor(df$classes, levels=c(10,20,40), 
                 labels=c("10m","20m","40m"))

# Two melts to create a grouping variable for baseline vs. new value (y1 or y2)
# and another grouping variable for faceting on y1/y2
dfm=melt(df, id.var=c(1,4))
names(dfm)[3] = "y_value"
dfm=melt(dfm, id.var=c(1,3))

ggplot(dfm, aes(x=classes, y=value, group=variable, colour=variable)) +
  geom_point() + geom_line() +
  theme_bw(base_size=16) +
  facet_grid(. ~ y_value)
df=data.frame(类=c(10,20,40),y1=c(0.1,0.2,0.3),y2=c(0.1,0.4,0.5),
基线=c(0.05,0.1,0.2))

df$classes您可能正在寻找
scale\u color\u手册
功能:

ggplot() + 
  geom_point(data=dfMelted, size=4, aes(x=factor(classes),y=value, colour=variable, shape=variable)) + 
  geom_line(data=dfMelted, aes(x=factor(classes),y=value, group=variable, colour=variable)) + 
  scale_colour_manual(values = c("y1" = "red","baseline" = "blue","y2" = "green")) +
  theme_bw(base_size=16) + 
  facet_grid(variable ~.)
其结果是:

类是分类的还是数字的,但你只需要“10m”等作为轴标签?它确实是分类的。这个例子来自机器学习领域,类别代表不同的训练集。这正是我想要的。我在格式化原始数据方面做得很糟糕,所以非常感谢您提供了优雅的熔体解决方案!谢谢,但是eipi10的解决方案不需要手动格式化就可以完成这项工作。
ggplot() + 
  geom_point(data=dfMelted, size=4, aes(x=factor(classes),y=value, colour=variable, shape=variable)) + 
  geom_line(data=dfMelted, aes(x=factor(classes),y=value, group=variable, colour=variable)) + 
  scale_colour_manual(values = c("y1" = "red","baseline" = "blue","y2" = "green")) +
  theme_bw(base_size=16) + 
  facet_grid(variable ~.)