From 730d764c6ed93d26f0cd90b6fb158d31eb1c669d Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Fri, 25 Sep 2015 17:03:57 -0400 Subject: [PATCH] gadfly color group --- examples/playground.ipynb | 35 ++++++++++++++++------------------- src/args.jl | 8 ++++++++ src/backends/gadfly.jl | 3 ++- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/examples/playground.ipynb b/examples/playground.ipynb index 99532464..9ba4c648 100644 --- a/examples/playground.ipynb +++ b/examples/playground.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 26, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -15,34 +15,31 @@ ] }, { - "ename": "LoadError", - "evalue": "LoadError: MethodError: `convert` has no method matching convert(::Type{ColorTypes.Color{T,N}}, ::Array{ColorTypes.RGB{FixedPointNumbers.UfixedBase{UInt8,8}},1})\nThis may have arisen from a call to the constructor ColorTypes.Color{T,N}(...),\nsince type constructors fall back to convert methods.\nClosest candidates are:\n call{T}(::Type{T}, ::Any)\n convert{C<:ColorTypes.Colorant{T,N}}(::Type{C<:ColorTypes.Colorant{T,N}}, !Matched::ColorTypes.Colorant{T,N})\n convert{T}(::Type{T}, !Matched::T)\nwhile loading In[26], in expression starting on line 6", - "output_type": "error", - "traceback": [ - "LoadError: MethodError: `convert` has no method matching convert(::Type{ColorTypes.Color{T,N}}, ::Array{ColorTypes.RGB{FixedPointNumbers.UfixedBase{UInt8,8}},1})\nThis may have arisen from a call to the constructor ColorTypes.Color{T,N}(...),\nsince type constructors fall back to convert methods.\nClosest candidates are:\n call{T}(::Type{T}, ::Any)\n convert{C<:ColorTypes.Colorant{T,N}}(::Type{C<:ColorTypes.Colorant{T,N}}, !Matched::ColorTypes.Colorant{T,N})\n convert{T}(::Type{T}, !Matched::T)\nwhile loading In[26], in expression starting on line 6", - "", - " in push! at array.jl:429", - " in addGadflySeries! at /home/tom/.julia/v0.4/Plots/src/backends/gadfly.jl:219", - " in plot! at /home/tom/.julia/v0.4/Plots/src/plot.jl:109", - " in plot at /home/tom/.julia/v0.4/Plots/src/plot.jl:58" - ] + "data": { + "image/png": "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", + "text/plain": [ + "Plot{Plots.GadflyPackage() n=1}" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ - "\n", - "(cs,d[:x],d[:y]) = ([1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9],[0.400094521067053,0.16406446065812408,0.16406446065812408,0.9974519887147355,0.9974519887147355,0.07289322336328041,0.07289322336328041,0.8501439104781459,0.8501439104781459,0.44400664654624156,0.44400664654624156,0.208710808170248,0.208710808170248,0.10343086090249787,0.10343086090249787,0.6952138344567846,0.6952138344567846],[0.9879804797098521,0.4417137233363506,0.4417137233363506,0.7992773388653871,0.7992773388653871,0.4724928670878745,0.4724928670878745,0.7400062576174942,0.7400062576174942,0.9667002537131115,0.9667002537131115,0.6812304895553498,0.6812304895553498,0.6332230779375905,0.6332230779375905,0.19484023252140936,0.19484023252140936])\n" + "\n" ] } ], "source": [ - "using Plots; gadfly!(); plotDefault!(:size,(400,300))\n", - "n = 9\n", - "cs = distinguishable_colors(n)\n", - "#cs = [colorant\"red\",colorant\"blue\",colorant\"yellow\"]\n", + "using Plots; gadfly!(); plotDefault!(size=(400,300),leg=false)\n", + "n = 10\n", + "#cs = distinguishable_colors(n)\n", + "cs = [colorant\"red\",colorant\"blue\",colorant\"yellow\",colorant\"blue\"]\n", "#cs = vec(repmat(cs2,round(Int,n/length(cs2)),1))\n", - "plot(rand(n),rand(n), c=Any[cs], w=5, t=:scatter)" + "plot(rand(n), c=Any[cs], w=5)" ] }, { diff --git a/src/args.jl b/src/args.jl index 89eeb588..b31fb831 100644 --- a/src/args.jl +++ b/src/args.jl @@ -231,6 +231,7 @@ end # update the defaults globally function plotDefault(k::Symbol) + k = get(_keyAliases, k, k) if haskey(_seriesDefaults, k) return _seriesDefaults[k] elseif haskey(_plotDefaults, k) @@ -241,6 +242,7 @@ function plotDefault(k::Symbol) end function plotDefault!(k::Symbol, v) + k = get(_keyAliases, k, k) if haskey(_seriesDefaults, k) _seriesDefaults[k] = v elseif haskey(_plotDefaults, k) @@ -250,6 +252,12 @@ function plotDefault!(k::Symbol, v) end end +function plotDefault!(; kw...) + for (k,v) in kw + plotDefault!(k, v) + end +end + # ----------------------------------------------------------------------------- diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index 11518c15..5d24be22 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -171,8 +171,9 @@ function addGadflySeries!(gplt, d::Dict, initargs::Dict) # then the vector passed to the "color" keyword should be a vector: [1,1,2,2,3,3,4,4, ..., i,i, ... , n,n] csindices = Int[mod1(i,length(d[:color])) for i in 1:length(d[:y])] cs = collect(repmat(csindices', 2, 1))[1:end-1] + grp = collect(repmat((1:length(d[:y]))', 2, 1))[1:end-1] d[:x], d[:y] = map(createSegments, (d[:x], d[:y])) - colorgroup = [(:color, cs)] + colorgroup = [(:color, cs), (:group, grp)] else colorgroup = [] end