rect グラフのカテゴリ値に応じて 2 つの異なる色を割り当てる方法はありますか??
rect(0, yb, Studies.sort,yt,col=("black","lightgray"[Area$"Theory"])
明らかに..これは間違っています.....
面積は、「理論」と「職業」という 2 つのカテゴリ変数で構成されます。
rect グラフのカテゴリ値に応じて 2 つの異なる色を割り当てる方法はありますか??
rect(0, yb, Studies.sort,yt,col=("black","lightgray"[Area$"Theory"])
明らかに..これは間違っています.....
面積は、「理論」と「職業」という 2 つのカテゴリ変数で構成されます。
あなたは近かった、次の作品:
plot(1:10)
mydf <- data.frame( xl =1:5, yb=1:5, xr=2:6, yt=10:6,
group=sample( c('A','B'), 5, replace=TRUE) )
with(mydf, rect( xl, yb, xr, yt, col=c('black','grey')[group]) )
ここでのグループが因子であることが重要です (文字ベクトルだけではありません)。ただし、色の名前付きベクトル (グループ変数と一致する名前) を使用する場合は、文字ベクトルでも機能します。
描画する色ごとに呼び出す必要がありrect
、それらの色をデータ フレームのカテゴリ列に配置して、への呼び出しごとにカテゴリごとにデータをフィルタリングできるようにしますrect
。
元のデータがどのようなものかわかりませんので、似たようなものを次に示します。
# set up simple plotting window
plot.new()
plot.window(xlim=c(0,6),ylim=c(0,8))
# example data. Using colour as the categorical value we will filter on
sample.d <- data.frame(x=c(3,4,5,6), yb=c(1,3,5,7), yt=c(0,2,4,6),
colour=c("black","black","red","red"))
# draw black rectangles
black.d <- sample.d[sample.d$colour == "black",]
rect(0, black.d$yb, black.d$x, black.d$yt, col="black")
# draw red rectangles
red.d <- sample.d[sample.d$colour == "red",]
rect(0, red.d$yb, red.d$x, red.d$yt, col="red")