我试图使我的一些绘图透明,但当我添加"alpha"时,我出现了以下错误。有人知道我该怎么纠正吗?
Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector
这是我的代码:
graphics.off()
rm(list=ls())
library(ggplot2)
library(dplyr)
library(tidyr)
library(tidyverse)
setwd("F:/Data/")
file1<-read.csv("F:/Data/diam.csv")
cl<-rainbow(20)
names(file1)
ggplot(data=file1, aes(x = No.)) +
geom_line(aes(y = X1), colour="red")+
geom_line(aes(y = X2), colour="coral4",alpha(.4))+
geom_line(aes(y = X3), colour=cl[8],alpha(.4))+
geom_line(aes(y = X4), colour="magenta")+
xlab("Image ")+ylab("n pores<0.13")+
theme(legend.position="bottom")
也许是alpha = 0.4
library(ggplot2)
ggplot(data=file1, aes(x = No.)) +
geom_line(aes(y = X1), colour="red")+
geom_line(aes(y = X2), colour="coral4",alpha = 0.4)+
geom_line(aes(y = X3), colour=cl[8],alpha = 0.4)+
geom_line(aes(y = X4), colour="magenta")+
xlab("Image ")+ylab("n pores<0.13")+
theme(legend.position="bottom")
您的csv文件中可能有一些奇怪的东西使输出read.csv成为与数据帧不同的数据类型。我会str(file1(和/或head(file2(来确保对象看起来像你想要的。如果是这样,你可以尝试通过执行file1<-作为.data.frame(file1(,因此,如果你不修复这些问题,它会再次失败,但我相信这个错误是以前的错误。
我以前也遇到过这个错误。经过一番修补,我自己解决了。对我来说,这个问题的产生是因为我使用了Kaggle。Kaggle让一个上传他们的CSV文件,然后给出访问该CSV文件的路径。这就是它给我的路径:
"/kaggle/input/housing-register-project-1/D.REQ.BDR.csv"
相反,我只使用:
"/input/housing-register-project-1/D.REQ.BDR.csv"
仅此一点就解决了";data
必须是数据帧或fortify()
强制的其他对象,而不是字符向量";