diff --git a/pairplot.jl b/pairplot.jl new file mode 100644 index 00000000..f9baec01 --- /dev/null +++ b/pairplot.jl @@ -0,0 +1,82 @@ +using Plots + +df = rand(5, 5) * 10 |> Matrix + +function pairplot(df) + rows, cols = size(df) + y = ones(3) + title = Plots.scatter( + y, + marker = 0, + markeralpha = 0, + annotations = (2, y[2], Plots.text("Pair plot")), + axis = ([], false), + leg = false, + size = (200, 100), + ) + plots = [] + for row = 1:rows, col = 1:cols + if row == rows && col == 1 + push!( + plots, + scatter( + df[!, row], + df[!, col], + xtickfont = font(4), + ytickfont = font(4), + legend = false, + xlabel = "foo", + xguidefontsize = font(4), + ylabel = "bar", + yguidefontsize = font(4), + ), + ) + + elseif row == rows + push!( + plots, + scatter( + df[!, row], + df[!, col], + xtickfont = font(4), + ytickfont = font(4), + legend = false, + xlabel = "foo", + xguidefontsize = font(4), + ), + ) + elseif col == 1 + push!( + plots, + scatter( + df[!, row], + df[!, col], + xtickfont = font(4), + ytickfont = font(4), + legend = false, + ylabel = "bar", + yguidefontsize = font(4), + ), + ) + else + push!( + plots, + scatter( + df[!, row], + df[!, col], + xtickfont = font(4), + ytickfont = font(4), + legend = false, + ), + ) + end + end + plot( + title, + plot(plots..., layout = (rows, cols)), + layout = grid(2, 1, heights = [0.05, 0.95]), + ) +end + +pairplot(df) +