ggplot:沿轴绘制颜色

时间:2014-08-22 08:26:00

标签: r ggplot2

我想沿着x轴绘制我的数据,如下图所示:

Colors along x axis

我的虚拟数据如下所示:

From  To  Class
1     3   a
4     5   b
6     10  c
10    12  b

说明:在X轴上有间隔;每个区间都有特定的类。如何在x轴上绘制(映射)这些间隔并根据类分配颜色(例如,a=red,b=blue,c=green)?

2 个答案:

答案 0 :(得分:4)

我会使用geom_rect

library(ggplot2)
DF <- read.table(text="From  To  Class
1     3   a
4     5   b
6     10  c
10    12  b", header=TRUE)

ggplot(DF, aes(xmin=From, xmax=To, ymin=0, ymax=1, colour=Class, fill=Class)) + 
  geom_rect() +
  theme_minimal() +
  theme(axis.title=element_blank(),
        axis.text.y=element_blank(),
        axis.ticks.y=element_blank(),
        axis.line.y=element_blank(),
        panel.grid=element_blank())

resulting plot

答案 1 :(得分:1)

首先以相应的形式提供您的数据:

require( plyr )
dt <- adply( dt, 1, function(foo){
  data.frame( x = seq( foo$from, foo$to ), Class = foo$Class )
})

然后用瓷砖几何图形绘制,删除所有主题元素:

ggplot( dt, aes(x = x, fill = Class, y = 1 ) ) +
  geom_tile() +
  theme_minimal() +
  theme(
    line = element_blank(),
    text = element_blank(),
    line = element_blank(),
    title = element_blank()
  ) +
  guides( fill=FALSE)

enter image description here