带有ggplot2的图形,一个分类变量和四个数字

时间:2018-02-16 20:20:44

标签: r ggplot2 graphics

我正在尝试从R中的excel复制图形,但是使用ggplot2。然而,我还没有找到办法,甚至使用融化或其他功能,我无法想出一种方法来表示我的所有数据。顺便说一句,你可以帮助我使用我需要用来从excel中获取它的代码并直接执行图形,因为当我尝试使用read.table复制时,第一列它不被视为X轴,因为我会喜欢,所以我只是尝试将所有列复制为independt变量,然后将其作为数据框。但是我会花很多时间,因为我有30张桌子。请让我现在该怎么做。

这是我的数据和想要复制的图片:

enter image description here

pro = c("CONCOCT", "MetaBAT", "MaxBin", "MyCC")
MEGAHIT = c(18, 6, 5, 7)
RayMeta = c(5, 3, 2, 4)
SPAdes = c(23, 4, 5, 5)
Velvet = c(20, 2, 4, 7)

如果你能提供一些帮助,我将非常感激。

1 个答案:

答案 0 :(得分:1)

不要绝望。一步步。很高兴你开始使用R :)你需要一些基本的阅读,这是肯定的。但这里有一些建议。首先,让您的示例可重现,以便我们只需要复制粘贴它。意义与赋值运算符完成。 将数据导入R的好方法是将excel保存为.csv,然后从utils包中导入带有read.csv()的csv

# a way to make your example more reproducible,
df1 <- data.frame (pro = c("CONCOCT", "MetaBAT", "MaxBin", "MyCC"),
MEGAHIT = c(18, 6, 5, 7),
RayMeta = c(5, 3, 2, 4),
SPAdes = c(23, 4, 5, 5),
Velvet = c(20, 2, 4, 7), stringsAsFactors = F)

# To your questions 
# install required packages 
require(ggplot2) #must have package for plotting
require(tidyr) # must have package for tidy data
require(dplyr) # must have package for aggregating and summarising

#1 as noted in the answer which @MrFlick was pointing to, 
#ggplot needs long data, therefore gather your dataframe
df1 <- df1 %>% gather(key, value, 2:5)

#2 make a nice plot 
ggplot(df1, aes(x = key, y = value, group = pro, colour = pro)) + geom_line()

enter image description here

最后但并非最不重要...... ggplot cookbook是你的朋友