diff --git a/examples/ticks_and_limits.ipynb b/examples/ticks_and_limits.ipynb index 4f8544cd..52d7b209 100644 --- a/examples/ticks_and_limits.ipynb +++ b/examples/ticks_and_limits.ipynb @@ -2,58 +2,63 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 7, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO: Recompiling stale cache file /home/tom/.julia/lib/v0.4/Plots.ji for module Plots.\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ - "[Plots.jl] Default backend: immerse\n", - "[Plots.jl] Switched to backend: gadfly\n", - "[Plots.jl] Initializing backend: gadfly" + "[Plots.jl] Switched to backend: winston" ] }, { - "ename": "LoadError", - "evalue": "LoadError: MethodError: `convert` has no method matching convert(::Type{Union{Function,Void}}, ::Array{UTF8String,1})\nThis may have arisen from a call to the constructor Union{Function,Void}(...),\nsince type constructors fall back to convert methods.\nClosest candidates are:\n call{T}(::Type{T}, ::Any)\n convert{T}(::Type{T}, !Matched::T)\nwhile loading In[1], in expression starting on line 6", - "output_type": "error", - "traceback": [ - "LoadError: MethodError: `convert` has no method matching convert(::Type{Union{Function,Void}}, ::Array{UTF8String,1})\nThis may have arisen from a call to the constructor Union{Function,Void}(...),\nsince type constructors fall back to convert methods.\nClosest candidates are:\n call{T}(::Type{T}, ::Any)\n convert{T}(::Type{T}, !Matched::T)\nwhile loading In[1], in expression starting on line 6", - "", - " in call at /home/tom/.julia/v0.4/Gadfly/src/scale.jl:387", - " in addGadflyTicksGuide at /home/tom/.julia/v0.4/Plots/src/backends/gadfly.jl:290", - " in updateGadflyGuides at /home/tom/.julia/v0.4/Plots/src/backends/gadfly.jl:348", - " in plot! at /home/tom/.julia/v0.4/Plots/src/plot.jl:119", - " in plot at /home/tom/.julia/v0.4/Plots/src/plot.jl:58", - " in scatter at /home/tom/.julia/v0.4/Plots/src/Plots.jl:81" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n" - ] + "data": { + "image/png": "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", + "text/plain": [ + "Plot{Plots.WinstonPackage() n=1}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "using Plots, StatsBase\n", - "gadfly()\n", + "winston()\n", "xstr = [@sprintf(\"x%02d\",i) for i in 1:10]\n", "x = sort(sample(xstr, 100))\n", "y = rand(length(x))\n", - "scatter(x,y)\n" + "scatter(x,y)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "Plot{Plots.WinstonPackage() n=1}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scatter(y,x)\n", + "xlims!(0,6)\n", + "xlabel!(\"hi\")" ] }, { diff --git a/src/Plots.jl b/src/Plots.jl index b81e492d..951fc155 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -101,6 +101,8 @@ xlabel!(s::AbstractString) = plot!(xlabel = s) ylabel!(s::AbstractString) = plot!(ylabel = s) xlims!{T<:Real,S<:Real}(lims::Tuple{T,S}) = plot!(xlims = lims) ylims!{T<:Real,S<:Real}(lims::Tuple{T,S}) = plot!(ylims = lims) +xlims!(xmin::Real, xmax::Real) = plot!(xlims = (xmin,xmax)) +ylims!(ymin::Real, ymax::Real) = plot!(ylims = (ymin,ymax)) xticks!{T<:Real}(v::AVec{T}) = plot!(xticks = v) yticks!{T<:Real}(v::AVec{T}) = plot!(yticks = v) xticks!{T<:Real,S<:AbstractString}(ticks::AVec{T}, labels::AVec{S}) = plot!(xticks = (ticks,labels)) @@ -112,6 +114,8 @@ xlabel!(plt::Plot, s::AbstractString) = plot!(plt; xlabel = s) ylabel!(plt::Plot, s::AbstractString) = plot!(plt; ylabel = s) xlims!{T<:Real,S<:Real}(plt::Plot, lims::Tuple{T,S}) = plot!(plt; xlims = lims) ylims!{T<:Real,S<:Real}(plt::Plot, lims::Tuple{T,S}) = plot!(plt; ylims = lims) +xlims!(plt::Plot, xmin::Real, xmax::Real) = plot!(plt; xlims = (xmin,xmax)) +ylims!(plt::Plot, ymin::Real, ymax::Real) = plot!(plt; ylims = (ymin,ymax)) xticks!{T<:Real}(plt::Plot, ticks::AVec{T}) = plot!(plt; xticks = ticks) yticks!{T<:Real}(plt::Plot, ticks::AVec{T}) = plot!(plt; yticks = ticks) xticks!{T<:Real,S<:AbstractString}(plt::Plot, ticks::AVec{T}, labels::AVec{S}) = plot!(plt; xticks = (ticks,labels)) diff --git a/src/backends/winston.jl b/src/backends/winston.jl index b66272f6..8b86e85f 100644 --- a/src/backends/winston.jl +++ b/src/backends/winston.jl @@ -64,11 +64,11 @@ supportedArgs(::WinstonPackage) = [ :windowtitle, :x, :xlabel, - # :xlims, + :xlims, # :xticks, :y, :ylabel, - # :ylims, + :ylims, # :yrightlabel, # :yticks, ] @@ -216,18 +216,22 @@ function plot!(::WinstonPackage, plt::Plot; kw...) end +# ---------------------------------------------------------------- + +const _winstonNames = Dict(:xlims => :xrange, :ylims => :yrange) + function updatePlotItems(plt::Plot{WinstonPackage}, d::Dict) window, canvas, wplt = getWinstonItems(plt) - for k in (:xlabel, :ylabel, :title) + for k in (:xlabel, :ylabel, :title, :xlims, :ylims) if haskey(d, k) - Winston.setattr(wplt, string(k), d[k]) + Winston.setattr(wplt, string(get(_winstonNames, k, k)), d[k]) end end end -# ------------------------------- +# ---------------------------------------------------------------- function createWinstonAnnotationObject(plt::Plot{WinstonPackage}, x, y, val::AbstractString) Winston.text(x, y, val) @@ -240,7 +244,7 @@ function addAnnotations{X,Y,V}(plt::Plot{WinstonPackage}, anns::AVec{Tuple{X,Y,V end -# ------------------------------- +# ---------------------------------------------------------------- function buildSubplotObject!(subplt::Subplot{WinstonPackage}) # TODO: build the underlying Subplot object. this is where you might layout the panes within a GUI window, for example