我需要帮助才能为我的数据制作ggplot2图。这是我在R。
中的脚本> library(reshape2)
> library(ggplot2)
mdat = read.csv(file = "~/Desktop/final_data/low_group.csv", header = TRUE, sep="\t")
> head(mdat)
day..variable..value
1 Day 0, Actinobacteria,0.187
2 Day 3, Actinobacteria,0.117
3 Day 6, Actinobacteria,0.153
4 Day 9, Actinobacteria,0.147
5 Day 0, Bacteroidetes,0.154
6 Day 3, Bacteroidetes,0.364
> ggplot(mdat, aes(variable, value, fill=day)) +
+ geom_bar(stat="identity", position="dodge") +
+ scale_alpha_discrete(range = c(0.5,1)) +
+ theme_minimal()
Error in eval(expr, envir, enclos) : object 'variable' not found
任何建议请!!非常感谢你。
答案 0 :(得分:2)
正如评论中提到的那样,问题在于你有一个以逗号分隔的文件(csv),但你正在阅读它,好像它是以制表符分隔的方式。我可以重现您的问题,然后通过正确读取文件来纠正它。
首先,我创建一个简单的csv文件:
df <- data.frame(day = c("Day 0", "Day 3", "Day 6"),
variable = c("Actinobacteria", "Actinobacteria", "Actinobacteria"),
value = c(0.187, 0.117, 0.153))
write.table(df, "low_group.csv", row.names = FALSE, sep = ", ")
现在,我以sep="\t"
(以制表符分隔)的方式阅读。列标题day..variable..value
中出现错误的告示标志是单个字符串,因此数据框mdat
只包含一列:
mdat <- read.csv(file = "low_group.csv", header = TRUE, sep="\t")
head(mdat)
# day..variable..value
# 1 Day 0, Actinobacteria, 0.187
# 2 Day 3, Actinobacteria, 0.117
# 3 Day 6, Actinobacteria, 0.153
如果我们尝试绘制此图,则会出现错误。 (我的错误信息略有不同,因为我运行了ggplot2的开发版本。)
ggplot(mdat, aes(variable, value, fill=day)) + geom_col()
# Error in FUN(X[[i]], ...) : object 'variable' not found
现在让我们正确地做,没有sep="\t"
。现在我们在数据框中得到三个单独的列,我们可以绘制它们。
mdat <- read.csv(file = "low_group.csv", header = TRUE)
head(mdat)
# day variable value
# 1 Day 0 Actinobacteria 0.187
# 2 Day 3 Actinobacteria 0.117
# 3 Day 6 Actinobacteria 0.153
ggplot(mdat, aes(variable, value, fill=day)) + geom_col()
答案 1 :(得分:1)
找不到对象variable
。您将variable
作为data
参数传递给ggplot
,但它不存在。一旦将数据拆分为三列而不是一列,请尝试使用ggplot(mdat)
。