R 按组更改ggplot中的颜色和线型

R 按组更改ggplot中的颜色和线型,r,ggplot2,R,Ggplot2,我有一个数据帧,如下所示: N Method1-Simulation Method1-Analytical Method2-Simulation Method3-Analytical 1 2 0.094 0.1831891 0.158 0.2789826 2 3 0.236 0.2856285 0.434 0.4670

我有一个数据帧,如下所示:

  N Method1-Simulation Method1-Analytical Method2-Simulation Method3-Analytical
1 2              0.094          0.1831891              0.158          0.2789826
2 3              0.236          0.2856285              0.434          0.4670031
3 4              0.349          0.3740548              0.568          0.6097311
4 5              0.450          0.4525999              0.682          0.7174169
5 6              0.506          0.5228121              0.781          0.7976934
6 7              0.585          0.5854665              0.851          0.8566850
longPowerCurve <- melt(powerCurve, id = "N")
colnames(longPowerCurve)[2] <- "Method"

ggplot(data=longPowerCurve,aes(x=N, y=value, colour=Method)) + geom_line() +ylab("Power") +ggtitle("Power levels for various N and distributions")+
  theme(legend.text = element_text(size = 12))
它将适应更多的方法。我想做一个ggplot,其中每个方法都有自己的颜色,分析方法是实线,而模拟方法是折线

除了虚线之外,我拥有以下一切:

  N Method1-Simulation Method1-Analytical Method2-Simulation Method3-Analytical
1 2              0.094          0.1831891              0.158          0.2789826
2 3              0.236          0.2856285              0.434          0.4670031
3 4              0.349          0.3740548              0.568          0.6097311
4 5              0.450          0.4525999              0.682          0.7174169
5 6              0.506          0.5228121              0.781          0.7976934
6 7              0.585          0.5854665              0.851          0.8566850
longPowerCurve <- melt(powerCurve, id = "N")
colnames(longPowerCurve)[2] <- "Method"

ggplot(data=longPowerCurve,aes(x=N, y=value, colour=Method)) + geom_line() +ylab("Power") +ggtitle("Power levels for various N and distributions")+
  theme(legend.text = element_text(size = 12))

longPowerCurve您可能希望拆分method.type列。这样,您就可以在绘图中分别使用这两个因素。要获得虚线,可以使用
linetype
参数

groups <- data.frame(do.call('rbind', strsplit(as.character(longPowerCurve$Method),'.',fixed=TRUE)))
colnames(groups) <- c("Method", "Type")
longPowerCurve$Method <- groups$Method
longPowerCurve$Type <- groups$Type

ggplot(data=longPowerCurve,aes(x=N, y=value, colour=Method, linetype=Type)) + 
  geom_line() +
  ylab("Power") +
  ggtitle("Power levels for various N and distributions")+
  theme(legend.text = element_text(size = 12))

分组这肯定更接近了,但是蓝色虚线和整个绿色虚线发生了什么?@user1357015,您提供的数据只对方法3进行了分析,对方法2进行了模拟,因此只有蓝色和绿色虚线。如果数据中包含它们,它就会有这些行。@cdterman:woops-你说得对。很抱歉我会把这个标记为完成