diff --git a/deprecated/docs/example_generation.jl b/deprecated/docs/example_generation.jl deleted file mode 100644 index a34bbb72..00000000 --- a/deprecated/docs/example_generation.jl +++ /dev/null @@ -1,419 +0,0 @@ - -module PlotExamples - -using Plots -using Colors -using Compat - -const DOCDIR = Pkg.dir("Plots") * "/docs" -const IMGDIR = Pkg.dir("Plots") * "/img" - -""" -Holds all data needed for a documentation example... header, description, and plotting expression (Expr) -""" -type PlotExample - header::@compat(AbstractString) - desc::@compat(AbstractString) - exprs::Vector{Expr} -end - - - -# the examples we'll run for each -const examples = PlotExample[ - PlotExample("Lines", - "A simple line plot of the columns.", - [ - :(plot(Plots.fakedata(50,5), w=3)) - ]), - PlotExample("Functions, adding data, and animations", - "Plot multiple functions. You can also put the function first, or use the form `plot(f, xmin, xmax)` where f is a Function or AbstractVector{Function}.\n\nGet series data: `x, y = plt[i]`. Set series data: `plt[i] = (x,y)`. Add to the series with `push!`/`append!`.\n\nEasily build animations. (`convert` or `ffmpeg` must be available to generate the animation.) Use command `gif(anim, filename, fps=15)` to save the animation.", - [ - :(p = plot([sin,cos], zeros(0), leg=false)), - :(anim = Animation()), - :(for x in linspace(0, 10π, 100) - push!(p, x, Float64[sin(x), cos(x)]) - frame(anim) - end) - ]), - PlotExample("Parametric plots", - "Plot function pair (x(u), y(u)).", - [ - :(plot(sin, x->sin(2x), 0, 2π, line=4, leg=false, fill=(0,:orange))) - ]), - PlotExample("Colors", - "Access predefined palettes (or build your own with the `colorscheme` method). Line/marker colors are auto-generated from the plot's palette, unless overridden. Set the `z` argument to turn on series gradients.", - [ - :(y = rand(100)), - :(plot(0:10:100,rand(11,4),lab="lines",w=3, palette=:grays, fill=(0.5,:auto))), - :(scatter!(y, zcolor=abs(y-.5), m=(:heat,0.8,stroke(1,:green)), ms=10*abs(y-0.5)+4, lab="grad")) - ]), - PlotExample("Global", - "Change the guides/background/limits/ticks. Convenience args `xaxis` and `yaxis` allow you to pass a tuple or value which will be mapped to the relevant args automatically. The `xaxis` below will be replaced with `xlabel` and `xlims` args automatically during the preprocessing step. You can also use shorthand functions: `title!`, `xaxis!`, `yaxis!`, `xlabel!`, `ylabel!`, `xlims!`, `ylims!`, `xticks!`, `yticks!`", - [ - :(y = rand(20,3)), - :(plot(y, xaxis=("XLABEL",(-5,30),0:2:20,:flip), background_color = RGB(0.2,0.2,0.2), leg=false)), - :(hline!(mean(y,1)+rand(1,3), line=(4,:dash,0.6,[:lightgreen :green :darkgreen]))), - :(vline!([5,10])), - :(title!("TITLE")), - :(yaxis!("YLABEL", :log10)) - ]), - PlotExample("Two-axis", - "Use the `axis` arguments.\n\nNote: Currently only supported with Qwt and PyPlot", - [ - :(plot(Vector[randn(100), randn(100)*100], axis = [:l :r], ylabel="LEFT", yrightlabel="RIGHT", xlabel="X", title="TITLE")) - ]), - PlotExample("Arguments", - "Plot multiple series with different numbers of points. Mix arguments that apply to all series (marker/markersize) with arguments unique to each series (colors). Special arguments `line`, `marker`, and `fill` will automatically figure out what arguments to set (for example, we are setting the `linestyle`, `linewidth`, and `color` arguments with `line`.) Note that we pass a matrix of colors, and this applies the colors to each series.", - [ - :(ys = Vector[rand(10), rand(20)]), - :(plot(ys, line=(:dot,4,[:black :orange]), marker=([:hex :d],12,0.8,stroke(3,:gray)))) - ]), - PlotExample("Build plot in pieces", - "Start with a base plot...", - [ - :(plot(rand(100)/3, reg=true, fill=(0,:green))) - ]), - PlotExample("", - "and add to it later.", - [ - :(scatter!(rand(100), markersize=6, c=:orange)) - ]), - PlotExample("Heatmaps", - "", - [ - :(heatmap(randn(10000),randn(10000), nbins=20)) - ]), - PlotExample("Line types", - "", - [ - :(types = intersect(supportedTypes(), [:line, :path, :steppre, :steppost, :sticks, :scatter])'), - :(n = length(types)), - :(x = Vector[sort(rand(20)) for i in 1:n]), - :(y = rand(20,n)), - :(plot(x, y, line=(types,3), lab=map(string,types), ms=15)) - ]), - PlotExample("Line styles", - "", - [ - :(styles = setdiff(supportedStyles(), [:auto])'), - :(plot(cumsum(randn(20,length(styles)),1), style=:auto, label=map(string,styles), w=5)) - ]), - PlotExample("Marker types", - "", - [ - :(markers = setdiff(supportedMarkers(), [:none,:auto,Shape])'), - :(n = length(markers)), - :(x = linspace(0,10,n+2)[2:end-1]), - :(y = repmat(reverse(x)', n, 1)), - :(scatter(x, y, m=(8,:auto), lab=map(string,markers), bg=:linen)) - ]), - PlotExample("Bar", - "x is the midpoint of the bar. (todo: allow passing of edges instead of midpoints)", - [ - :(bar(randn(999))) - ]), - PlotExample("Histogram", - "", - [ - :(histogram(randn(1000), nbins=20)) - ]), - PlotExample("Subplots", - """ - subplot and subplot! are distinct commands which create many plots and add series to them in a circular fashion. - You can define the layout with keyword params... either set the number of plots `n` (and optionally number of rows `nr` or - number of columns `nc`), or you can set the layout directly with `layout`. - """, - [ - :(subplot(randn(100,5), layout=[1,1,3], t=[:line :hist :scatter :step :bar], nbins=10, leg=false)) - ]), - PlotExample("Adding to subplots", - "Note here the automatic grid layout, as well as the order in which new series are added to the plots.", - [ - :(subplot(Plots.fakedata(100,10), n=4, palette=[:grays :blues :heat :lightrainbow], bg=[:orange :pink :darkblue :black])) - ]), - PlotExample("", - "", - [ - :(subplot!(Plots.fakedata(100,10))) - ]), - PlotExample("Open/High/Low/Close", - "Create an OHLC chart. Pass in a vector of OHLC objects as your `y` argument. Adjust the tick width with arg `markersize`.", - [ - :(n=20), - :(hgt=rand(n)+1), - :(bot=randn(n)), - :(openpct=rand(n)), - :(closepct=rand(n)), - :(y = [OHLC(openpct[i]*hgt[i]+bot[i], bot[i]+hgt[i], bot[i], closepct[i]*hgt[i]+bot[i]) for i in 1:n]), - :(ohlc(y; markersize=8)) - ]), - PlotExample("Annotations", - "Currently only text annotations are supported. Pass in a tuple or vector-of-tuples: (x,y,text). `annotate!(ann)` is shorthand for `plot!(; annotation=ann)`", - [ - :(y = rand(10)), - :(plot(y, ann=(3,y[3],text("this is #3",:left)))), - :(annotate!([(5,y[5],text("this is #5",16,:red,:center)), - (10,y[10],text("this is #10",:right,20,"courier"))])) - ]), - PlotExample("Custom Markers", - "A `Plots.Shape` is a light wrapper around vertices of a polygon. For supported backends, pass arbitrary polygons as the marker shapes. Note: The center is (0,0) and the size is expected to be rougly the area of the unit circle.", - [ - :(verts = [(-1.0,1.0),(-1.28,0.6),(-0.2,-1.4),(0.2,-1.4),(1.28,0.6),(1.0,1.0), - (-1.0,1.0),(-0.2,-0.6),(0.0,-0.2),(-0.4,0.6),(1.28,0.6),(0.2,-1.4), - (-0.2,-1.4),(0.6,0.2),(-0.2,0.2),(0.0,-0.2),(0.2,0.2),(-0.2,-0.6)]) - :(plot(0.1:0.2:0.9, 0.7rand(5)+0.15, - l=(3,:dash,:lightblue), - m=(Shape(verts),30,RGBA(0,0,0,0.2)), - bg=:pink, fg=:darkblue, - xlim = (0,1), ylim=(0,1), leg=false)) - ]), - - PlotExample("Contours", - "", - [ - :(x = 1:0.3:20), - :(y = x), - :(f(x,y) = sin(x)+cos(y)), - :(contour(x, y, f, fill=true)) - ]), - - PlotExample("Pie", - "", - [ - :(x = ["Nerds", "Hackers", "Scientists"]), - :(y = [0.4, 0.35, 0.25]), - :(pie(x, y, title="The Julia Community", l=0.5)) - ]), - - PlotExample("3D", - "", - [ - :(n = 100), - :(ts = linspace(0,8π,n)), - :(x = ts .* map(cos,ts)), - :(y = 0.1ts .* map(sin,ts)), - :(z = 1:n), - :(plot(x, y, z, zcolor=reverse(z), m=(10,0.8,:blues,stroke(0)), leg=false, w=5)), - :(plot!(zeros(n),zeros(n),1:n, w=10)) - ]) - -] - - -function createStringOfMarkDownCodeValues(arr, prefix = "") - string("`", prefix, join(sort(map(string, arr)), "`, `$prefix"), "`") -end -createStringOfMarkDownSymbols(arr) = isempty(arr) ? "" : createStringOfMarkDownCodeValues(arr, ":") - - -function generate_markdown(pkgname::Symbol) - - # set up the backend, and don't show the plots by default - pkg = backend(pkgname) - # default(:show, false) - - # mkdir if necessary - try - mkdir("$IMGDIR/$pkgname") - end - - # open the markdown file - md = open("$DOCDIR/$(pkgname)_examples.md", "w") - - write(md, "## Examples for backend: $pkgname\n\n") - - write(md, "### Initialize\n\n```julia\nusing Plots\n$(pkgname)()\n```\n\n") - - - for (i,example) in enumerate(examples) - - try - - # we want to always produce consistent results - srand(1234) - - # run the code - map(eval, example.exprs) - - # # save the png - # imgname = "$(pkgname)_example_$i.png" - - # NOTE: uncomment this to overwrite the images as well - if i == 2 - imgname = "$(pkgname)_example_$i.gif" - gif(anim, "$IMGDIR/$pkgname/$imgname", fps=15) - else - imgname = "$(pkgname)_example_$i.png" - png("$IMGDIR/$pkgname/$imgname") - end - - # write out the header, description, code block, and image link - write(md, "### $(example.header)\n\n") - write(md, "$(example.desc)\n\n") - write(md, "```julia\n$(join(map(string, example.exprs), "\n"))\n```\n\n") - write(md, "\n\n") - - catch ex - # TODO: put error info into markdown? - warn("Example $pkgname:$i failed with: $ex") - end - - # - end - - write(md, "- Supported arguments: $(createStringOfMarkDownCodeValues(supportedArgs(pkg)))\n") - write(md, "- Supported values for axis: $(createStringOfMarkDownSymbols(supportedAxes(pkg)))\n") - write(md, "- Supported values for linetype: $(createStringOfMarkDownSymbols(supportedTypes(pkg)))\n") - write(md, "- Supported values for linestyle: $(createStringOfMarkDownSymbols(supportedStyles(pkg)))\n") - write(md, "- Supported values for marker: $(createStringOfMarkDownSymbols(supportedMarkers(pkg)))\n") - write(md, "- Is `subplot`/`subplot!` supported? $(subplotSupported(pkg) ? "Yes" : "No")\n\n") - - write(md, "(Automatically generated: $(now()))") - close(md) - -end - - -# make and display one plot -function test_examples(pkgname::Symbol, idx::Int; debug = true) - Plots._debugMode.on = debug - println("Testing plot: $pkgname:$idx:$(examples[idx].header)") - backend(pkgname) - backend() - map(eval, examples[idx].exprs) - plt = current() - gui(plt) - plt -end - -# generate all plots and create a dict mapping idx --> plt -function test_examples(pkgname::Symbol; debug = false) - Plots._debugMode.on = debug - plts = Dict() - for i in 1:length(examples) - # if examples[i].header == "Subplots" && !subplotSupported() - # break - # end - - try - plt = test_examples(pkgname, i, debug=debug) - plts[i] = plt - catch ex - # TODO: put error info into markdown? - warn("Example $pkgname:$i:$(examples[i].header) failed with: $ex") - end - end - plts -end - -# axis # :left or :right -# color # can be a string ("red") or a symbol (:red) or a ColorsTypes.jl -# # Colorant (RGB(1,0,0)) or :auto (which lets the package pick) -# label # string or symbol, applies to that line, may go in a legend -# width # width of a line -# linetype # :line, :step, :stepinverted, :sticks, :scatter, :none, :heatmap, :hexbin, :hist, :bar -# linestyle # :solid, :dash, :dot, :dashdot, :dashdotdot -# marker # :none, :ellipse, :rect, :diamond, :utriangle, :dtriangle, -# # :cross, :xcross, :star1, :star2, :hexagon -# markercolor # same choices as `color`, or :match will set the color to be the same as `color` -# markersize # size of the marker -# nbins # number of bins for heatmap/hexbin and histograms -# heatmap_c # color cutoffs for Qwt heatmaps -# fill # fill value for area plots -# title # string or symbol, title of the plot -# xlabel # string or symbol, label on the bottom (x) axis -# ylabel # string or symbol, label on the left (y) axis -# yrightlabel # string or symbol, label on the right (y) axis -# reg # true or false, add a regression line for each line -# size # (Int,Int), resize the enclosing window -# pos # (Int,Int), move the enclosing window to this position -# windowtitle # string or symbol, set the title of the enclosing windowtitle -# screen # Integer, move enclosing window to this screen number (for multiscreen desktops) - - - -@compat const _ltdesc = Dict( - :none => "No line", - :line => "Lines with sorted x-axis", - :path => "Lines", - :steppre => "Step plot (vertical then horizontal)", - :steppost => "Step plot (horizontal then vertical)", - :sticks => "Vertical lines", - :scatter => "Points, no lines", - :heatmap => "Colored regions by density", - :hexbin => "Similar to heatmap", - :hist => "Histogram (doesn't use x)", - :bar => "Bar plot (centered on x values)", - :hline => "Horizontal line (doesn't use x)", - :vline => "Vertical line (doesn't use x)", - :ohlc => "Open/High/Low/Close chart (expects y is AbstractVector{Plots.OHLC})", - :contour => "Contour lines (uses z)", - :path3d => "3D path (uses z)", - :scatter3d => "3D scatter plot (uses z)", - ) - -function buildReadme() - readme = readall("$DOCDIR/readme_template.md") - - # build keyword arg table - table = "Keyword | Default | Type | Aliases \n---- | ---- | ---- | ----\n" - allseries = merge(Plots._seriesDefaults, @compat(Dict(:line=>nothing, :marker=>nothing, :fill=>nothing))) - allplots = merge(Plots._plotDefaults, @compat(Dict(:xaxis=>nothing, :yaxis=>nothing))) - alldefs = merge(allseries, allplots) - for k in Plots.sortedkeys(alldefs) - # for d in (Plots._seriesDefaults, Plots._plotDefaults) - # for k in Plots.sortedkeys(d) - aliasstr = createStringOfMarkDownSymbols(aliases(Plots._keyAliases, k)) - table = string(table, "`:$k` | `$(alldefs[k])` | $(haskey(allseries,k) ? "Series" : "Plot") | $aliasstr \n") - # end - end - readme = replace(readme, "[[KEYWORD_ARGS_TABLE]]", table) - - # build linetypes table - table = "Type | Desc | Aliases\n---- | ---- | ----\n" - for lt in Plots._allTypes - aliasstr = createStringOfMarkDownSymbols(aliases(Plots._typeAliases, lt)) - table = string(table, "`:$lt` | $(_ltdesc[lt]) | $aliasstr \n") - end - readme = replace(readme, "[[LINETYPES_TABLE]]", table) - - # build linestyles table - table = "Type | Aliases\n---- | ----\n" - for s in Plots._allStyles - aliasstr = createStringOfMarkDownSymbols(aliases(Plots._styleAliases, s)) - table = string(table, "`:$s` | $aliasstr \n") - end - readme = replace(readme, "[[LINESTYLES_TABLE]]", table) - - # build markers table - table = "Type | Aliases\n---- | ----\n" - for s in Plots._allMarkers - aliasstr = createStringOfMarkDownSymbols(aliases(Plots._markerAliases, s)) - table = string(table, "`:$s` | $aliasstr \n") - end - readme = replace(readme, "[[MARKERS_TABLE]]", table) - - readme_fn = Pkg.dir("Plots") * "/README.md" - f = open(readme_fn, "w") - write(f, readme) - close(f) - - gadfly() - Plots.dumpSupportGraphs() -end - -default(size=(500,300)) - -# run it! -# note: generate separately so it's easy to comment out -# @osx_only generate_markdown(:unicodeplots) -# generate_markdown(:qwt) -# generate_markdown(:gadfly) -# generate_markdown(:pyplot) -# generate_markdown(:immerse) -# generate_markdown(:winston) - - -end # module - diff --git a/deprecated/docs/readme_template.md b/deprecated/docs/readme_template.md deleted file mode 100644 index 61a14f9d..00000000 --- a/deprecated/docs/readme_template.md +++ /dev/null @@ -1,305 +0,0 @@ -# Plots - -[](https://travis-ci.org/tbreloff/Plots.jl) -[](http://pkg.julialang.org/?pkg=Plots&ver=0.3) -[](http://pkg.julialang.org/?pkg=Plots&ver=0.4) - - - -#### Author: Thomas Breloff (@tbreloff) - -Plots is a plotting API and toolset. My goals with the package are: - -- **Intuitive**. Start generating complex plots without reading volumes of documentation. Commands should "just work". -- **Concise**. Less code means fewer mistakes and more efficient development/analysis. -- **Flexible**. Produce your favorite plots from your favorite package, but quicker and simpler. -- **Consistent**. Don't commit to one graphics package. Use the same code and access the strengths of all backends. -- **Lightweight**. Very few dependencies, since backends are loaded and initialized dynamically. - -Use the preprocessing pipeline in Plots to fully describe your visualization before it calls the backend code. This maintains modularity and allows for efficient separation of front end code, algorithms, and backend graphics. New graphical backends can be added with minimal effort. - -Check out the [summary graphs](img/supported/supported.md) for the features that each backend supports. - -Please add wishlist items, bugs, or any other comments/questions to the issues list. - -## Examples for each implemented backend: - -- [Gadfly.jl/Immerse.jl](https://github.com/tbreloff/ExamplePlots.jl/tree/master/docs/gadfly_examples.md) -- [PyPlot.jl](https://github.com/tbreloff/ExamplePlots.jl/tree/master/docs/pyplot_examples.md) -- [UnicodePlots.jl](https://github.com/tbreloff/ExamplePlots.jl/tree/master/docs/unicodeplots_examples.md) -- [Qwt.jl](https://github.com/tbreloff/ExamplePlots.jl/tree/master/docs/qwt_examples.md) - -Also check out the many [IJulia notebooks](http://nbviewer.ipython.org/github/tbreloff/ExamplePlots.jl/tree/master/examples/) with many examples. - -## Installation - -First, add the package - -```julia -Pkg.add("Plots") - -# if you want the latest features: -Pkg.checkout("Plots") - -# or for the bleeding edge: -Pkg.checkout("Plots", "dev") -``` - -then get any plotting packages you need (obviously, you should get at least one backend). - -```julia -Pkg.add("Gadfly") -Pkg.add("Immerse") -Pkg.add("PyPlot") -Pkg.add("UnicodePlots") -Pkg.add("Qwt") -Pkg.add("Bokeh") -``` - -## Use - -Load it in. The underlying plotting backends are not imported until `backend()` is called (which happens -on your first call to `plot` or `subplot`). This means that you don't need any backends to be installed when you call `using Plots`. - -Plots will try to figure out a good default backend for you automatically based on what backends are installed. - -```julia -using Plots -``` - -Do a plot in Gadfly (inspired by [this example](http://gadflyjl.org/geom_point.html)), then save a png: - -```julia -gadfly() # switch to Gadfly as a backend -dataframes() # turn on support for DataFrames inputs - -# load some data -using RDatasets -iris = dataset("datasets", "iris"); - -# This will bring up a browser window with the plot. Add a semicolon at the end to skip display. -scatter(iris, :SepalLength, :SepalWidth, group=:Species, m=([:+ :d :s], 12), smooth=0.99, bg=:black) - -# save a png (equivalent to png("gadfly1.png") and savefig("gadfly1.png")) -png("gadfly1") -``` - - - -## API - -Call `backend(backend::Symbol)` or the shorthands (`gadfly()`, `qwt()`, `unicodeplots()`, etc) to set the current plotting backend. -Subsequent commands are converted into the relevant plotting commands for that package: - -```julia -gadfly() -plot(1:10) # this effectively calls `y = 1:10; Gadfly.plot(x=1:length(y), y=y)` -qwt() -plot(1:10) # this effectively calls `Qwt.plot(1:10)` -``` - -Use `plot` to create a new plot object, and `plot!` to add to an existing one: - -```julia -plot(args...; kw...) # creates a new plot window, and sets it to be the `current` -plot!(args...; kw...) # adds to the `current` -plot!(plotobj, args...; kw...) # adds to the plot `plotobj` -``` - -Now that you know which plot object you're updating (new, current, or other), I'll leave it off for simplicity. -There are many ways to pass in data to the plot functions... some examples: - -- Vector-like (subtypes of AbstractArray{T,1}) -- Matrix-like (subtypes of AbstractArray{T,2}) -- Vectors of Vectors -- Functions -- Vectors of Functions -- DataFrames with column symbols (initialize with `dataframes()`) - -In general, you can pass in a `y` only, or an `x` and `y`, both of whatever type(s) you want, and Plots will slice up the data as needed. -For matrices, data is split by columns. For functions, data is mapped. For DataFrames, a Symbol/Symbols in place of x/y will map to -the relevant column(s). - -Here are some example usages... remember you can always use `plot!` to update an existing plot, and that, unless specified, you will update the `current()`. - -```julia -plot() # empty plot object -plot(4) # initialize with 4 empty series -plot(rand(10)) # plot 1 series... x = 1:10 -plot(rand(10,5)) # plot 5 series... x = 1:10 -plot(rand(10), rand(10)) # plot 1 series -plot(rand(10,5), rand(10)) # plot 5 series... y is the same for all -plot(sin, rand(10)) # y = sin(x) -plot(rand(10), sin) # same... y = sin(x) -plot([sin,cos], 0:0.1:π) # plot 2 series, sin(x) and cos(x) -plot([sin,cos], 0, π) # plot sin and cos on the range [0, π] -plot(1:10, Any[rand(10), sin]) # plot 2 series, y = rand(10) for the first, y = sin(x) for the second... x = 1:10 for both -plot(dataset("Ecdat", "Airline"), :Cost) # plot from a DataFrame (call `dataframes()` first to import DataFrames and initialize) -``` - -All plot methods accept a number of keyword arguments (see the tables below), which follow some rules: -- Many arguments have aliases which are replaced during preprocessing. `c` is the same as `color`, `m` is the same as `marker`, etc. You can choose how verbose you'd like to be. (see the tables below) -- There are some special arguments (`xaxis`, `yaxis`, `line`, `marker`, `fill` and the aliases `l`, `m`, `f`) which magically set many related things at once. (see the __Tip__ below) -- If the argument is a "matrix-type", then each column will map to a series, cycling through columns if there are fewer columns than series. Anything else will apply the argument value to every series. -- Many arguments accept many different types... for example the `color` (also `markercolor`, `fillcolor`, etc) argument will accept strings or symbols with a color name, or any `Colors.Colorant`, or a `ColorScheme`, or a symbol representing a `ColorGradient`, or an AbstractVector of colors/symbols/etc... - -You can update certain plot settings after plot creation (not supported on all backends): - -```julia -plot!(title = "New Title", xlabel = "New xlabel", ylabel = "New ylabel") -plot!(xlims = (0, 5.5), ylims = (-2.2, 6), xticks = 0:0.5:10, yticks = [0,1,5,10]) - -# using shorthands: -xaxis!("mylabel", :log10, :flip) -``` - -With `subplot`, create multiple plots at once, with flexible layout options: - -```julia -y = rand(100,3) -subplot(y; n = 3) # create an automatic grid, and let it figure out the shape -subplot(y; n = 3, nr = 1) # create an automatic grid, but fix the number of rows -subplot(y; n = 3, nc = 1) # create an automatic grid, but fix the number of columns -subplot(y; layout = [1, 2]) # explicit layout. Lists the number of plots in each row -``` - -__Tip__: You can call `subplot!(args...; kw...)` to add to an existing subplot. - -__Tip__: Calling `subplot!` on a `Plot` object, or `plot!` on a `Subplot` object will throw an error. - -Shorthands: - -```julia -scatter(args...; kw...) = plot(args...; kw..., linetype = :scatter) -scatter!(args...; kw...) = plot!(args...; kw..., linetype = :scatter) -bar(args...; kw...) = plot(args...; kw..., linetype = :bar) -bar!(args...; kw...) = plot!(args...; kw..., linetype = :bar) -histogram(args...; kw...) = plot(args...; kw..., linetype = :hist) -histogram!(args...; kw...) = plot!(args...; kw..., linetype = :hist) -heatmap(args...; kw...) = plot(args...; kw..., linetype = :heatmap) -heatmap!(args...; kw...) = plot!(args...; kw..., linetype = :heatmap) -sticks(args...; kw...) = plot(args...; kw..., linetype = :sticks, marker = :ellipse) -sticks!(args...; kw...) = plot!(args...; kw..., linetype = :sticks, marker = :ellipse) -hline(args...; kw...) = plot(args...; kw..., linetype = :hline) -hline!(args...; kw...) = plot!(args...; kw..., linetype = :hline) -vline(args...; kw...) = plot(args...; kw..., linetype = :vline) -vline!(args...; kw...) = plot!(args...; kw..., linetype = :vline) -ohlc(args...; kw...) = plot(args...; kw..., linetype = :ohlc) -ohlc!(args...; kw...) = plot!(args...; kw..., linetype = :ohlc) - -title!(s::AbstractString) = plot!(title = s) -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) -xticks!{T<:Real}(v::AVec{T}) = plot!(xticks = v) -yticks!{T<:Real}(v::AVec{T}) = plot!(yticks = v) -xflip!(flip::Bool = true) = plot!(xflip = flip) -yflip!(flip::Bool = true) = plot!(yflip = flip) -xaxis!(args...) = plot!(xaxis = args) -yaxis!(args...) = plot!(yaxis = args) -annotate!(anns) = plot!(annotation = anns) -``` - -### Keyword arguments: - -[[KEYWORD_ARGS_TABLE]] - -### Plot types: - -[[LINETYPES_TABLE]] - -### Line styles: - -[[LINESTYLES_TABLE]] - -### Markers: - -[[MARKERS_TABLE]] - -__Tip__: With supported backends, you can pass a `Plots.Shape` object for the `marker`/`markershape` arguments. `Shape` takes a vector of 2-tuples in the constructor, defining the points of the polygon's shape in a unit-scaled coordinate space. To make a square, for example, you could do `Shape([(1,1),(1,-1),(-1,-1),(-1,1)])` - -__Tip__: You can see the default value for a given argument with `default(arg::Symbol)`, and set the default value with `default(arg::Symbol, value)` or `default(; kw...)`. For example set the default window size and whether we should show a legend with `default(size=(600,400), leg=false)`. - -__Tip__: There are some helper arguments you can set: `xaxis`, `yaxis`, `line`, `marker`, `fill`. These go through special preprocessing to extract values into individual arguments. The order doesn't matter, and if you pass a single value it's equivalent to wrapping it in a Tuple. Examples: - -``` -plot(y, xaxis = ("mylabel", :log, :flip, (-1,1))) # this sets the `xlabel`, `xscale`, `xflip`, and `xlims` arguments automatically -plot(y, line = (:bar, :blue, :dot, 10)) # this sets the `linetype`, `color`, `linestyle`, and `linewidth` arguments automatically -plot(y, marker = (:rect, :red, 10)) # this sets the `markershape`, `markercolor`, and `markersize` arguments automatically -plot(y, fill = (:green, 10)) # this sets the `fillcolor` and `fillrange` arguments automatically - # Note: `fillrange` can be: - a number (fill to horizontal line) - a vector of numbers (different for each data point) - a tuple of vectors (fill a band) -``` - -__Tip__: When plotting multiple lines, you can set all series to use the same value, or pass in a matrix to cycle through values. Example: - -```julia -plot(rand(100,4); color = [:red RGB(0,0,1)], # (Matrix) lines 1 and 3 are red, lines 2 and 4 are blue - axis = :auto, # lines 1 and 3 are on the left axis, lines 2 and 4 are on the right - markershape = [:rect, :star] # (Vector) ALL lines are passed the vector [:rect, :star1] - width = 5) # all lines have a width of 5 -``` - -__Tip__: Not all features are supported for each backend, but you can see what's supported by calling the functions: `supportedArgs()`, `supportedAxes()`, `supportedTypes()`, `supportedStyles()`, `supportedMarkers()`, `subplotSupported()` - -__Tip__: Call `gui()` to display the plot in a window. Interactivity depends on backend. Plotting at the REPL (without semicolon) implicitly calls `gui()`. - -### Animations - -Animations are created in 3 steps (see example #2): -- Initialize an `Animation` object. -- Save each frame of the animation with `frame(anim)`. -- Convert the frames to an animated gif with `gif(anim, filename, fps=15)` - - -## TODO features: - -- [x] Plot vectors/matrices/functions -- [x] Plot DataFrames -- [x] Histograms -- [x] Grouping -- [x] Annotations -- [x] Scales -- [x] Categorical Inputs (strings, etc... for hist, bar? or can split one series into multiple?) -- [x] Custom markers -- [x] Animations -- [x] Subplots -- [ ] Contours -- [ ] Boxplots -- [ ] 3D plotting -- [ ] Scenes/Drawing -- [ ] Graphs -- [ ] Interactivity (GUIs) - -## TODO backends: - -- [x] Gadfly.jl -- [x] Immerse.jl -- [x] PyPlot.jl -- [x] UnicodePlots.jl -- [x] Qwt.jl -- [x] Winston.jl (deprecated) -- [ ] GLPlot.jl -- [ ] Bokeh.jl -- [ ] Vega.jl -- [ ] Gaston.jl -- [ ] Plotly.jl -- [ ] GoogleCharts.jl -- [ ] PLplot.jl -- [ ] TextPlots.jl -- [ ] ASCIIPlots.jl -- [ ] Sparklines.jl -- [ ] Hinton.jl -- [ ] ImageTerm.jl -- [ ] GraphViz.jl -- [ ] TikzGraphs.jl -- [ ] GraphLayout.jl - -## More information on backends (both supported and unsupported) - -See the wiki at: https://github.com/JuliaPlot/juliaplot_docs/wiki - - diff --git a/deprecated/img/gadfly1.png b/deprecated/img/gadfly1.png deleted file mode 100644 index a5cbe40a..00000000 Binary files a/deprecated/img/gadfly1.png and /dev/null differ diff --git a/deprecated/img/supported/Plots.supportGraphArgs.png b/deprecated/img/supported/Plots.supportGraphArgs.png deleted file mode 100644 index 5afa4469..00000000 Binary files a/deprecated/img/supported/Plots.supportGraphArgs.png and /dev/null differ diff --git a/deprecated/img/supported/Plots.supportGraphAxes.png b/deprecated/img/supported/Plots.supportGraphAxes.png deleted file mode 100644 index 0c5293ac..00000000 Binary files a/deprecated/img/supported/Plots.supportGraphAxes.png and /dev/null differ diff --git a/deprecated/img/supported/Plots.supportGraphMarkers.png b/deprecated/img/supported/Plots.supportGraphMarkers.png deleted file mode 100644 index eef5f598..00000000 Binary files a/deprecated/img/supported/Plots.supportGraphMarkers.png and /dev/null differ diff --git a/deprecated/img/supported/Plots.supportGraphScales.png b/deprecated/img/supported/Plots.supportGraphScales.png deleted file mode 100644 index 74b7f4f7..00000000 Binary files a/deprecated/img/supported/Plots.supportGraphScales.png and /dev/null differ diff --git a/deprecated/img/supported/Plots.supportGraphStyles.png b/deprecated/img/supported/Plots.supportGraphStyles.png deleted file mode 100644 index cd1ba825..00000000 Binary files a/deprecated/img/supported/Plots.supportGraphStyles.png and /dev/null differ diff --git a/deprecated/img/supported/Plots.supportGraphTypes.png b/deprecated/img/supported/Plots.supportGraphTypes.png deleted file mode 100644 index 65f77baf..00000000 Binary files a/deprecated/img/supported/Plots.supportGraphTypes.png and /dev/null differ diff --git a/deprecated/img/supported/supported.md b/deprecated/img/supported/supported.md deleted file mode 100644 index 800ae7d0..00000000 --- a/deprecated/img/supported/supported.md +++ /dev/null @@ -1,23 +0,0 @@ -## Supported keyword arguments - - - -## Supported plot types - - - -## Supported markers - - - -## Supported line styles - - - -## Supported scales - - - -## Supported axes - - diff --git a/deprecated/plotter.jl b/deprecated/plotter.jl deleted file mode 100644 index ee62107b..00000000 --- a/deprecated/plotter.jl +++ /dev/null @@ -1,333 +0,0 @@ - - -immutable GadflyPackage <: PlottingPackage end -immutable ImmersePackage <: PlottingPackage end -immutable PyPlotPackage <: PlottingPackage end -immutable QwtPackage <: PlottingPackage end -immutable UnicodePlotsPackage <: PlottingPackage end -immutable WinstonPackage <: PlottingPackage end -immutable BokehPackage <: PlottingPackage end -immutable PlotlyPackage <: PlottingPackage end -immutable GRPackage <: PlottingPackage end -immutable GLVisualizePackage <: PlottingPackage end -immutable NoPackage <: PlottingPackage end - -typealias GadflyOrImmerse @compat(Union{GadflyPackage, ImmersePackage}) - -export - gadfly, - immerse, - pyplot, - qwt, - unicodeplots, - bokeh, - plotly, - gr, - glvisualize - # winston - -gadfly(; kw...) = (default(; kw...); backend(:gadfly)) -immerse(; kw...) = (default(; kw...); backend(:immerse)) -pyplot(; kw...) = (default(; kw...); backend(:pyplot)) -qwt(; kw...) = (default(; kw...); backend(:qwt)) -unicodeplots(; kw...) = (default(; kw...); backend(:unicodeplots)) -bokeh(; kw...) = (default(; kw...); backend(:bokeh)) -plotly(; kw...) = (default(; kw...); backend(:plotly)) -gr(; kw...) = (default(; kw...); backend(:gr)) -glvisualize(; kw...) = (default(; kw...); backend(:glvisualize)) -# winston(; kw...) = (default(; kw...); backend(:winston)) - -backend_name(::GadflyPackage) = :gadfly -backend_name(::ImmersePackage) = :immerse -backend_name(::PyPlotPackage) = :pyplot -backend_name(::UnicodePlotsPackage) = :unicodeplots -backend_name(::QwtPackage) = :qwt -backend_name(::BokehPackage) = :bokeh -backend_name(::PlotlyPackage) = :plotly -backend_name(::GRPackage) = :gr -backend_name(::GLVisualizePackage) = :glvisualize -backend_name(::NoPackage) = :none - -include("backends/supported.jl") - -include("backends/qwt.jl") -include("backends/gadfly.jl") -include("backends/unicodeplots.jl") -include("backends/pyplot.jl") -include("backends/immerse.jl") -include("backends/winston.jl") - -include("backends/web.jl") -include("backends/bokeh.jl") -include("backends/plotly.jl") -include("backends/gr.jl") - -include("backends/glvisualize.jl") - - -# --------------------------------------------------------- - - -plot(pkg::PlottingPackage; kw...) = error("plot($pkg; kw...) is not implemented") -plot!(pkg::PlottingPackage, plt::Plot; kw...) = error("plot!($pkg, plt; kw...) is not implemented") -_update_plot(pkg::PlottingPackage, plt::Plot, d::Dict) = error("_update_plot($pkg, plt, d) is not implemented") -# Base.display(pkg::PlottingPackage, plt::Plot) = error("display($pkg, plt) is not implemented") - -_update_plot_pos_size{P<:PlottingPackage}(plt::PlottingObject{P}, d::Dict) = nothing #error("_update_plot_pos_size(plt,d) is not implemented for $P") - -subplot(pkg::PlottingPackage; kw...) = error("subplot($pkg; kw...) is not implemented") -subplot!(pkg::PlottingPackage, subplt::Subplot; kw...) = error("subplot!($pkg, subplt; kw...) is not implemented") -# Base.display(pkg::PlottingPackage, subplt::Subplot) = error("display($pkg, subplt) is not implemented") - -# --------------------------------------------------------- - - -const BACKENDS = [:qwt, :gadfly, :unicodeplots, :pyplot, :immerse, :bokeh, :plotly, :gr] -const _initialized_backends = Set{Symbol}() -backends() = BACKENDS - - -function _backend_instance(sym::Symbol) - sym == :qwt && return QwtPackage() - sym == :gadfly && return GadflyPackage() - sym == :unicodeplots && return UnicodePlotsPackage() - sym == :pyplot && return PyPlotPackage() - sym == :immerse && return ImmersePackage() - sym == :winston && return WinstonPackage() - sym == :bokeh && return BokehPackage() - sym == :plotly && return PlotlyPackage() - sym == :gr && return GRPackage() - sym == :glvisualize && return GLVisualizePackage() - sym == :none && return NoPackage() - error("Unsupported backend $sym") -end - - -type CurrentBackend - sym::Symbol - pkg::PlottingPackage -end -CurrentBackend(sym::Symbol) = CurrentBackend(sym, _backend_instance(sym)) - -# --------------------------------------------------------- - -function pickDefaultBackend() - for pkgstr in ("PyPlot", "Immerse", "Qwt", "Gadfly", "GR", "UnicodePlots", "Bokeh", "GLVisualize") - if Pkg.installed(pkgstr) != nothing - return backend(symbol(lowercase(pkgstr))) - end - end - backend(:plotly) -end - - -# --------------------------------------------------------- - -""" -Returns the current plotting package name. Initializes package on first call. -""" -function backend() - - global CURRENT_BACKEND - if CURRENT_BACKEND.sym == :none - pickDefaultBackend() - end - - currentBackendSymbol = CURRENT_BACKEND.sym - if !(currentBackendSymbol in _initialized_backends) - - # initialize - println("[Plots.jl] Initializing backend: ", CURRENT_BACKEND.sym) - if currentBackendSymbol == :qwt - try - @eval import Qwt - @eval export Qwt - catch err - warn("Couldn't import Qwt. Install it with: Pkg.clone(\"https://github.com/tbreloff/Qwt.jl.git\")\n (Note: also requires pyqt and pyqwt).") - rethrow(err) - end - - elseif currentBackendSymbol == :gadfly - try - @eval import Gadfly, Compose - @eval export Gadfly, Compose - @eval include(joinpath(Pkg.dir("Plots"), "src", "backends", "gadfly_shapes.jl")) - catch err - warn("Couldn't import Gadfly. Install it with: Pkg.add(\"Gadfly\").") - rethrow(err) - end - - elseif currentBackendSymbol == :unicodeplots - try - @eval import UnicodePlots - @eval export UnicodePlots - catch err - warn("Couldn't import UnicodePlots. Install it with: Pkg.add(\"UnicodePlots\").") - rethrow(err) - end - - elseif currentBackendSymbol == :pyplot - try - @eval import PyPlot - @eval export PyPlot - @eval const pycolors = PyPlot.pywrap(PyPlot.pyimport("matplotlib.colors")) - @eval const pypath = PyPlot.pywrap(PyPlot.pyimport("matplotlib.path")) - @eval const mplot3d = PyPlot.pywrap(PyPlot.pyimport("mpl_toolkits.mplot3d")) - # @eval const pycolorbar = PyPlot.pywrap(PyPlot.pyimport("matplotlib.colorbar")) - if !isa(Base.Multimedia.displays[end], Base.REPL.REPLDisplay) - PyPlot.ioff() # stops wierd behavior of displaying incomplete graphs in IJulia - - # # TODO: how the hell can I use PyQt4?? - # "pyqt4"=>:qt_pyqt4 - # PyPlot.backend[1] = "pyqt4" - # PyPlot.gui[1] = :qt_pyqt4 - # PyPlot.switch_backend("Qt4Agg") - - # only turn on the gui if we want it - if PyPlot.gui != :none - PyPlot.pygui(true) - end - - end - catch err - warn("Couldn't import PyPlot. Install it with: Pkg.add(\"PyPlot\").") - rethrow(err) - end - - elseif currentBackendSymbol == :immerse - try - @eval import Immerse, Gadfly, Compose, Gtk - @eval export Immerse, Gadfly, Compose, Gtk - @eval include(joinpath(Pkg.dir("Plots"), "src", "backends", "gadfly_shapes.jl")) - catch err - # error("Couldn't import Immerse. Install it with: Pkg.add(\"Immerse\").\n Error: ", err) - warn("Couldn't import Immerse. Install it with: Pkg.add(\"Immerse\").") - rethrow(err) - end - - elseif currentBackendSymbol == :bokeh - try - @eval import Bokeh - @eval export Bokeh - catch err - warn("Couldn't import Bokeh. Install it with: Pkg.add(\"Bokeh\").") - rethrow(err) - end - - elseif currentBackendSymbol == :plotly - try - @eval begin - import JSON - JSON._print(io::IO, state::JSON.State, dt::Union{Date,DateTime}) = print(io, '"', dt, '"') - - ############################ - # borrowed from https://github.com/spencerlyon2/Plotlyjs.jl/blob/master/src/display.jl - _js_path = joinpath(Pkg.dir("Plots"), "deps", "plotly-latest.min.js") - - # if we're in IJulia call setupnotebook to load js and css - if isijulia() - # the first script is some hack I needed to do in order for the notebook - # to not complain about Plotly being undefined - display("text/html", """ - - - """) - # display("text/html", "
Plotly javascript loaded.
") - end - # end borrowing (thanks :) - ########################### - - try - include(joinpath(Pkg.dir("Plots"), "src", "backends", "plotly_blink.jl")) - catch err - warn("Error including PlotlyJS: $err\n Note: Will fall back to built-in display.") - end - - end - catch err - warn("Couldn't setup Plotly") - rethrow(err) - end - - elseif currentBackendSymbol == :gr - try - @eval import GR - catch err - warn("Couldn't import GR. Install it with: Pkg.add(\"GR\").") - end - - elseif currentBackendSymbol == :glvisualize - try - @eval import GLVisualize - @eval export GLVisualize - catch err - warn("Couldn't setup GLVisualize") - rethrow(err) - end - - elseif currentBackendSymbol == :winston - warn("Winston support is deprecated and broken. Try another backend: $BACKENDS") - try - @eval ENV["WINSTON_OUTPUT"] = "gtk" - @eval import Winston, Gtk - @eval export Winston, Gtk - catch err - warn("Couldn't import Winston. Install it with: Pkg.add(\"Winston\").") - rethrow(err) - end - - else - error("Unknown backend $currentBackendSymbol. Choose from: $BACKENDS") - end - push!(_initialized_backends, currentBackendSymbol) - - end - CURRENT_BACKEND.pkg -end - -""" -Set the plot backend. Choose from: :qwt, :gadfly, :unicodeplots, :immerse, :pyplot -""" -function backend(pkg::PlottingPackage) - CURRENT_BACKEND.sym = backend_name(pkg) - CURRENT_BACKEND.pkg = pkg -end - -function backend(modname) - - # set the PlottingPackage - if modname == :qwt - CURRENT_BACKEND.pkg = QwtPackage() - elseif modname == :gadfly - CURRENT_BACKEND.pkg = GadflyPackage() - elseif modname == :unicodeplots - CURRENT_BACKEND.pkg = UnicodePlotsPackage() - elseif modname == :pyplot - CURRENT_BACKEND.pkg = PyPlotPackage() - elseif modname == :immerse - CURRENT_BACKEND.pkg = ImmersePackage() - elseif modname == :winston - CURRENT_BACKEND.pkg = WinstonPackage() - elseif modname == :bokeh - CURRENT_BACKEND.pkg = BokehPackage() - elseif modname == :plotly - CURRENT_BACKEND.pkg = PlotlyPackage() - elseif modname == :gr - CURRENT_BACKEND.pkg = GRPackage() - elseif modname == :glvisualize - CURRENT_BACKEND.pkg = GLVisualizePackage() - else - error("Unknown backend $modname. Choose from: $BACKENDS") - end - - # update the symbol - CURRENT_BACKEND.sym = modname - # println("[Plots.jl] Switched to backend: ", modname) - - # return the package - CURRENT_BACKEND.pkg -end diff --git a/deprecated/test/refimg/gadfly/ref1.png b/deprecated/test/refimg/gadfly/ref1.png deleted file mode 100644 index d4e8b9f3..00000000 Binary files a/deprecated/test/refimg/gadfly/ref1.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref10.png b/deprecated/test/refimg/gadfly/ref10.png deleted file mode 100644 index 2e9c1a9e..00000000 Binary files a/deprecated/test/refimg/gadfly/ref10.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref11.png b/deprecated/test/refimg/gadfly/ref11.png deleted file mode 100644 index 57eafde4..00000000 Binary files a/deprecated/test/refimg/gadfly/ref11.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref12.png b/deprecated/test/refimg/gadfly/ref12.png deleted file mode 100644 index 44ea8310..00000000 Binary files a/deprecated/test/refimg/gadfly/ref12.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref13.png b/deprecated/test/refimg/gadfly/ref13.png deleted file mode 100644 index e533d428..00000000 Binary files a/deprecated/test/refimg/gadfly/ref13.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref14.png b/deprecated/test/refimg/gadfly/ref14.png deleted file mode 100644 index a3de7c92..00000000 Binary files a/deprecated/test/refimg/gadfly/ref14.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref15.png b/deprecated/test/refimg/gadfly/ref15.png deleted file mode 100644 index a7847442..00000000 Binary files a/deprecated/test/refimg/gadfly/ref15.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref16.png b/deprecated/test/refimg/gadfly/ref16.png deleted file mode 100644 index 09551adc..00000000 Binary files a/deprecated/test/refimg/gadfly/ref16.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref17.png b/deprecated/test/refimg/gadfly/ref17.png deleted file mode 100644 index 787e4ba7..00000000 Binary files a/deprecated/test/refimg/gadfly/ref17.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref18.png b/deprecated/test/refimg/gadfly/ref18.png deleted file mode 100644 index 445cb910..00000000 Binary files a/deprecated/test/refimg/gadfly/ref18.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref2.png b/deprecated/test/refimg/gadfly/ref2.png deleted file mode 100644 index d9424fac..00000000 Binary files a/deprecated/test/refimg/gadfly/ref2.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref20.png b/deprecated/test/refimg/gadfly/ref20.png deleted file mode 100644 index cfad76c1..00000000 Binary files a/deprecated/test/refimg/gadfly/ref20.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref21.png b/deprecated/test/refimg/gadfly/ref21.png deleted file mode 100644 index ebe2e280..00000000 Binary files a/deprecated/test/refimg/gadfly/ref21.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref22.png b/deprecated/test/refimg/gadfly/ref22.png deleted file mode 100644 index 6adf86bc..00000000 Binary files a/deprecated/test/refimg/gadfly/ref22.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref3.png b/deprecated/test/refimg/gadfly/ref3.png deleted file mode 100644 index 56d935a5..00000000 Binary files a/deprecated/test/refimg/gadfly/ref3.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref4.png b/deprecated/test/refimg/gadfly/ref4.png deleted file mode 100644 index ce0109e4..00000000 Binary files a/deprecated/test/refimg/gadfly/ref4.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref5.png b/deprecated/test/refimg/gadfly/ref5.png deleted file mode 100644 index 0cc43bf3..00000000 Binary files a/deprecated/test/refimg/gadfly/ref5.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref6.png b/deprecated/test/refimg/gadfly/ref6.png deleted file mode 100644 index 73c729c8..00000000 Binary files a/deprecated/test/refimg/gadfly/ref6.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref7.png b/deprecated/test/refimg/gadfly/ref7.png deleted file mode 100644 index ab40d9fb..00000000 Binary files a/deprecated/test/refimg/gadfly/ref7.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref8.png b/deprecated/test/refimg/gadfly/ref8.png deleted file mode 100644 index 3675b20d..00000000 Binary files a/deprecated/test/refimg/gadfly/ref8.png and /dev/null differ diff --git a/deprecated/test/refimg/gadfly/ref9.png b/deprecated/test/refimg/gadfly/ref9.png deleted file mode 100644 index 913db160..00000000 Binary files a/deprecated/test/refimg/gadfly/ref9.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref1.png b/deprecated/test/refimg/pyplot/ref1.png deleted file mode 100644 index 81630754..00000000 Binary files a/deprecated/test/refimg/pyplot/ref1.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref10.png b/deprecated/test/refimg/pyplot/ref10.png deleted file mode 100644 index 38b78943..00000000 Binary files a/deprecated/test/refimg/pyplot/ref10.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref11.png b/deprecated/test/refimg/pyplot/ref11.png deleted file mode 100644 index c7ca4373..00000000 Binary files a/deprecated/test/refimg/pyplot/ref11.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref12.png b/deprecated/test/refimg/pyplot/ref12.png deleted file mode 100644 index 0176a97e..00000000 Binary files a/deprecated/test/refimg/pyplot/ref12.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref13.png b/deprecated/test/refimg/pyplot/ref13.png deleted file mode 100644 index bc7a7265..00000000 Binary files a/deprecated/test/refimg/pyplot/ref13.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref14.png b/deprecated/test/refimg/pyplot/ref14.png deleted file mode 100644 index 674b7574..00000000 Binary files a/deprecated/test/refimg/pyplot/ref14.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref15.png b/deprecated/test/refimg/pyplot/ref15.png deleted file mode 100644 index bd6f8e01..00000000 Binary files a/deprecated/test/refimg/pyplot/ref15.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref16.png b/deprecated/test/refimg/pyplot/ref16.png deleted file mode 100644 index 43b7e453..00000000 Binary files a/deprecated/test/refimg/pyplot/ref16.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref17.png b/deprecated/test/refimg/pyplot/ref17.png deleted file mode 100644 index 5edcaddb..00000000 Binary files a/deprecated/test/refimg/pyplot/ref17.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref18.png b/deprecated/test/refimg/pyplot/ref18.png deleted file mode 100644 index f115a1cd..00000000 Binary files a/deprecated/test/refimg/pyplot/ref18.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref2.png b/deprecated/test/refimg/pyplot/ref2.png deleted file mode 100644 index 229a4238..00000000 Binary files a/deprecated/test/refimg/pyplot/ref2.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref20.png b/deprecated/test/refimg/pyplot/ref20.png deleted file mode 100644 index 861ebd4a..00000000 Binary files a/deprecated/test/refimg/pyplot/ref20.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref21.png b/deprecated/test/refimg/pyplot/ref21.png deleted file mode 100644 index b7be9cdb..00000000 Binary files a/deprecated/test/refimg/pyplot/ref21.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref22.png b/deprecated/test/refimg/pyplot/ref22.png deleted file mode 100644 index 272bf351..00000000 Binary files a/deprecated/test/refimg/pyplot/ref22.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref24.png b/deprecated/test/refimg/pyplot/ref24.png deleted file mode 100644 index 987fb24b..00000000 Binary files a/deprecated/test/refimg/pyplot/ref24.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref3.png b/deprecated/test/refimg/pyplot/ref3.png deleted file mode 100644 index 07b4f8eb..00000000 Binary files a/deprecated/test/refimg/pyplot/ref3.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref4.png b/deprecated/test/refimg/pyplot/ref4.png deleted file mode 100644 index 52075798..00000000 Binary files a/deprecated/test/refimg/pyplot/ref4.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref5.png b/deprecated/test/refimg/pyplot/ref5.png deleted file mode 100644 index b652b762..00000000 Binary files a/deprecated/test/refimg/pyplot/ref5.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref6.png b/deprecated/test/refimg/pyplot/ref6.png deleted file mode 100644 index 032d66c7..00000000 Binary files a/deprecated/test/refimg/pyplot/ref6.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref7.png b/deprecated/test/refimg/pyplot/ref7.png deleted file mode 100644 index 7c1687ac..00000000 Binary files a/deprecated/test/refimg/pyplot/ref7.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref8.png b/deprecated/test/refimg/pyplot/ref8.png deleted file mode 100644 index c0a184e2..00000000 Binary files a/deprecated/test/refimg/pyplot/ref8.png and /dev/null differ diff --git a/deprecated/test/refimg/pyplot/ref9.png b/deprecated/test/refimg/pyplot/ref9.png deleted file mode 100644 index 22b5162b..00000000 Binary files a/deprecated/test/refimg/pyplot/ref9.png and /dev/null differ diff --git a/deprecated/test/test_plottypes.jl b/deprecated/test/test_plottypes.jl deleted file mode 100644 index 28b49992..00000000 --- a/deprecated/test/test_plottypes.jl +++ /dev/null @@ -1,21 +0,0 @@ - - -function testplot_line1() - plot(rand(100,3)) -end - -function testplot_fn1() - plot(0:0.01:4π, [sin,cos]) -end - -function testplot_guides1() - plot(rand(10); title="TITLE", xlabel="XLABEL", ylabel="YLABEL", background_color=:red) -end - -function testplot_points1() - plot(Vector[rand(10), rand(20)]; marker=:ellipse, markersize=8) -end - -function testplot_points2() - plot(Vector[rand(10), rand(20)]; marker=:ellipse, markersize=8, markercolors=[:red,:blue]) -end diff --git a/src/Plots.jl b/src/Plots.jl index e107808f..fd489073 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -135,7 +135,7 @@ include("types.jl") include("utils.jl") include("colors.jl") include("components.jl") -include("plotter2.jl") +include("backends.jl") include("args.jl") include("plot.jl") include("subplot.jl") diff --git a/src/plotter2.jl b/src/backends.jl similarity index 100% rename from src/plotter2.jl rename to src/backends.jl