我试图为每组绘制2种不同颜色的2条实线,但也在这些线条周围添加相同颜色的虚线,然后添加图例.出于某种原因,我在使用"虚线"或"虚线"时遇到了麻烦,似乎我正在两次绘制虚线.我也没有得到正确的传说,我得到了错误Adding another scale for 'colour', which will replace the existing scale.
你能帮我弄清楚我做错了什么吗?这是一个示例数据集和我尝试过的内容:
x <- c(10, 20, 50, 10, 20, 50)
mean = c(52.4, 98.2, 97.9, 74.1, 98.1, 97.6)
group = c(1, 1, 1, 2,2,2)
upper = c(13.64, 89, 86.4, 13.64, 89, 86.4)
lower = c(95.4, 99.8, 99.7, 95.4, 99.8, 99.7)
data <- data.frame(x=x,y=mean, group, upper, lower)
ggplot(data, aes(x = x, y= mean, group = as.factor(data$group), colour=as.factor(data$group))) + geom_line() + geom_point() + geom_line(data=data,aes(x=x, y=lower, group = as.factor(data$group), colour=as.factor(data$group), linetype="dotted")) …Run Code Online (Sandbox Code Playgroud) 我必须自动导入许多数据集,第一列是名称,所以是字符向量,第二列是数字向量,所以我在read.table中使用这些规范:colClasses = c("character","numeric" ").
如果我在df_file中保存了一个数据帧,这样做很有用:
df<- data.frame(V1=c("s1","s2","s3","s4"), V2=c("1e-04","1e-04","1e-04","1e-04")
read.table(df_file, header = FALSE, comment.char="", colClasses = c("character", "numeric"), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)
问题是在某些情况下,我在第二列中使用指数形式的数值框架,并且在这些情况下导入不起作用,因为它不会将列识别为数字(或者如果我将其导入为"字符"不要指定colClasses),所以我的问题是:即使值是指数的,我如何指定要导入为数字的列?
例如:
df<- data.frame(V1=c("s1","s2","s3","s4"), V2=c("10^(-4)","10^(-4)","10^(-4)","10^(-4)"))
Run Code Online (Sandbox Code Playgroud)
我希望将所有指数值导入为数字,但即使我在导入后尝试从字符更改为数字,我也会获得所有"NA"(as.numeric(as.character(df $ V2))"警告消息:通过胁迫引入的NAs")
我曾试图将"真实"或"复杂"用于colClasses,但它仍然将指数作为字符导入.
请帮帮忙,谢谢!