【问题标题】:plotting multiple feature on y axis with different y axis scaling在 y 轴上绘制具有不同 y 轴缩放比例的多个特征
【发布时间】:2015-08-18 20:23:20
【问题描述】:

我有一个数据集,其中的列是时间和不同的特征,如下所示:

time rtt  drc rl
1234 2222 23  8000

每个特征(vcolumn)的上限和下限变化很大(巨大的差异!)。我想绘制一个单线图,其中时间变量在 x 轴上,其他多个特征在 y 轴上。

我在ggplot2中尝试过不同层次的线图:

ggplot(my_data, aes(time)) + geom_line(aes(y = rtt, color = "rtt"))
                           + geom_line(aes(y = drc, color = "drc")) 
                           + geom_line(aes(y = rl,  color = "rl"))

我会使用ylim = c(max of rtt, min of rtt) 等,但我不确定是否可以为每个geom_line() 添加它。 我想用不同的 y 轴缩放比例绘制每个特征。这可能吗?

请注意,在图中,红线和绿线是不可见的(这就是为什么我想在 y 轴上分别缩放)。

【问题讨论】:

  • 选项:(1) 将所有数据重新缩放到相同的比例,(2) 使用分面将每个时间序列放在它自己的面板上,并且可能使用scales = "free_y"。但是将具有完全不同 y 比例的多个系列放在同一个图上通常是一个非常糟糕的主意,因此 ggplot 默认情况下会拒绝让它变得简单。

标签: r ggplot2


【解决方案1】:

正如 joran 所说,您可以规范化您的值,这是一个示例(未经测试)

m <- plyr::ddply(reshape2::melt(my_data, id = "time"), 
                 "variable", mutate, value = value / max(value))

ggplot(m, aes(time, value, colour=variable)) + geom_line()

【讨论】:

  • 非常感谢您的帮助,但是将多个特征缩放到相同的恐慌是重叠的,并且在我的数据集上的视觉效果不佳。我试图在 ggplot2 中像 link 一样绘制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多