我有一个ggplot,其中包含列表中三个数据框的数据。每个数据框都有一个" date"和"测量"向量。这些是来自仪器的每小时数据。我有一个单独的列表,其中包含三个具有手动数据点的数据框。这些数据每月收集一次。数据帧的命名在每个列表中都是一致的,但是。
我想要做的是将手动数据绘制为小时数据之外的点。
我已经设法使用此代码非常接近我想要的内容:
p1 <- ggplot(data_list[["Inst1"]],aes(date,elevation))+geom_line(aes(color="Instrument 1"))+
geom_line(data=data_list[["Inst2"]],aes(color="Instrument 2"))+
geom_line(data=data_list[["Inst3"]],aes(color="Instrument 3"))+
geom_point(data=man_list[["Inst1"]],aes(date,water_el,color="Instrument 1",size = "3"))+
geom_point(data=man_list[["Inst2"]],aes(date,water_el,color="Instrument 2",size = "3"))+
geom_point(data=man_list[["Inst3"]],aes(date,water_el,color="Instrument 3",size = "3"))+
labs(color="")
我不知道如何解决两个主要问题。
1)我更喜欢让Legend显示与小时数据(行)分开标记的手动点。我意识到使用颜色来生成图例是这里的问题,但我不确定我还能采取什么其他方法。但是,我希望点和线的颜色相同。
2)我不确定为什么尺寸会出现在图例中。
帮助?
更新:
str(data_list)
List of 5
$ Inst1 :'data.frame': 7735 obs. of 4 variables:
$ date: POSIXct[1:7735], format: "2016-01-22 01:56:00" "2016-01-22 02:56:00" ...
$ measurement: num [1:7735] 1.73 1.73 1.73 1.73 1.74 ...
$ trans_el : num [1:7735] 341 341 341 341 341 ...
$ elevation : num [1:7735] 343 343 343 343 343 ...
str(man_list)
List of 5
$ Inst1 :'data.frame': 14 obs. of 6 variables:
$date : POSIXct[1:14], format: "2015-12-07 15:16:00" "2015-12-23 15:51:00" ...
$ man : num [1:14] 3.69 4.33 4.28 4.07 3.71 ...
$ trans_h2o : num [1:14] NA NA NA 1.72 2.08 ...
$ trans_el : num [1:14] NA NA NA 341 341 ...
$ water_el : num [1:14] 343 342 342 343 343 ...
$ trans_el_round: num [1:14] NA NA NA 341 341 ...
每个列表有5个Inst1到Inst 5的数据帧。在给定列表中,每个数据帧设置相同(具有相同的变量和名称)。但是每个数据帧的日期向量是不同的,并且每个列表之间的日期向量是不同的。
所以,
data_list [[&#34; Inst1&#34;]] $ date = / data_list [[&#34; Inst2&#34;]] $ date
和
data_list [[&#34; Inst1&#34;]] $ date = / man_list [[&#34; Inst1&#34;]] $ date
答案 0 :(得分:0)
这是一个使用data(mtcars)
library(ggplot2)
mtcars$cyl <- as.factor(mtcars$cyl)
ggplot(data = mtcars, aes(disp, hp)) +
geom_point(aes(fill = cyl, shape = cyl), size = 4, stroke = 0) + # note size not in aes(); using stroke = 0 to eliminate edges, which would be part of the color scale
stat_smooth(aes(group = cyl, color = cyl), method = "lm", se = F) +
scale_color_brewer(palette = "Set1") +
scale_fill_brewer(palette = "Dark2") +
scale_shape_manual(values = 21:24) + # critical because only these shapes have a fill in addition to color, all the others are only just color
guides(color = guide_legend(order = 1),
fill = guide_legend(order = 2),
shape = guide_legend(order = 2))
如果您无法通过此示例进行转移,请尽快帮助您完成特定示例与您的数据。干杯。