我想通过在命令行中用x <- seq(0, 10, by = 0.1)
y1 <- sin(x)
y2 <- sin(x + pi/4)
y3 <- cos(x)
my.df <- data.frame(time = x, currentA = y1, currentB = y2, voltage = y3)
my.df <- melt(my.df, id.vars = "time")
my.df$Unit <- as.factor(rep(c("A", "A", "V"), each = length(x)))
# Create 3 plots :
# A: currentA and currentB plot
A = ggplot(my.df, aes(x = time, y = value, color = variable, alpha = variable)) +
geom_line() + ylab("A") +
scale_alpha_manual(values = c("currentA" = 1, "currentB" = 1, "voltage" = 0)) +
guides(alpha = F, color = F)
# B: voltage plot
B = ggplot(my.df, aes(x = time, y = value, color = variable, alpha = variable)) +
geom_line() + ylab("A") +
scale_alpha_manual(values = c("currentA" = 0, "currentB" = 0, "voltage" = 1)) +
guides(alpha = F, color = F)
# C: get the legend
C = ggplot(my.df, aes(x = time, y = value, color = variable)) + geom_line() + ylab("A")
library(gridExtra)
# http://stackoverflow.com/questions/12539348/ggplot-separate-legend-and-plot
# use this trick to get the legend as a grob object
g_legend<-function(a.gplot){
tmp <- ggplot_gtable(ggplot_build(a.gplot))
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
legend <- tmp$grobs[[leg]]
legend
}
#extract legend from C plot
legend = g_legend(C)
#arrange grob (the 2 plots)
plots = arrangeGrob(A,B)
# arrange the plots and the legend
grid.arrange(plots, legend , ncol = 2, widths = c(3/4,1/4))
替换行%% {some_string, []},
来取消注释配置文件的一行。
我使用{some_string, []}
尝试了几种不同的格式:
sed
sed 's/%% {some_string, []},/{some_string, []}/' filename
sed "s/%% {some_string, []},/{some_string, []}/" filename
sed "s/'%% {some_string, []},'/'{some_string, []}'/" filename
但每次都收到输出sed 's/"%% {some_string, []},"/"{some_string, []}"/' filename
我假设它与我的格式有关,因为我的特殊字符,但似乎找不到任何其他可能导致问题的相同字符的帖子。我也不能事先将这些字符串声明为变量,因为我需要在命令行中运行它。
答案 0 :(得分:1)
sed
要求您转义方括号。
sed 's/%% {some_string, \[\]},/{some_string, []}/' filename