【问题标题】:Faceted time series data分面时间序列数据
【发布时间】:2013-04-12 19:35:27
【问题描述】:

我正在尝试创建两个变量的多面图,即 km0 处的密度和 km22 处的 SPL(声压级)。两者的时间戳不匹配,因为测量相距 22 公里。这里的想法是在 km22 处跟踪水批次(密度 ~1),观察 SPL 水平。

This 是我正在使用的数据框。

如您所见,有 5 个变量。这是我将数据导入 R 后到目前为止所拥有的:

# Melting the data
mydata2 <- melt(mydata, id = c('TIMESTAMP'))

# Create the faceted plot
ggplot(mydata2, aes(TIMESTAMP, value)) + geom_point() + facet_grid(variable~., scale  = "free_y")

绘制这个:

我的问题是:

  1. 我只能从原始数据框 (mydata) 中绘制变量 DENSITY 和 SPL 吗?

  2. 如果我必须创建一个新的熔融数据框 (mydata2),我如何才能仅绘制变量 DENSITY 和 SPL(而不删除其他变量)?

我希望我已经说清楚了,如果没有,请告诉我如何改进我的问题。

感谢您的帮助。

【问题讨论】:

  • 您可以将measure.vars 传递给melt。见?melt.data.frame

标签: r ggplot2


【解决方案1】:

您可以在 ggplot() 调用中使用 subset() 来调用您需要绘制的子集数据。在您的特定情况下:

ggplot(data=subset(mydata2,variable %in% c("DENSITY","SPL")), aes(TIMESTAMP, value)) + 
  geom_point() + facet_grid(variable~., scale  = "free_y")

【讨论】:

  • 您不必更改 mydata2(它与您的代码中的融化数据框相同)。
  • @Didziz Elferts 我可以仅使用 mydata 数据框创建类似的图吗?
  • @ChelseaE 不,对于分面,您需要像 mydata2 中那样融化的数据框。对于 ggplot2,使用长格式的融化数据帧几乎总是更好。
猜你喜欢
  • 2019-07-15
  • 2018-11-08
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 2018-10-07
  • 2018-07-06
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多