【问题标题】:qplot (ggplot2): plot of more functions with the same colorqplot (ggplot2):用相同颜色绘制更多函数
【发布时间】:2016-07-24 03:47:32
【问题描述】:

我正在绘制 11 条曲线,下面的程序运行良好。但是我不能两次更改狂野的颜色来绘制 11 条 黑色曲线

library(ggplot2) 
#library(latex2exp) 
library(reshape)
fn <- "img/plot.eps"
fct1  <- function(x0 ){
  return(1/sin(x0)+1/tan(x0))
}
fct2  <- function(beta, t ){
  return(2*atan(exp(t)/beta))
}
t<-seq(from=0,to=10,by=0.01)
s1<-cbind(t, fct2(fct1(-pi+0.0001),t),
          fct2(fct1(-1.5),t),
          fct2(fct1(-0.5),t),
          fct2(fct1(-0.05),t),
          fct2(fct1(-0.01),t), 
          fct2(fct1(0),t),
          fct2(fct1(0.01),t),
          fct2(fct1(0.05),t),
          fct2(fct1(0.5),t),
          fct2(fct1(1.5),t),
          fct2(fct1(pi),t))
colnames(s1)<-c("time","y1","y2","y3","y4","y5","y6","y7","y8","y9","y10","y11")
s2 <- melt(as.data.frame(s1), id = "time")
q <- ggplot(s2, aes(x = time, y = value, color = variable))
q <- q + geom_line() + ylab("y") + xlab("t")+ ylab("x(t)")+
  theme_bw(base_size = 7) + guides(colour = FALSE)
ggsave(file = fn, width = 2, height = 1)
q

编辑现在代码应该可以重现了

【问题讨论】:

标签: r ggplot2


【解决方案1】:

您需要将变量映射到分组,默认情况下会产生黑线。

q <- ggplot() +
  geom_line(data = s2, aes(x = time, y = value,
                    group = variable)) +
                xlab("t")+ ylab("x(t)") +
  theme_bw(base_size = 7) + guides(colour = FALSE)
q

为了完全清楚,可以将颜色映射到变量,这可以产生黑线,但不能不改变图例。如果您愿意,您可以在已经将颜色映射到变量之后修改颜色。

q <- ggplot() +
  geom_line(data = s2, aes(x = time, y = value,
                           color = variable)) +
  xlab("t")+ ylab("x(t)") +
  theme_bw(base_size = 7) + guides(colour = FALSE) +
  scale_color_manual(values = rep("black",11))
q

【讨论】:

  • 非常感谢。第一个代码块正是我想要的。注意:第二个代码块似乎不起作用,如果我输入"red",线条仍然是黑色的。
  • 编辑工作。在这种情况下,分层会导致问题,我相信。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
相关资源
最近更新 更多