Ich bin ein Streudiagramm erstellen, die etwa wie folgt aussieht:Feinkörnige Kontrolle über die Auftragreihenfolge in 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))
Ich mag die von vorne eingezeichneten Punkten [:d, :b, :c, :a]
so dass die größere Anzahl von Punkten in :a
ist in der Rückseite in dieser Reihenfolge zurück. Also, warum muss ich die Reihenfolge angeben als levels=[:b, :c, :d, :a]
bekomme mein gewünschtes Ergebnis. Was ist die Diskrepanz hier?
Auch interessant scheint es, als ob die Reihenfolge abhängt, welche Farben verwendet werden !? wie das Ausprobieren verschiedener Farben von ColorBrewer
zu verschiedenen Ordnungsergebnissen führt, was wohl ein Bug ist. Relevantes Thema: https://github.com/dcjones/Gadfly.jl/issues/858