私は、棒グラフの2つの離散変数をそれぞれfill
とalpha
を使ってggplot2で視覚化しようとしています。次のようにこれを行うための標準的な方法がある:rggplot2:棒グラフのグループ化の凡例
#creating data and building the basic bar plot
library(ggplot2)
myleg<-read.csv(text="lett,num
a,1
a,2
b,1
b,2
h,1
h,2
h,3
h,4")
ggplot(myleg,aes(lett,alpha=factor(num),fill=lett)) +geom_bar(position=position_stack(reverse=T)) +scale_alpha_discrete(range=c(1,.1), name="alpha legend",labels=c("alpha lab 4","alpha lab 3","alpha lab 2", "alpha lab 1")) +labs(title="initial bar plot for data")
デフォルトの凡例を提示(LETT及びグレースケールの着色、またはnumの不透明度)の二つの異なる方法に従ってグループ化されます。
私はプロット上にデータバーとして凡例をグループ化する必要があります。すなわち3つのカラーストリップを含み、それぞれがアルファレベルを変化させる。部分的な解決策は、次のように別々に所望の三の凡例ストリップでプロットを生成することである。
ggplot(myleg,aes(lett,alpha=factor(num),fill=lett)) +geom_bar(position="stack",fill="#f8766d") +scale_alpha_discrete(name="red legend",labels=c("red lab 2","red lab 1"),breaks=c("3","4"))
ggplot(myleg,aes(lett,alpha=factor(num),fill=lett)) +geom_bar(position="stack",fill="#00ba38") +scale_alpha_discrete(name="green legend",labels=c("green lab 2","green lab 1"),breaks=c("3","4"))
ggplot(myleg,aes(lett,alpha=factor(num),fill=lett)) +geom_bar(position="stack",fill="#619cff") +scale_alpha_discrete(name="blue legend",labels=c("blue lab 4","blue lab 3","blue lab 2", "blue lab 1"))
だから、今の私は主グラフに3つの凡例ストリップを切断して貼り付けることができまともな方法でこれをプログラムすることが可能である方法
:、例えば、Inkscapeの中で、所望の結果を得るには?
マルコの答えは、それを行うには「正しい」方法ですが、特に手間のかかる数字のために、いくつかの時点でInkscapeの中でそれを行うのあなたの方法は、より良く、よりカスタマイズ可能な方法です。 – Brian
@astrskによって投稿された新しい問題の解決策を提案した私の回答を編集しました –