diff --git a/docs/gadfly_examples.md b/docs/gadfly_examples.md index c753071b..f4251c22 100644 --- a/docs/gadfly_examples.md +++ b/docs/gadfly_examples.md @@ -1,10 +1,10 @@ # Examples for backend: gadfly -- Supported arguments: `annotation`, `background_color`, `color`, `color_palette`, `fillrange`, `fillcolor`, `group`, `label`, `layout`, `legend`, `linestyle`, `linetype`, `linewidth`, `markershape`, `markercolor`, `markersize`, `n`, `nbins`, `nc`, `nr`, `reg`, `show`, `size`, `title`, `windowtitle`, `x`, `xlabel`, `xlims`, `xticks`, `y`, `ylabel`, `ylims`, `yticks`, `xscale`, `yscale`, `xflip`, `yflip`, `z` +- Supported arguments: `annotation`, `background_color`, `color`, `color_palette`, `fillrange`, `fillcolor`, `foreground_color`, `group`, `label`, `layout`, `legend`, `linestyle`, `linetype`, `linewidth`, `markershape`, `markercolor`, `markersize`, `n`, `nbins`, `nc`, `nr`, `smooth`, `show`, `size`, `title`, `windowtitle`, `x`, `xlabel`, `xlims`, `xticks`, `y`, `ylabel`, `ylims`, `yticks`, `xscale`, `yscale`, `xflip`, `yflip`, `z`, `tickfont`, `guidefont`, `legendfont` - 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`, `:steppre`, `:steppost`, `:sticks`, `:scatter`, `:heatmap`, `:hexbin`, `:hist`, `:bar`, `:hline`, `:vline`, `:ohlc` - Supported values for linestyle: `:auto`, `:solid`, `:dash`, `:dot`, `:dashdot`, `:dashdotdot` -- Supported values for marker: `:none`, `:auto`, `:rect`, `:ellipse`, `:diamond`, `:utriangle`, `:dtriangle`, `:cross`, `:xcross`, `:star1`, `:star2`, `:hexagon`, `:octagon` +- Supported values for marker: `:none`, `:auto`, `:cross`, `:diamond`, `:dtriangle`, `:ellipse`, `:heptagon`, `:hexagon`, `:octagon`, `:pentagon`, `:rect`, `:star4`, `:star5`, `:star6`, `:star7`, `:star8`, `:utriangle`, `:xcross`, `:Plots.Shape` - Is `subplot`/`subplot!` supported? Yes ### Initialize @@ -150,8 +150,11 @@ plot(cumsum(randn(20,length(styles)),1); style=:auto,label=map(string,styles),w= ```julia -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=12) +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=(12,:auto),lab=map(string,markers),bg=:linen) ``` ![](../img/gadfly/gadfly_example_13.png) @@ -209,30 +212,14 @@ subplot!(fakedata(100,10)) ![](../img/gadfly/gadfly_example_18.png) -### 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`. - -```julia -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 = 1:n] -ohlc(y; markersize=8) -``` - -![](../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")]) +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"))]) ``` ![](../img/gadfly/gadfly_example_20.png) diff --git a/examples/meetup/cart-before-the-horse.jpg b/examples/meetup/cart-before-the-horse.jpg new file mode 100755 index 00000000..a9a11e16 Binary files /dev/null and b/examples/meetup/cart-before-the-horse.jpg differ diff --git a/examples/meetup/slides_20151028.ipynb b/examples/meetup/slides_20151028.ipynb index 0f6ffc3d..3a615aaa 100644 --- a/examples/meetup/slides_20151028.ipynb +++ b/examples/meetup/slides_20151028.ipynb @@ -157,13 +157,17 @@ "Interact| 102 | 8 | GUIs\n", "Distributions| 125 | 7 | Statistics\n", "Plots| 23 | 6 | Plotting\n", - "Seismic| 7 | 6 | Statistics\n", + "Seismic| 7 | 6 | Plotting\n", "Immerse | 23 | 5 | Plotting\n" ] }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Statistics and Learning in Julia\n", "- Stats (mostly in JuliaStats)\n", @@ -178,7 +182,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## Statistics and Learning in Julia\n", "- Optimization (mostly in JuliaOpt)\n", @@ -455,26 +463,32 @@ }, "outputs": [], "source": [ - "# use the same parametric functions to create a custom marker\n", + "# use the same parametric functions to create a custom marker shape\n", "us = linspace(0, 2π, 100)\n", "heart = Shape([(fx(u), -fy(u)) for u in us])\n", "\n", "# generate some data\n", "n = 50\n", "xy() = 4rand(2) - 2\n", - "# x, y = Vector[4rand(n)-2 for i in 1:2]\n", - "# numbers = [(x[i], y[i], text(i)) for i in 1:n]\n", "\n", - "# add to the plot\n", + "# add a title\n", "title!(\"Let me count the ways...\")\n", + "\n", + "# add a new series\n", "scatter!(zeros(0),zeros(0), z=0:n, marker=(heart,15,:reds))\n", "\n", "# animations!\n", "anim = Animation()\n", "for i in 1:n\n", " x, y = xy()\n", - " push!(current(), 2, x, y)\n", + " \n", + " # add to a series after creation\n", + " push!(p, 2, x, y)\n", + " \n", + " # easy annotations\n", " annotate!(x, y, text(i))\n", + " \n", + " # save an animation frame\n", " frame(anim)\n", "end" ] @@ -514,6 +528,21 @@ "gif(anim, \"iheartplots.gif\", fps=3)" ] }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# One problem...\n", + "\n", + "\n", + "\n", + "When the abstract comes after the concrete, it's a lot more work. Oops. Better late than never!!" + ] + }, { "cell_type": "markdown", "metadata": { @@ -523,57 +552,33 @@ }, "source": [ "## Fun with data - UCI Wine Quality Dataset\n", - "![wine](wine-toast.jpg)\n", + "\n", "\n", "P. Cortez, A. Cerdeira, F. Almeida, T. Matos and J. Reis. \n", "Modeling wine preferences by data mining from physicochemical properties. In Decision Support Systems, Elsevier, 47(4):547-553, 2009." ] }, { - "cell_type": "code", - "execution_count": 7, + "cell_type": "markdown", "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "image/png": "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+82bN+Tqq7uec057P9YwTIimNe3dESWEw8e++mrXG29Ur1vHBxVdpJigqF7Tpw+64oo+c+di21ObhMPhg43MsBUKcYIgdowWrw7J6WTy8kzJd2KCPsI4JFE8tmbNrjfeOLZmTdwOqpS0FotGr6ctFoSQJAis18syjMhlsjJvXr9+I266adj119NmcwZvx4G3unrnq6/uXr486HBk8HaNwaDR63V5efLLsMvFh0KZVaX6vLx+8+ePWLy4y+mnZ/B2AECHBE+EJxHC4X3vv7916VL30aPpnE8bjQWDBhUOHVo4eLC5e/fcPn1MJSWGwkKNPk4zY9DhCNhsweZmz7FjnspKx759zbt2uQ4floTU01y0FsvQ668/8447LGVlrf6tUmm/J8Km7dt/fuaZQx99lM7vqNHrCwYPLho2LK9fv7x+/cxduxqLi00lJXG/AXB+v7+xMWCzuQ4f9lVXN+/ebd+zx3XokMjz6STWbezY0Q8/XD5lyinRiQhPhDiDJ0LM4fJEeEr0EQrh8M7XXtv69NOBpqbkZ1rKynpOmlQyalTZ+PH5AwYQZJvmYnJ+f/3mzXUbNx77+uvGX35JXmFQWu2Im28++957jV2y2WPUHn2E9t27Nz3yyOGPP05+Gm00dj/vvPJp07qec06XM89sY7eowLJN27fXbdpU/9NP1evXh90ptvErHDLk3Mcf7zt3LubVIfQR4gz6CDGHSx8h5qNGJVHc9957mx5+OPmoxYKBAwdcemmf2bOLR45sp0zCbnfV2rWHPvro6Kefcn5/otNoo3HUvfeedffdGoMhK3GzO2qUqa/f+MADe999VxITLrdhKinpv3Bh34su6jp6dNyn57aTBKF6/fqjn3124D//Sf7lpvTss8975pmy8ePbI42sgFGjOINRo5jDZdQozuo2bVp7003Nu3YlOsFUUjLshhuGLFqU07u3YlnxweDhjz7a9cYbNT/+GHdKIkIop1eviS++2GfWLMWySknk+R0vv7zp4YcTjQWldLp+F1449Prre0yc2MYn6VZp2Lp191tv7X//fU5e4iCefhddNOHvf7f26KFYVgAATChREQqCaLN5Skvz2jtQq4Q9nu/vvHP3W28lqml6Tp484qab+syerdg0hpZchw5tW7Zs33vvJXpA7Ddv3uSXXzaVlrYlitPJ6PW00dimR/am7du/vv56286d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", - "text/plain": [ - "Plot{Plots.GadflyPackage() n=2}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" + "collapsed": true, + "slideshow": { + "slide_type": "slide" } - ], + }, "source": [ - "push!(p, 2, 5,5)" + "# Come collaborate:\n", + "- Plots.jl\n", + "- OnlineStats.jl\n", + "- OnlineAI.jl\n", + "- LearnBase.jl\n", + "- Unums.jl\n", + "\n", + "# or get in touch:\n", + "- tom@breloff.com\n", + "- https://github.com/tbreloff" ] }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "1-element Array{Gadfly.Layer,1}:\n", - " Gadfly.Layer(0x0 DataFrames.DataFrame\n", - ",Dict{Symbol,Any}(:y=>[0.625,0.625102,0.625407,0.625916,0.626629,0.627544,0.628662,0.629982,0.631503,0.633225 … 0.633225,0.631503,0.629982,0.628662,0.627544,0.626629,0.625916,0.625407,0.625102,0.625],:x=>[0.0,3.98065e-7,3.18434e-6,1.07461e-5,2.54686e-5,4.97346e-5,8.59226e-5,0.000136407,0.000203556,0.000289731 … -0.000289731,-0.000203556,-0.000136407,-8.59226e-5,-4.97346e-5,-2.54686e-5,-1.07461e-5,-3.18434e-6,-3.98065e-7,-2.35095e-47]),Gadfly.StatisticElement[],Gadfly.Geom.LineGeometry(Gadfly.Stat.Identity(),true,2,symbol(\"\")),Gadfly.Theme(RGB{U8}(0.545,0.0,0.0),Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(0.9,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(1.322751322751323,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),Any[],nothing,nothing,1.0,nothing,Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(5.0,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),RGB{U8}(0.816,0.816,0.878),[Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(0.5,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(0.5,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0)],RGB{U8}(0.627,0.627,0.627),Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(0.2,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\",Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(2.822222222222222,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),RGB{U8}(0.424,0.376,0.42),\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\",Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(3.880555555555555,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),RGB{U8}(0.337,0.29,0.333),\"'PT Sans Caption','Helvetica Neue','Helvetica',sans-serif\",Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(2.822222222222222,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),RGB{U8}(0.298,0.251,0.294),\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\",Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(3.880555555555555,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),RGB{U8}(0.212,0.165,0.208),\"'PT Sans','Helvetica Neue','Helvetica',sans-serif\",Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(2.822222222222222,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),RGB{U8}(0.298,0.251,0.294),40,Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(-0.05,Compose.MeasureNil(),Compose.MeasureNil(),-0.0,-0.0),Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(1.0,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(3.0,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),Gadfly.default_stroke_color,Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(0.3,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),Gadfly.default_discrete_highlight_color,Gadfly.default_continuous_highlight_color,(anonymous function),1.0,Gadfly.default_middle_color,Compose.Measure{Compose.MeasureNil,Compose.MeasureNil}(0.6,Compose.MeasureNil(),Compose.MeasureNil(),0.0,0.0),:left,:square,:right,RGB{U8}(0.545,0.0,0.0),1000,10.0,0.5,0.2,4),0)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/img/gadfly/gadfly_example_1.png b/img/gadfly/gadfly_example_1.png index 4ea7d606..a06e42e9 100644 Binary files a/img/gadfly/gadfly_example_1.png and b/img/gadfly/gadfly_example_1.png differ diff --git a/img/gadfly/gadfly_example_10.png b/img/gadfly/gadfly_example_10.png index bbefe94d..e1d4550b 100644 Binary files a/img/gadfly/gadfly_example_10.png and b/img/gadfly/gadfly_example_10.png differ diff --git a/img/gadfly/gadfly_example_11.png b/img/gadfly/gadfly_example_11.png index 3931a79e..c0fa0be1 100644 Binary files a/img/gadfly/gadfly_example_11.png and b/img/gadfly/gadfly_example_11.png differ diff --git a/img/gadfly/gadfly_example_12.png b/img/gadfly/gadfly_example_12.png index c491f919..539bce4a 100644 Binary files a/img/gadfly/gadfly_example_12.png and b/img/gadfly/gadfly_example_12.png differ diff --git a/img/gadfly/gadfly_example_13.png b/img/gadfly/gadfly_example_13.png index 7b2d114c..9721d445 100644 Binary files a/img/gadfly/gadfly_example_13.png and b/img/gadfly/gadfly_example_13.png differ diff --git a/img/gadfly/gadfly_example_14.png b/img/gadfly/gadfly_example_14.png index c1adabae..7e3466c7 100644 Binary files a/img/gadfly/gadfly_example_14.png and b/img/gadfly/gadfly_example_14.png differ diff --git a/img/gadfly/gadfly_example_15.png b/img/gadfly/gadfly_example_15.png index 0f07dc33..6b85a465 100644 Binary files a/img/gadfly/gadfly_example_15.png and b/img/gadfly/gadfly_example_15.png differ diff --git a/img/gadfly/gadfly_example_16.png b/img/gadfly/gadfly_example_16.png index 97d9b0f4..57e27cb9 100644 Binary files a/img/gadfly/gadfly_example_16.png and b/img/gadfly/gadfly_example_16.png differ diff --git a/img/gadfly/gadfly_example_17.png b/img/gadfly/gadfly_example_17.png index d6184689..a94dd3f8 100644 Binary files a/img/gadfly/gadfly_example_17.png and b/img/gadfly/gadfly_example_17.png differ diff --git a/img/gadfly/gadfly_example_18.png b/img/gadfly/gadfly_example_18.png index 0d5e63f4..8cd1397d 100644 Binary files a/img/gadfly/gadfly_example_18.png and b/img/gadfly/gadfly_example_18.png differ diff --git a/img/gadfly/gadfly_example_2.png b/img/gadfly/gadfly_example_2.png index f28693a4..68d78902 100644 Binary files a/img/gadfly/gadfly_example_2.png and b/img/gadfly/gadfly_example_2.png differ diff --git a/img/gadfly/gadfly_example_20.png b/img/gadfly/gadfly_example_20.png index 288c78a4..42e2798b 100644 Binary files a/img/gadfly/gadfly_example_20.png and b/img/gadfly/gadfly_example_20.png differ diff --git a/img/gadfly/gadfly_example_3.png b/img/gadfly/gadfly_example_3.png index 5d66f615..ba25ea9d 100644 Binary files a/img/gadfly/gadfly_example_3.png and b/img/gadfly/gadfly_example_3.png differ diff --git a/img/gadfly/gadfly_example_4.png b/img/gadfly/gadfly_example_4.png index 6397070d..925dc86f 100644 Binary files a/img/gadfly/gadfly_example_4.png and b/img/gadfly/gadfly_example_4.png differ diff --git a/img/gadfly/gadfly_example_5.png b/img/gadfly/gadfly_example_5.png index 3cec95ce..2fa91efb 100644 Binary files a/img/gadfly/gadfly_example_5.png and b/img/gadfly/gadfly_example_5.png differ diff --git a/img/gadfly/gadfly_example_6.png b/img/gadfly/gadfly_example_6.png index 05062c95..7c5911b2 100644 Binary files a/img/gadfly/gadfly_example_6.png and b/img/gadfly/gadfly_example_6.png differ diff --git a/img/gadfly/gadfly_example_7.png b/img/gadfly/gadfly_example_7.png index 78ec0d2f..9858dc70 100644 Binary files a/img/gadfly/gadfly_example_7.png and b/img/gadfly/gadfly_example_7.png differ diff --git a/img/gadfly/gadfly_example_8.png b/img/gadfly/gadfly_example_8.png index f968f4cf..d5b3b292 100644 Binary files a/img/gadfly/gadfly_example_8.png and b/img/gadfly/gadfly_example_8.png differ diff --git a/img/gadfly/gadfly_example_9.png b/img/gadfly/gadfly_example_9.png index f2d2bb73..737f0a02 100644 Binary files a/img/gadfly/gadfly_example_9.png and b/img/gadfly/gadfly_example_9.png differ diff --git a/src/backends/gadfly.jl b/src/backends/gadfly.jl index d9f8de7c..93047f23 100644 --- a/src/backends/gadfly.jl +++ b/src/backends/gadfly.jl @@ -534,15 +534,11 @@ function getGadflyMappings(plt::Plot, i::Integer) end function Base.getindex(plt::Plot{GadflyPackage}, i::Integer) - # data = getGadflyContext(plt).layers[end-i+1].mapping - # data[:x], data[:y] mapping = getGadflyMappings(plt, i)[1] mapping[:x], mapping[:y] end function Base.setindex!(plt::Plot{GadflyPackage}, xy::Tuple, i::Integer) - # data = getGadflyContext(plt).layers[end-i+1].mapping - # data[:x], data[:y] = xy for mapping in getGadflyMappings(plt, i) mapping[:x], mapping[:y] = xy end diff --git a/src/backends/immerse.jl b/src/backends/immerse.jl index 4615323a..2958c3ff 100644 --- a/src/backends/immerse.jl +++ b/src/backends/immerse.jl @@ -61,19 +61,30 @@ end # accessors for x/y data -function Base.getindex(plt::Plot{ImmersePackage}, i::Int) - data = plt.o[2].layers[end-i+1].mapping - data[:x], data[:y] +# function Base.getindex(plt::Plot{ImmersePackage}, i::Int) +# data = plt.o[2].layers[end-i+1].mapping +# data[:x], data[:y] +# end + +# function Base.setindex!(plt::Plot{ImmersePackage}, xy::Tuple, i::Integer) +# data = plt.o[2].layers[end-i+1].mapping +# data[:x], data[:y] = xy +# plt +# end + +function Base.getindex(plt::Plot{ImmersePackage}, i::Integer) + mapping = getGadflyMappings(plt, i)[1] + mapping[:x], mapping[:y] end function Base.setindex!(plt::Plot{ImmersePackage}, xy::Tuple, i::Integer) - data = plt.o[2].layers[end-i+1].mapping - data[:x], data[:y] = xy + for mapping in getGadflyMappings(plt, i) + mapping[:x], mapping[:y] = xy + end plt end - # ----------------------------------------------------------------