Trying to solve the error: Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector

Trying to solve the error: Error: `data` must be a data frame, or other object coercible by `fortify()`, not a character vector

我试图让我的一些绘图透明,但是当我添加 "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) and/or head(file1) 来确保对象看起来像你想要的那样。如果是这样,那么您可以尝试通过执行 file1 <- as.data.frame(file1) 将其强制转换为数据框, 因此,如果您不修复这些错误,它将再次失败,但我相信此错误早于此错误。