R - ggplot2 - 将区域绘制为线条

时间:2016-05-24 18:06:52

标签: r ggplot2

我有一个包含区域和值的数据框。这是一个玩具示例。

Start    End    Value
1        100     2
100      200     3
300      400     2
400      500     1

我想要做的是创建一个图,其中每个区域(第1行,即Start=1End=100)都标在x上,{{1}在y上。最好是,我想使用ggplot2。我有很多不同的应用程序,但它们都归结为这一个问题。

我最终得到的是每个区域的平坦(斜率= 0)线的图。这是一个关于的情节的例子,如果你忽略这些点,只关注线

Copy number plot

用文字来说,你会得到一个图,其中(对于玩具数据)x = 1-100,ay值为2,然后是行(x,y):( 100-200,3)(300) -400,2)(400-500,1)

1 个答案:

答案 0 :(得分:1)

您可以使用geom_segment绘制线段。有关详细信息,请参阅?geom_segment

ggplot(df) + 
    geom_segment(aes(x = Start, xend = End, y = Value, yend = Value))

enter image description here

使用此数据:

df = structure(list(Start = c(1L, 100L, 300L, 400L), End = c(100L, 
200L, 400L, 500L), Value = c(2L, 3L, 2L, 1L)), .Names = c("Start", 
"End", "Value"), class = "data.frame", row.names = c(NA, -4L))

您应该查看一些介绍性ggplot2资源。 ggplot2 tag wiki中有很多建议。