我想沿着x轴绘制我的数据,如下图所示:
我的虚拟数据如下所示:
From To Class
1 3 a
4 5 b
6 10 c
10 12 b
说明:在X轴上有间隔;每个区间都有特定的类。如何在x轴上绘制(映射)这些间隔并根据类分配颜色(例如,a=red,b=blue,c=green
)?
答案 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())
答案 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)