私は知っています、3D 棒グラフは罪です。しかし、私はそれらを行うように求められ、トレードオフとして、バーの上部と右側のバーよりもわずかに暗い色の境界線のみを作成することを提案しました. そのように、バーにはある種の「影」がありますが (うーん)、少なくともそれらを比較することはできます。
これを行う方法はありますか?
ggplot(diamonds, aes(clarity)) + geom_bar()
すでに述べたように、3D 棒グラフは「悪い」ものです。ggplot2 で直接行うことはできませんが、これに対する可能な回避策があります。
まず、明瞭度のレベルと各レベルに対応するカウントを含む新しいデータ フレームを作成します。
library(plyr)
df2<-ddply(diamonds,.(clarity),nrow)
次に、ggplot()
呼び出しで新しいデータフレームを使用しclarity
、x 値として、V1
(カウント) y 値として追加geom_blank()
します。これにより、必要なレベルで x 軸が作成されます。次にgeom_rect()
、バーのシェーディングを生成するために追加します-ここxmin
でxmax
値が作成さas.numeric()
れclarity
、定数が追加されます-定数はxmin
バーの幅の半分未満であり、xmax
定数はバーの幅の半分よりも大きくする必要があります。はymin
0 で、(カウント) に定数を加えたものです。最後に、この影の上に追加して、実際に棒グラフをプロットします。ymax
V1
geom_bar(stat="identity")
ggplot(df2,aes(clarity,V1)) + geom_blank()+
geom_rect(aes(xmin=as.numeric(clarity)-0.38,
xmax=as.numeric(clarity)+.5,
ymin=0,
ymax=V1+250),fill="green")+
geom_bar(width=0.8,stat="identity")