Вот сообщение в блоге , который объясняет самый быстрый способ повысить целые числа до целочисленных полномочий. Как один из комментариев указывает, некоторые из этих приемов встроены в микросхемы.
Для этого вы можете использовать пакет ggplot2
от Хэдли Уикхем.
R> library(ggplot2)
Пример набора данных:
R> d <- data.frame(t=rep(0:23,each=4),var=rep(LETTERS[1:4],4),val=round(runif(4*24,0,50)))
R> head(d,10)
t var val
1 0 A 1
2 0 B 45
3 0 C 6
4 0 D 14
5 1 A 35
6 1 B 21
7 1 C 13
8 1 D 22
9 2 A 20
10 2 B 44
А затем вы можете использовать ggplot
с geom_area
:
R> ggplot(d, aes(x=t,y=val,group=var,fill=var)) + geom_area(position="fill")
Вы можете использовать stackpoly
из пакета plotrix
:
library(plotrix)
#create proportions table
pdat <- prop.table(xtabs(Prop2~Hour+Category,Dat),margin=1)
#draw chart
stackpoly(pdat,stack=T,xaxlab=rownames(pdat))
#add legend
legend(1,colnames(pdat),bg="#ffffff55",fill=rainbow(dim(pdat)[2]))
Если вы хотите убрать границы, вы можете использовать scale_x_discrete и ordin_cartesian таким образом
p <- ggplot(d, aes(x=Date,y=Volume,group=Platform,fill=Platform)) + geom_area(position="fill")
base_size <- 9
p + theme_set(theme_bw(base_size=9)) + scale_x_discrete(expand = c(0, 0)) + coord_cartesian(ylim=c(0,1))