我有一个包含多个列的.xlsx文件(具有一些相互依赖性)。我想使用选定数量的列在同一图表上绘制多个图表。第一列是Date(这将是我唯一的X变量),其余的兴趣列将是Y值。此文件中有1000行数据。
所以......
X轴......"日期"仅列 Y轴(多个数据)...列B,C,D,E,T,U,V
问题:
如何:
1)阅读文件
2)绘制数据的折线图,全部在同一图表上(X轴=日期,Y轴= B,C,D,E,T,U,V列)
3)使用某种类型的图例对每行进行颜色编码
我已经阅读了这篇文章以及更多内容(不允许发布2个以上的链接?)...没有任何帮助。大多数都太随意了:
how to plot all the columns of a data frame in R
答案 0 :(得分:0)
您遇到的问题是此标签/子标签组合。它们搞砸了导入(变量类无法识别)。这是一个两步解决方案。
n
)。read_excel
知道期望什么类。我们将以前保存的名称分配给新的data.frame。现在数据很干净。剩下的很简单:用tidyr:gather
融化并用ggplot
绘图。代码
library(readxl)
library(tidyr)
library(zoo)
library(ggplot2)
df <- read_excel("./myfile.xlsx",skip = 1)
names(df)[!is.na(df[1,])] <- paste(na.locf(names(df)[!is.na(df[1,])]),df[1,][!is.na(df[1,])],sep="_")
names(df)[duplicated(names(df))] <- paste0(names(df)[duplicated(names(df))],"bis")
n <- names(df)
df <- read_excel("./myfile.xlsx",skip = 2)
names(df) <- n
# df <- dplyr::slice(df,1:3) # this line is for the censored datafile that has only three rows
melted <- gather(df,key,value,-Date)
ggplot(melted, aes(x=Date,y=value,color=key)) + geom_line()
当然,只有三行数据,结果很难看: