1

カスタマイズされた x 軸を使用して積み上げ面グラフを作成したいと考えています。具体的には、x 軸の目盛りに cex.axis=0.8 のラベルを付け (すべての値に合わせて小さくします)、赤色を使用して x 値の一部を強調表示したいと思います (たとえば、週末平日とは対照的に日付)。

plotrix パッケージの stackpoly は、プロットの作成に優れています。しかし、cex.axis を制御したり、x 軸のプロットを抑制したりすることはできません。

これを実現するための私の2つの試みは次のとおりです。

## dates in winter of 2014 (these are the labels for my X-axis)
date.labels=paste( c(rep(1,2), rep(2,21)), c(30, 31, 1:21), sep = "/")
> date.labels
[1] "1/30" "1/31" "2/1"  "2/2"  "2/3"  "2/4"  "2/5"  "2/6"  "2/7"  "2/8"        "2/9"  "2/10" "2/11"
[14] "2/12" "2/13" "2/14" "2/15" "2/16" "2/17" "2/18" "2/19" "2/20" "2/21"

weekend=c(FALSE, FALSE, TRUE, TRUE, rep(FALSE, 5), TRUE, TRUE, rep(FALSE, 5), TRUE, TRUE, rep(FALSE, 5))

set.seed(10)
#This is the data I want to plot
fake.data=data.frame(abs(rnorm(23)), abs(rnorm(23)), abs(rnorm(23)))

library("plotrix")

#First attempt: use cex.axis in stackpoly to control font size. 
#overplot the weekend dates with red via axis()
stackpoly(fake.data, stack=TRUE, xat=1:23, xaxlab=date.labels, cex.axis=0.8,
      xlab="dates in 2014", sub="weekend dates are marked red")
#stackpoly ignores cex.axis=0.8

axis(1, (1:23)[weekend], labels= date.labels[ weekend], col.axis="red",     cex.axis=0.8)
#but axis does not ignore cex.axis=0.8

## Another attempt: suppress x axis altogether in stackpoly

stackpoly(fake.data, stack=TRUE, xlim=c(1,23), xaxt="n",
      xlab="dates in 2014", sub="weekend dates are marked red")
#stackpoly ignores xaxt="n"

axis(1, (1:23)[weekend], labels= date.labels[ weekend], col.axis="red",    cex.axis=0.8)
axis(1, (1:23)[!weekend], labels= date.labels [ !weekend], col.axis="black", cex.axis=0.8)
#but axis does not ignore cex.axis=0.8
4

1 に答える 1

1

par(...)への呼び出しの前に設定してみてくださいstackpoly(...)

par(mfrow=c(1,2))
# original axis text size
stackpoly(fake.data, stack=TRUE, xat=1:23, xaxlab=date.labels, 
          xlab="dates in 2014", sub="weekend dates are marked red")
# smaller axis text size
par(cex.axis=0.8)
stackpoly(fake.data, stack=TRUE, xat=1:23, xaxlab=date.labels, 
          xlab="dates in 2014", sub="weekend dates are marked red")

于 2014-12-03T02:57:30.333 に答える