2016-06-24 13 views
7

私はこのようになります散布を作成しています:Gadflyでのプロット順序のきめ細かな制御?

using DataFrames 
using Gadfly 
using ColorBrewer 
using Distributions 
colors = palette("Set1", 4) 
df1 = DataFrame(rand(Normal(0, 0.5), 1000,2)) 
df1[:x3] = :a 
df2 = DataFrame(rand(Normal(-0.25, 0.25), 500,2)) 
df2[:x3] = :b 
df3 = DataFrame(rand(Normal(0.25, 0.25), 500,2)) 
df3[:x3] = :c 
df4 = DataFrame(rand(Normal(0, 0.25), 500,2)) 
df4[:x3] = :d 
df = vcat(df1, df2, df3, df4) 
plot(df, x=:x1, y=:x2, color=:x3, Geom.point, Scale.color_discrete_manual(colors..., levels=[:b, :c, :d, :a]), 
Theme(highlight_width=0pt)) 

私は:aの点の数が多いほど後ろにあるように、この順[:d, :b, :c, :a]に前後にプロットした点が欲しいです。だから私はなぜlevels=[:b, :c, :d, :a]私の希望の結果を得るように注文を指定する必要があります。ここでの矛盾は何ですか?

enter image description here

順序が使用されているどのような色に依存しているかのようにまた、興味深いことに、それはそうです! ColorBrewerから異なる色を試してみると、異なる注文結果につながる可能性があります。これはおそらくバグです。関連する問題:https://github.com/dcjones/Gadfly.jl/issues/858

答えて

1

FWIW、私はGadflyを使用しているときにどのレイヤーがどのレイヤーを上書きするかを完全に制御しようとしました。

場合によっては、正確に同じコードが2回実行されると、あるレイヤーが別のレイヤーを上書きする順序が明らかにランダムに変わる2つのわずかに異なる数字が生成されることがあります。これは少なくとも私が通常行うことであるGadfly.draw(PS(file, size...), p)経由でポストスクリプトファイルに出力図を送信するときに発生します。

もちろんこれは今後改善される可能性があります。私は現在、Windows 10、64ビットでJulia 0.5.0にGadfly 0.5.2を使用しています。

関連する問題