From 9cf92f37f5d3e222d063763e31675849107cfc69 Mon Sep 17 00:00:00 2001 From: Thomas Breloff Date: Fri, 20 Nov 2015 14:05:06 -0500 Subject: [PATCH] preparing for MLPlots; removed corrplot --- src/Plots.jl | 12 +++- src/backends/pyplot.jl | 1 + src/recipes.jl | 158 ++++++++++++++++++++--------------------- 3 files changed, 90 insertions(+), 81 deletions(-) diff --git a/src/Plots.jl b/src/Plots.jl index dd3522a3..e0360b49 100644 --- a/src/Plots.jl +++ b/src/Plots.jl @@ -10,6 +10,14 @@ using Reexport @reexport using Colors export + Plot, + Subplot, + SubplotLayout, + GridLayout, + FlexLayout, + AVec, + AMat, + plot, plot!, # plot_display, @@ -94,8 +102,8 @@ export # recipes PlotRecipe, - EllipseRecipe, - spy, + # EllipseRecipe, + # spy, corrplot # --------------------------------------------------------- diff --git a/src/backends/pyplot.jl b/src/backends/pyplot.jl index 65079ccd..b9dbfaa2 100644 --- a/src/backends/pyplot.jl +++ b/src/backends/pyplot.jl @@ -285,6 +285,7 @@ function _add_series(pkg::PyPlotPackage, plt::Plot; kw...) extra_kwargs[:alpha] = d[:markeralpha] end extra_kwargs[:edgecolors] = getPyPlotColor(d[:markerstrokecolor], d[:markerstrokealpha]) + extra_kwargs[:linewidths] = d[:markerstrokewidth] else extra_kwargs[:markersize] = d[:markersize] extra_kwargs[:markerfacecolor] = getPyPlotColor(d[:markercolor], d[:markeralpha]) diff --git a/src/recipes.jl b/src/recipes.jl index 5468a619..4ea5845c 100644 --- a/src/recipes.jl +++ b/src/recipes.jl @@ -15,100 +15,100 @@ plot!(recipe::PlotRecipe, args...; kw...) = plot!(getRecipeXY(recipe)..., args.. plot!(plt::Plot, recipe::PlotRecipe, args...; kw...) = plot!(getRecipeXY(recipe)..., args...; getRecipeArgs(recipe)..., kw...) -# ------------------------------------------------- +# # ------------------------------------------------- -function rotate(x::Real, y::Real, θ::Real; center = (0,0)) - cx = x - center[1] - cy = y - center[2] - xrot = cx * cos(θ) - cy * sin(θ) - yrot = cy * cos(θ) + cx * sin(θ) - xrot + center[1], yrot + center[2] -end +# function rotate(x::Real, y::Real, θ::Real; center = (0,0)) +# cx = x - center[1] +# cy = y - center[2] +# xrot = cx * cos(θ) - cy * sin(θ) +# yrot = cy * cos(θ) + cx * sin(θ) +# xrot + center[1], yrot + center[2] +# end -# ------------------------------------------------- +# # ------------------------------------------------- -type EllipseRecipe <: PlotRecipe - w::Float64 - h::Float64 - x::Float64 - y::Float64 - θ::Float64 -end -EllipseRecipe(w,h,x,y) = EllipseRecipe(w,h,x,y,0) +# type EllipseRecipe <: PlotRecipe +# w::Float64 +# h::Float64 +# x::Float64 +# y::Float64 +# θ::Float64 +# end +# EllipseRecipe(w,h,x,y) = EllipseRecipe(w,h,x,y,0) -# return x,y coords of a rotated ellipse, centered at the origin -function rotatedEllipse(w, h, x, y, θ, rotθ) - # # coord before rotation - xpre = w * cos(θ) - ypre = h * sin(θ) +# # return x,y coords of a rotated ellipse, centered at the origin +# function rotatedEllipse(w, h, x, y, θ, rotθ) +# # # coord before rotation +# xpre = w * cos(θ) +# ypre = h * sin(θ) - # rotate and translate - r = rotate(xpre, ypre, rotθ) - x + r[1], y + r[2] -end +# # rotate and translate +# r = rotate(xpre, ypre, rotθ) +# x + r[1], y + r[2] +# end -function getRecipeXY(ep::EllipseRecipe) - x, y = unzip([rotatedEllipse(ep.w, ep.h, ep.x, ep.y, u, ep.θ) for u in linspace(0,2π,100)]) - top = rotate(0, ep.h, ep.θ) - right = rotate(ep.w, 0, ep.θ) - linex = Float64[top[1], 0, right[1]] + ep.x - liney = Float64[top[2], 0, right[2]] + ep.y - Any[x, linex], Any[y, liney] -end +# function getRecipeXY(ep::EllipseRecipe) +# x, y = unzip([rotatedEllipse(ep.w, ep.h, ep.x, ep.y, u, ep.θ) for u in linspace(0,2π,100)]) +# top = rotate(0, ep.h, ep.θ) +# right = rotate(ep.w, 0, ep.θ) +# linex = Float64[top[1], 0, right[1]] + ep.x +# liney = Float64[top[2], 0, right[2]] + ep.y +# Any[x, linex], Any[y, liney] +# end -function getRecipeArgs(ep::EllipseRecipe) - [(:line, (3, [:dot :solid], [:red :blue], :path))] -end +# function getRecipeArgs(ep::EllipseRecipe) +# [(:line, (3, [:dot :solid], [:red :blue], :path))] +# end -# ------------------------------------------------- +# # ------------------------------------------------- -"Correlation scatter matrix" -function corrplot{T<:Real,S<:Real}(mat::AMat{T}, corrmat::AMat{S} = cor(mat); - colors = :redsblues, - labels = nothing, kw...) - m = size(mat,2) - centers = Float64[mean(extrema(mat[:,i])) for i in 1:m] +# "Correlation scatter matrix" +# function corrplot{T<:Real,S<:Real}(mat::AMat{T}, corrmat::AMat{S} = cor(mat); +# colors = :redsblues, +# labels = nothing, kw...) +# m = size(mat,2) +# centers = Float64[mean(extrema(mat[:,i])) for i in 1:m] - # might be a mistake? - @assert m <= 20 - @assert size(corrmat) == (m,m) +# # might be a mistake? +# @assert m <= 20 +# @assert size(corrmat) == (m,m) - # create a subplot grid, and a gradient from -1 to 1 - p = subplot(rand(0,m^2); n=m^2, leg=false, grid=false, kw...) - cgrad = ColorGradient(colors, [-1,1]) +# # create a subplot grid, and a gradient from -1 to 1 +# p = subplot(rand(0,m^2); n=m^2, leg=false, grid=false, kw...) +# cgrad = ColorGradient(colors, [-1,1]) - # make all the plots - for i in 1:m - for j in 1:m - idx = p.layout[i,j] - plt = p.plts[idx] - if i==j - # histogram on diagonal - histogram!(plt, mat[:,i], c=:black) - i > 1 && plot!(plt, yticks = :none) - elseif i < j - # annotate correlation value in upper triangle - mi, mj = centers[i], centers[j] - plot!(plt, [mj], [mi], - ann = (mj, mi, text(@sprintf("Corr:\n%0.3f", corrmat[i,j]), 15)), - yticks=:none) - else - # scatter plots in lower triangle; color determined by correlation - c = RGBA(RGB(getColorZ(cgrad, corrmat[i,j])), 0.3) - scatter!(plt, mat[:,j], mat[:,i], w=0, ms=3, c=c, smooth=true) - end +# # make all the plots +# for i in 1:m +# for j in 1:m +# idx = p.layout[i,j] +# plt = p.plts[idx] +# if i==j +# # histogram on diagonal +# histogram!(plt, mat[:,i], c=:black) +# i > 1 && plot!(plt, yticks = :none) +# elseif i < j +# # annotate correlation value in upper triangle +# mi, mj = centers[i], centers[j] +# plot!(plt, [mj], [mi], +# ann = (mj, mi, text(@sprintf("Corr:\n%0.3f", corrmat[i,j]), 15)), +# yticks=:none) +# else +# # scatter plots in lower triangle; color determined by correlation +# c = RGBA(RGB(getColorZ(cgrad, corrmat[i,j])), 0.3) +# scatter!(plt, mat[:,j], mat[:,i], w=0, ms=3, c=c, smooth=true) +# end - if labels != nothing && length(labels) >= m - i == m && xlabel!(plt, string(labels[j])) - j == 1 && ylabel!(plt, string(labels[i])) - end - end - end +# if labels != nothing && length(labels) >= m +# i == m && xlabel!(plt, string(labels[j])) +# j == 1 && ylabel!(plt, string(labels[i])) +# end +# end +# end - # link the axes - subplot!(p, link = (r,c) -> (true, r!=c)) -end +# # link the axes +# subplot!(p, link = (r,c) -> (true, r!=c)) +# end "Sparsity plot... heatmap of non-zero values of a matrix"