Merge pull request #803 from ChrisRackauckas/recipes_change
RecipesBase change: all recipes usable from RecipesBase
This commit is contained in:
commit
282e611ef7
14
src/Plots.jl
14
src/Plots.jl
@ -5,6 +5,7 @@ module Plots
|
|||||||
using Reexport
|
using Reexport
|
||||||
using FixedSizeArrays
|
using FixedSizeArrays
|
||||||
@reexport using RecipesBase
|
@reexport using RecipesBase
|
||||||
|
import RecipesBase: plot, animate
|
||||||
using Base.Meta
|
using Base.Meta
|
||||||
@reexport using PlotUtils
|
@reexport using PlotUtils
|
||||||
@reexport using PlotThemes
|
@reexport using PlotThemes
|
||||||
@ -30,9 +31,6 @@ export
|
|||||||
with,
|
with,
|
||||||
twinx,
|
twinx,
|
||||||
|
|
||||||
@userplot,
|
|
||||||
@shorthands,
|
|
||||||
|
|
||||||
pie,
|
pie,
|
||||||
pie!,
|
pie!,
|
||||||
plot3d,
|
plot3d,
|
||||||
@ -156,16 +154,6 @@ include("backends.jl")
|
|||||||
|
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
|
|
||||||
# define and export shorthand plotting method definitions
|
|
||||||
macro shorthands(funcname::Symbol)
|
|
||||||
funcname2 = Symbol(funcname, "!")
|
|
||||||
esc(quote
|
|
||||||
export $funcname, $funcname2
|
|
||||||
$funcname(args...; kw...) = plot(args...; kw..., seriestype = $(quot(funcname)))
|
|
||||||
$funcname2(args...; kw...) = plot!(args...; kw..., seriestype = $(quot(funcname)))
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
@shorthands scatter
|
@shorthands scatter
|
||||||
@shorthands bar
|
@shorthands bar
|
||||||
@shorthands barh
|
@shorthands barh
|
||||||
|
|||||||
@ -1,53 +1,4 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
You can easily define your own plotting recipes with convenience methods:
|
|
||||||
|
|
||||||
```
|
|
||||||
@userplot type GroupHist
|
|
||||||
args
|
|
||||||
end
|
|
||||||
|
|
||||||
@recipe function f(gh::GroupHist)
|
|
||||||
# set some attributes, add some series, using gh.args as input
|
|
||||||
end
|
|
||||||
|
|
||||||
# now you can plot like:
|
|
||||||
grouphist(rand(1000,4))
|
|
||||||
```
|
|
||||||
"""
|
|
||||||
macro userplot(expr)
|
|
||||||
_userplot(expr)
|
|
||||||
end
|
|
||||||
|
|
||||||
function _userplot(expr::Expr)
|
|
||||||
if expr.head != :type
|
|
||||||
errror("Must call userplot on a type/immutable expression. Got: $expr")
|
|
||||||
end
|
|
||||||
|
|
||||||
typename = expr.args[2]
|
|
||||||
funcname = Symbol(lowercase(string(typename)))
|
|
||||||
funcname2 = Symbol(funcname, "!")
|
|
||||||
|
|
||||||
# return a code block with the type definition and convenience plotting methods
|
|
||||||
esc(quote
|
|
||||||
$expr
|
|
||||||
export $funcname, $funcname2
|
|
||||||
$funcname(args...; kw...) = plot($typename(args); kw...)
|
|
||||||
$funcname2(args...; kw...) = plot!($typename(args); kw...)
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
function _userplot(sym::Symbol)
|
|
||||||
_userplot(:(type $sym
|
|
||||||
args
|
|
||||||
end))
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
const _series_recipe_deps = Dict()
|
const _series_recipe_deps = Dict()
|
||||||
|
|
||||||
function series_recipe_dependencies(st::Symbol, deps::Symbol...)
|
function series_recipe_dependencies(st::Symbol, deps::Symbol...)
|
||||||
@ -96,7 +47,7 @@ end
|
|||||||
num_series(x::AMat) = size(x,2)
|
num_series(x::AMat) = size(x,2)
|
||||||
num_series(x) = 1
|
num_series(x) = 1
|
||||||
|
|
||||||
RecipesBase.apply_recipe{T}(d::KW, ::Type{T}, plt::Plot) = throw(MethodError("Unmatched plot recipe: $T"))
|
RecipesBase.apply_recipe{T}(d::KW, ::Type{T}, plt::AbstractPlot) = throw(MethodError("Unmatched plot recipe: $T"))
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -8,10 +8,6 @@ const KW = Dict{Symbol,Any}
|
|||||||
|
|
||||||
immutable PlotsDisplay <: Display end
|
immutable PlotsDisplay <: Display end
|
||||||
|
|
||||||
abstract type AbstractBackend end
|
|
||||||
abstract type AbstractPlot{T<:AbstractBackend} end
|
|
||||||
abstract type AbstractLayout end
|
|
||||||
|
|
||||||
# -----------------------------------------------------------
|
# -----------------------------------------------------------
|
||||||
|
|
||||||
immutable InputWrapper{T}
|
immutable InputWrapper{T}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user