ggplot - 在密度图上改变每个重叠变量的高度

时间:2016-09-13 07:24:07

标签: r ggplot2

我对R和ggplot2很陌生,如果这是一个显而易见的问题,请致以道歉,但我已经四处搜索,无法找到有关此问题的任何内容

我在同一个图上有6个变量的ggplot密度图,重叠。我想要做的是将每个变量的最大高度更改为某个值而不更改分布。例如:

variable_1 - 1, //on Y axis
variable_2 - 0.5 etc. 

通过这种方式,我可以了解分布(跨越x轴),同时还通过y轴显示第二个独立参数

这有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,虽然我不推荐它。你可以做的只是将分布除以它的最大值,然后乘以目标高度。

# some example data:
x = seq(-5, 5, .1)
y1 = dnorm(x)
y2 = dnorm(x, .5, .2)
Y = cbind(y1, y2)
matplot(x, Y, type = 'l', bty = 'n', lty = 1, las = 1)

# now I want the red line to be max 1
# and the black line to be mack .5
y1 = .5*y1 / max(y1)
y2 = 1*y2 / max(y2)
Y = cbind(y1, y2)
matplot(x, Y, type = 'l', bty = 'n', lty = 1, las = 1)

这里的重要部分是我对y1y2使用了两种不同的转换。结果是在第二个图中,不再能够比较分布。您可以通过仅对所有分发应用相同的转换来避免这种情况。