This commit is contained in:
Thomas Breloff 2015-09-28 15:35:45 -04:00
parent 92a65296b5
commit 001abf684c
10 changed files with 46 additions and 36 deletions

View File

@ -20,7 +20,7 @@ end
# the examples we'll run for each # the examples we'll run for each
const examples = PlotExample[ const examples = PlotExample[
PlotExample("Lines", PlotExample("Lines",
"A simple line plot of the 3 columns.", "A simple line plot of the columns.",
[:(plot(rand(50,5), w=3))]), [:(plot(rand(50,5), w=3))]),
PlotExample("Functions", PlotExample("Functions",
"Plot multiple functions. You can also put the function first.", "Plot multiple functions. You can also put the function first.",
@ -32,59 +32,57 @@ const examples = PlotExample[
"Or make a parametric plot (i.e. plot: (fx(u), fy(u))) with plot(fx, fy, umin, umax).", "Or make a parametric plot (i.e. plot: (fx(u), fy(u))) with plot(fx, fy, umin, umax).",
[:(plot(sin, x->sin(2x), 0, 2π, legend=false, fillto=0))]), [:(plot(sin, x->sin(2x), 0, 2π, legend=false, fillto=0))]),
PlotExample("Global", PlotExample("Global",
"Change the guides/background without a separate call.", "Change the guides/background/limits/ticks. You can also use shorthand functions: `title!`, `xlabel!`, `ylabel!`, `xlims!`, `ylims!`, `xticks!`, `yticks!`",
[:(plot(rand(10); title="TITLE", xlabel="XLABEL", ylabel="YLABEL", background_color = RGB(0.2,0.2,0.2)))]), [:(plot(rand(10), title="TITLE", xlabel="XLABEL", ylabel="YLABEL", background_color = RGB(0.2,0.2,0.2), xlim=(-3,13), yticks=0:0.1:1))]),
PlotExample("Two-axis", PlotExample("Two-axis",
"Use the `axis` or `axiss` arguments.\n\nNote: Currently only supported with Qwt and PyPlot", "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"))]), [:(plot(Vector[randn(100), randn(100)*100]; axis = [:l,:r], ylabel="LEFT", yrightlabel="RIGHT"))]),
PlotExample("Vectors w/ pluralized args", PlotExample("Vectors w/ pluralized args",
"Plot multiple series with different numbers of points. Mix arguments that apply to all series (singular... see `marker`) with arguments unique to each series (pluralized... see `colors`).", "Plot multiple series with different numbers of points. Mix arguments that apply to all series (singular... see `marker`) with arguments unique to each series (pluralized... see `colors`).",
[:(plot(Vector[rand(10), rand(20)]; marker=:ellipse, markersize=8, colors=[:red,:blue]))]), [:(plot(Vector[rand(10), rand(20)]; marker=:ellipse, markersize=8, c=[:red,:blue]))]),
PlotExample("Build plot in pieces", PlotExample("Build plot in pieces",
"Start with a base plot...", "Start with a base plot...",
[:(plot(rand(100)/3; reg=true, fillto=0))]), [:(plot(rand(100)/3, reg=true, fillto=0))]),
PlotExample("", PlotExample("",
"and add to it later.", "and add to it later.",
[:(scatter!(rand(100); markersize=6, c=:blue))]), [:(scatter!(rand(100), markersize=6, c=:blue))]),
PlotExample("Heatmaps", PlotExample("Heatmaps",
"", "",
[:(heatmap(randn(10000),randn(10000); nbins=100))]), [:(heatmap(randn(10000),randn(10000), nbins=100))]),
PlotExample("Line types", PlotExample("Line types",
"", "",
[:(types = intersect(supportedTypes(), [:line, :path, :steppre, :steppost, :sticks, :scatter])), [:(types = intersect(supportedTypes(), [:line, :path, :steppre, :steppost, :sticks, :scatter])),
:(n = length(types)), :(n = length(types)),
:(x = Vector[sort(rand(20)) for i in 1:n]), :(x = Vector[sort(rand(20)) for i in 1:n]),
:(y = rand(20,n)), :(y = rand(20,n)),
:(plot(x, y; t=types, lab=map(string,types)))]), :(plot(x, y, t=types, lab=map(string,types)))]),
PlotExample("Line styles", PlotExample("Line styles",
"", "",
[:(styles = setdiff(supportedStyles(), [:auto])), :(plot(cumsum(randn(20,length(styles)),1); style=:auto, label=map(string,styles), w=5))]), [:(styles = setdiff(supportedStyles(), [:auto])), :(plot(cumsum(randn(20,length(styles)),1); style=:auto, label=map(string,styles), w=5))]),
PlotExample("Marker types", PlotExample("Marker types",
"", "",
[:(markers = setdiff(supportedMarkers(), [:none,:auto])), :(scatter(0.5:9.5, [fill(i-0.5,10) for i=length(markers):-1:1]; marker=:auto, label=map(string,markers), markersize=10))]), [:(markers = setdiff(supportedMarkers(), [:none,:auto])), :(scatter(0.5:9.5, [fill(i-0.5,10) for i=length(markers):-1:1]; marker=:auto, label=map(string,markers), ms=10))]),
PlotExample("Bar", PlotExample("Bar",
"x is the midpoint of the bar. (todo: allow passing of edges instead of midpoints)", "x is the midpoint of the bar. (todo: allow passing of edges instead of midpoints)",
[:(bar(randn(1000)))]), [:(bar(randn(1000)))]),
PlotExample("Histogram", PlotExample("Histogram",
"", "",
[:(histogram(randn(1000); nbins=50))]), [:(histogram(randn(1000), nbins=50))]),
PlotExample("Subplots", PlotExample("Subplots",
""" """
subplot and subplot! are distinct commands which create many plots and add series to them in a circular fashion. 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 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`. number of columns `nc`), or you can set the layout directly with `layout`.
Note: Gadfly is not very friendly here, and although you can create a plot and save a PNG, I haven't been able to actually display it.
""", """,
[:(subplot(randn(100,5); layout=[1,1,3], linetypes=[:line,:hist,:scatter,:step,:bar], nbins=10, legend=false))]), [:(subplot(randn(100,5), layout=[1,1,3], t=[:line,:hist,:scatter,:step,:bar], nbins=10, leg=false))]),
PlotExample("Adding to subplots", PlotExample("Adding to subplots",
"Note here the automatic grid layout, as well as the order in which new series are added to the plots.", "Note here the automatic grid layout, as well as the order in which new series are added to the plots.",
[:(subplot(randn(100,5); n=4))]), [:(subplot(randn(100,5), n=4))]),
PlotExample("", PlotExample("",
"", "",
[:(subplot!(randn(100,3)))]), [:(subplot!(randn(100,3)))]),
PlotExample("Open/High/Low/Close", PlotExample("Open/High/Low/Close",
"Create an OHLC chart. Pass in a vector of 4-tuples as your `y` argument. Adjust the tick width with arg `markersize`.", "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))]), [:(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", 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)`", "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)`",

View File

@ -1,6 +1,6 @@
# Examples for backend: gadfly # Examples for backend: gadfly
- Supported arguments: `args`, `axis`, `background_color`, `color`, `fillto`, `foreground_color`, `group`, `kwargs`, `label`, `legend`, `linestyle`, `linetype`, `marker`, `markercolor`, `markersize`, `nbins`, `reg`, `ribbon`, `show`, `size`, `title`, `width`, `windowtitle`, `xlabel`, `xticks`, `ylabel`, `yrightlabel`, `yticks` - Supported arguments: `annotation`, `args`, `background_color`, `color`, `fillto`, `group`, `kwargs`, `label`, `layout`, `legend`, `linestyle`, `linetype`, `marker`, `markercolor`, `markersize`, `n`, `nbins`, `nc`, `nr`, `reg`, `show`, `size`, `title`, `width`, `windowtitle`, `x`, `xlabel`, `xlims`, `xticks`, `y`, `ylabel`, `ylims`, `yticks`
- Supported values for axis: `:auto`, `:left` - Supported values for axis: `:auto`, `:left`
- Supported values for linetype: `:none`, `:line`, `:path`, `:steppost`, `:sticks`, `:scatter`, `:heatmap`, `:hexbin`, `:hist`, `:bar`, `:hline`, `:vline`, `:ohlc` - Supported values for linetype: `:none`, `:line`, `:path`, `:steppost`, `:sticks`, `:scatter`, `:heatmap`, `:hexbin`, `:hist`, `:bar`, `:hline`, `:vline`, `:ohlc`
- Supported values for linestyle: `:auto`, `:solid`, `:dash`, `:dot`, `:dashdot`, `:dashdotdot` - Supported values for linestyle: `:auto`, `:solid`, `:dash`, `:dot`, `:dashdot`, `:dashdotdot`
@ -11,12 +11,12 @@
```julia ```julia
using Plots using Plots
gadfly() gadfly!()
``` ```
### Lines ### Lines
A simple line plot of the 3 columns. A simple line plot of the columns.
```julia ```julia
plot(rand(50,5),w=3) plot(rand(50,5),w=3)
@ -58,17 +58,17 @@ plot(sin,(x->begin # /home/tom/.julia/v0.4/Plots/docs/example_generation.jl, li
### Global ### Global
Change the guides/background without a separate call. Change the guides/background/limits/ticks. You can also use shorthand functions: `title!`, `xlabel!`, `ylabel!`, `xlims!`, `ylims!`, `xticks!`, `yticks!`
```julia ```julia
plot(rand(10); title="TITLE",xlabel="XLABEL",ylabel="YLABEL",background_color=RGB(0.2,0.2,0.2)) plot(rand(10),title="TITLE",xlabel="XLABEL",ylabel="YLABEL",background_color=RGB(0.2,0.2,0.2),xlim=(-3,13),yticks=0:0.1:1)
``` ```
![](../img/gadfly/gadfly_example_5.png) ![](../img/gadfly/gadfly_example_5.png)
### Two-axis ### Two-axis
Use the `axis` or `axiss` arguments. Use the `axis` arguments.
Note: Currently only supported with Qwt and PyPlot Note: Currently only supported with Qwt and PyPlot
@ -83,7 +83,7 @@ plot(Vector[randn(100),randn(100) * 100]; axis=[:l,:r],ylabel="LEFT",yrightlabel
Plot multiple series with different numbers of points. Mix arguments that apply to all series (singular... see `marker`) with arguments unique to each series (pluralized... see `colors`). Plot multiple series with different numbers of points. Mix arguments that apply to all series (singular... see `marker`) with arguments unique to each series (pluralized... see `colors`).
```julia ```julia
plot(Vector[rand(10),rand(20)]; marker=:ellipse,markersize=8,colors=[:red,:blue]) plot(Vector[rand(10),rand(20)]; marker=:ellipse,markersize=8,c=[:red,:blue])
``` ```
![](../img/gadfly/gadfly_example_7.png) ![](../img/gadfly/gadfly_example_7.png)
@ -93,7 +93,7 @@ plot(Vector[rand(10),rand(20)]; marker=:ellipse,markersize=8,colors=[:red,:blue]
Start with a base plot... Start with a base plot...
```julia ```julia
plot(rand(100) / 3; reg=true,fillto=0) plot(rand(100) / 3,reg=true,fillto=0)
``` ```
![](../img/gadfly/gadfly_example_8.png) ![](../img/gadfly/gadfly_example_8.png)
@ -103,7 +103,7 @@ plot(rand(100) / 3; reg=true,fillto=0)
and add to it later. and add to it later.
```julia ```julia
scatter!(rand(100); markersize=6,c=:blue) scatter!(rand(100),markersize=6,c=:blue)
``` ```
![](../img/gadfly/gadfly_example_9.png) ![](../img/gadfly/gadfly_example_9.png)
@ -113,7 +113,7 @@ scatter!(rand(100); markersize=6,c=:blue)
```julia ```julia
heatmap(randn(10000),randn(10000); nbins=100) heatmap(randn(10000),randn(10000),nbins=100)
``` ```
![](../img/gadfly/gadfly_example_10.png) ![](../img/gadfly/gadfly_example_10.png)
@ -127,7 +127,7 @@ types = intersect(supportedTypes(),[:line,:path,:steppre,:steppost,:sticks,:scat
n = length(types) n = length(types)
x = Vector[sort(rand(20)) for i = 1:n] x = Vector[sort(rand(20)) for i = 1:n]
y = rand(20,n) y = rand(20,n)
plot(x,y; t=types,lab=map(string,types)) plot(x,y,t=types,lab=map(string,types))
``` ```
![](../img/gadfly/gadfly_example_11.png) ![](../img/gadfly/gadfly_example_11.png)
@ -149,7 +149,7 @@ plot(cumsum(randn(20,length(styles)),1); style=:auto,label=map(string,styles),w=
```julia ```julia
markers = setdiff(supportedMarkers(),[:none,:auto]) markers = setdiff(supportedMarkers(),[:none,:auto])
scatter(0.5:9.5,[fill(i - 0.5,10) for i = length(markers):-1:1]; marker=:auto,label=map(string,markers),markersize=10) scatter(0.5:9.5,[fill(i - 0.5,10) for i = length(markers):-1:1]; marker=:auto,label=map(string,markers),ms=10)
``` ```
![](../img/gadfly/gadfly_example_13.png) ![](../img/gadfly/gadfly_example_13.png)
@ -169,7 +169,7 @@ bar(randn(1000))
```julia ```julia
histogram(randn(1000); nbins=50) histogram(randn(1000),nbins=50)
``` ```
![](../img/gadfly/gadfly_example_15.png) ![](../img/gadfly/gadfly_example_15.png)
@ -178,13 +178,11 @@ histogram(randn(1000); nbins=50)
subplot and subplot! are distinct commands which create many plots and add series to them in a circular fashion. 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 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`. number of columns `nc`), or you can set the layout directly with `layout`.
Note: Gadfly is not very friendly here, and although you can create a plot and save a PNG, I haven't been able to actually display it.
```julia ```julia
subplot(randn(100,5); layout=[1,1,3],linetypes=[:line,:hist,:scatter,:step,:bar],nbins=10,legend=false) subplot(randn(100,5),layout=[1,1,3],t=[:line,:hist,:scatter,:step,:bar],nbins=10,leg=false)
``` ```
![](../img/gadfly/gadfly_example_16.png) ![](../img/gadfly/gadfly_example_16.png)
@ -194,7 +192,7 @@ subplot(randn(100,5); layout=[1,1,3],linetypes=[:line,:hist,:scatter,:step,:bar]
Note here the automatic grid layout, as well as the order in which new series are added to the plots. Note here the automatic grid layout, as well as the order in which new series are added to the plots.
```julia ```julia
subplot(randn(100,5); n=4) subplot(randn(100,5),n=4)
``` ```
![](../img/gadfly/gadfly_example_17.png) ![](../img/gadfly/gadfly_example_17.png)
@ -211,7 +209,7 @@ subplot!(randn(100,3))
### Open/High/Low/Close ### Open/High/Low/Close
Create an OHLC chart. Pass in a vector of 4-tuples as your `y` argument. Adjust the tick width with arg `markersize`. Create an OHLC chart. Pass in a vector of OHLC objects as your `y` argument. Adjust the tick width with arg `markersize`.
```julia ```julia
n = 20 n = 20
@ -225,3 +223,15 @@ ohlc(y; markersize=8)
![](../img/gadfly/gadfly_example_19.png) ![](../img/gadfly/gadfly_example_19.png)
### 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)`
```julia
y = rand(10)
plot(y,ann=(3,y[3],"this is #3"))
annotate!([(5,y[5],"this is #5"),(9,y[10],"this is #10")])
```
![](../img/gadfly/gadfly_example_20.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 67 KiB

View File

@ -182,6 +182,7 @@ const _keyAliases = Dict(
:s => :linestyle, :s => :linestyle,
:ls => :linestyle, :ls => :linestyle,
:m => :marker, :m => :marker,
:shape => :marker,
:mc => :markercolor, :mc => :markercolor,
:mcolor => :markercolor, :mcolor => :markercolor,
:ms => :markersize, :ms => :markersize,
@ -214,6 +215,7 @@ const _keyAliases = Dict(
:fgcolor => :foreground_color, :fgcolor => :foreground_color,
:fg_color => :foreground_color, :fg_color => :foreground_color,
:foreground => :foreground_color, :foreground => :foreground_color,
:regression => :reg,
:xlim => :xlims, :xlim => :xlims,
:xlimit => :xlims, :xlimit => :xlims,
:xlimits => :xlims, :xlimits => :xlims,