3

私は昔から R ユーザーですが、ggplot2 について理解するのに苦労しています。この例では、 geom="path" オプションをアルファ設定で使用すると、凡例を取得できません。geom="point" を設定すると、正常に表示されます。

tmp <- data.frame(cx=rnorm(21),cy=rnorm(21),labels=c(rep("a",7),rep("b",7),rep("c",7)))

p1 <- qplot(data=tmp,cx,cy,geom="point",colour = labels, size=I(5), alpha=I(0.5))

次に、ドットを示す正しいアルファ設定の凡例を含め、点のプロットがうまく表示されます。geom="path" に追加する

p2 <- qplot(data=tmp,cx,cy,geom="path",colour = labels, size=I(5), alpha=I(0.5))

線が結合され、アルファ設定で正しくプロットされたプロットを取得します。凡例も表示されますが、空白です-たとえば. アルファ色なし。

これは可能ですか?

アルファ パラメータを削除することですべて正常に動作し、プロットと凡例に無地の色が表示されます。

更新: これまでのコメントに感謝しますが、この問題がまだ残っているため、これは私または私のセットアップだけだと思います. リンクで得られるものの例...

例

http://i.stack.imgur.com/LiEwD.jpg

そして完全を期すために...

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252       LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                            LC_TIME=English_United Kingdom.1252    
attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods   base     
other attached packages:
[1] scales_0.2.1  ggplot2_0.9.1
loaded via a namespace (and not attached):
[1] colorspace_1.1-1   dichromat_1.2-4    digest_0.5.2       labeling_0.1       MASS_7.3-17        memoise_0.1       
[7] munsell_0.3        plyr_1.7.1         proto_0.3-9.2      RColorBrewer_1.0-5 reshape2_1.2.1     stringr_0.6       
[13] tools_2.15.0  
4

1 に答える 1

1

私は最終的にあなたが見ているものを再現することができましたが、それは非常に特殊な状況下でのみでした (偶然に偶然見つけました)。状況を考えると、Windows 上にいる (というか、Windows デバイス ドライバーを使用する) 必要があると確信しています。

tmpp1p2質問からの使用:

dev.new()
p1
p2

これdev.new()は、新しいウィンドウで開始するために重要です (後で何かが破損するため)。これらのコマンドは、適切なプロットを提供します (プロット ウィンドウでは何もしないでください)。ここで、この時点でウィンドウを「スクロール」(履歴 -> 前へまたは次へ) またはサイズ変更すると、凡例ボックスには何も描画されません。それを行う前に、正しい凡例を保存して取得できます。それを行った後、保存(ファイル->名前を付けて保存...)すると、凡例ボックスは空白になります。「スクロール」オプションを使用すると(デフォルトでは記録がオンになっていないため、マウスホイールを使用してスクロールダウンを繰り返したため、[前]オプションと[次]オプションはグレー表示されています)、(最終的に)次のようになりますコンソールで:

Error: VECTOR_ELT() can only be applied to a 'list', not a 'character'

最終的に取得する前に、これを何度か繰り返すことができます。

Error: REAL() can only be applied to a 'numeric', not a 'character'

回避策は、 を使用することggsaveです。これにより新しいデバイスが作成されるため、Windows デバイスが壊れた状態になることを心配する必要はありません。

ggsave("tmp.jpg", p2)

私が見ている動作は、Windows グラフィック デバイスのバグだと思います。

于 2012-06-28T18:22:05.150 に答える