我有一个包含多个列的csv文件。我只考虑其中两个,'时间'和' RiseOrFall'。两者都是Factor数据类型。示例数据如下所示:
Time RiseOrFallRiseOrFall
12 32
34 0
56 0
78 25
90 29
123 0
567 50
我试图在R中创建一个每次都掉落的折线图' RiseOrFall'点击0,当它不是0时上升。('时间'在x轴上,' RiseOrFall'在Y轴上)
我试过了:
countFile <- read.csv(file = "counts.csv", nrows = 1000)[, c ('TIME','RiseOrFall')]
ggplot(data=countFile, aes(x=RiseOrFall)) + geom_line()
如何在R中实现(可能使用ggplot2或其他任何东西)??
我的预期输出图表如下(样本数据中的记录非常少。实际数据非常大,具有更大的RiseOrFall值(Y轴):
答案 0 :(得分:1)
试试这个。
我已将x轴(时间)和y轴(RiseOrFall)刻度分别设置为6个单位和200个单位。
ggplot(data=countFile, aes(x=Time,y = TRPM)) + geom_line(colour="brown") + scale_x_continuous(expand = c(0, 0),breaks = round(seq(min(countFile$Time), max(countFile$Time), by = 6),1)) + scale_y_continuous(expand = c(0, 0),breaks = round(seq(min(countFile$TRPM), max(countFile$TRPM), by = 200),1))+ xlab("Time") + ylab("RiseOrFall")+ theme(panel.background = element_blank(),axis.line = element_line(colour = "black"))
答案 1 :(得分:0)
此类数据必须有一个包... 你可以试试这个:
require(ggplot2)
require(zoo) #na.locf
#dummy data
countFile <- read.table(text="Time RiseOrFall
12 32
34 0
56 0
78 25
90 29
123 0
567 50",header=TRUE)
#assign values for every x value
filler <- data.frame(Time=min(countFile$Time):max(countFile$Time))
df <- merge(filler, countFile,all.x=TRUE)
df$RiseOrFall <- na.locf(df$RiseOrFall)
#plot
ggplot(df,aes(x=Time,y=RiseOrFall)) +
geom_line()