尝试解决错误:错误:“data”必须是 Dataframe 或可由“fortify()”强制的其他对象,而不是字符向量

7lrncoxx  于 2022-12-20  发布在  其他
关注(0)|答案(3)|浏览(737)

我试着把一些图做成透明的,但是当我加上"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")
pdsfdshx

pdsfdshx1#

可能是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")
eqqqjvef

eqqqjvef2#

可能有一些奇怪的东西在你的csv文件,使输出读取。csv是一个不同的数据类型比一个数据框。(文件1)和/或文件头(file 1)以确保对象看起来像您想要的那样。如果确实如此,您可以尝试通过执行file 1〈- as.data.frame将其强制为数据框(file 1),所以如果你不修复这些错误,它会再次失败,但我相信这个错误是在那之前。

e4yzc0pl

e4yzc0pl3#

我以前也有这个错误。我自己解决了它后,一个小修补。对我来说,这个问题是因为我用Kaggle。Kaggle得到一个上传他们的CSV文件,然后给路径访问该CSV文件。这是它给我的路径:

"/kaggle/input/housing-register-project-1/D.REQ.BDR.csv"

相反,我只使用了:

"/input/housing-register-project-1/D.REQ.BDR.csv"

仅此一项就为我修复了“data必须是 Dataframe ,或fortify()可强制的其他对象,而不是字符向量”的错误。

相关问题