palette fixes and working on imgcmp
This commit is contained in:
parent
f28e65a26c
commit
7e740861d8
13443
examples/palettes.ipynb
13443
examples/palettes.ipynb
File diff suppressed because one or more lines are too long
@ -1,125 +1,20 @@
|
||||
|
||||
# https://github.com/dcjones/Gadfly.jl
|
||||
|
||||
# immutable GadflyPackage <: PlottingPackage end
|
||||
|
||||
# export gadfly
|
||||
# gadfly() = backend(:gadfly)
|
||||
|
||||
|
||||
# # supportedArgs(::GadflyPackage) = setdiff(_allArgs, [:heatmap_c, :pos, :screen, :yrightlabel])
|
||||
# supportedArgs(::GadflyPackage) = [
|
||||
# :annotation,
|
||||
# # :axis,
|
||||
# :background_color,
|
||||
# :color,
|
||||
# :color_palette,
|
||||
# :fillrange,
|
||||
# :fillcolor,
|
||||
# :fillopacity,
|
||||
# :foreground_color,
|
||||
# :group,
|
||||
# :label,
|
||||
# :layout,
|
||||
# :legend,
|
||||
# :linestyle,
|
||||
# :linetype,
|
||||
# :linewidth,
|
||||
# :lineopacity,
|
||||
# :markershape,
|
||||
# :markercolor,
|
||||
# :markersize,
|
||||
# :markeropacity,
|
||||
# :n,
|
||||
# :nbins,
|
||||
# :nc,
|
||||
# :nr,
|
||||
# # :pos,
|
||||
# :smooth,
|
||||
# :show,
|
||||
# :size,
|
||||
# :title,
|
||||
# :windowtitle,
|
||||
# :x,
|
||||
# :xlabel,
|
||||
# :xlims,
|
||||
# :xticks,
|
||||
# :y,
|
||||
# :ylabel,
|
||||
# :ylims,
|
||||
# # :yrightlabel,
|
||||
# :yticks,
|
||||
# :xscale,
|
||||
# :yscale,
|
||||
# :xflip,
|
||||
# :yflip,
|
||||
# :z,
|
||||
# :tickfont,
|
||||
# :guidefont,
|
||||
# :legendfont,
|
||||
# :grid,
|
||||
# ]
|
||||
# supportedAxes(::GadflyPackage) = [:auto, :left]
|
||||
# supportedTypes(::GadflyPackage) = [:none, :line, :path, :steppre, :steppost, :sticks, :scatter, :heatmap, :hexbin, :hist, :bar, :hline, :vline, :ohlc]
|
||||
# supportedStyles(::GadflyPackage) = [:auto, :solid, :dash, :dot, :dashdot, :dashdotdot]
|
||||
# supportedMarkers(::GadflyPackage) = vcat(_allMarkers, Shape)
|
||||
# supportedScales(::GadflyPackage) = [:identity, :log, :log2, :log10, :asinh, :sqrt]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
function createGadflyPlotObject(d::Dict)
|
||||
# @eval import DataFrames
|
||||
|
||||
gplt = Gadfly.Plot()
|
||||
gplt.mapping = Dict()
|
||||
gplt.data_source = DataFrames.DataFrame()
|
||||
gplt.layers = gplt.layers[1:0]
|
||||
|
||||
# add the title, axis labels, and theme
|
||||
|
||||
gplt.guides = Gadfly.GuideElement[Gadfly.Guide.xlabel(d[:xlabel]),
|
||||
Gadfly.Guide.ylabel(d[:ylabel]),
|
||||
Gadfly.Guide.title(d[:title])]
|
||||
|
||||
# kwargs = Dict()
|
||||
|
||||
# # hide the legend?
|
||||
# if !get(d, :legend, true)
|
||||
# kwargs[:key_position] = :none
|
||||
# end
|
||||
|
||||
# if !get(d, :grid, true)
|
||||
# kwargs[:grid_color] = getColor(d[:background_color])
|
||||
# end
|
||||
|
||||
# # fonts
|
||||
# tfont, gfont, lfont = d[:tickfont], d[:guidefont], d[:legendfont]
|
||||
|
||||
# fg = getColor(d[:foreground_color])
|
||||
# gplt.theme = Gadfly.Theme(;
|
||||
# background_color = getColor(d[:background_color]),
|
||||
# minor_label_color = fg,
|
||||
# minor_label_font = tfont.family,
|
||||
# minor_label_font_size = tfont.pointsize * Gadfly.pt,
|
||||
# major_label_color = fg,
|
||||
# major_label_font = gfont.family,
|
||||
# major_label_font_size = gfont.pointsize * Gadfly.pt,
|
||||
# key_title_color = fg,
|
||||
# key_title_font = gfont.family,
|
||||
# key_title_font_size = gfont.pointsize * Gadfly.pt,
|
||||
# key_label_color = fg,
|
||||
# key_label_font = lfont.family,
|
||||
# key_label_font_size = lfont.pointsize * Gadfly.pt,
|
||||
# plot_padding = 1 * Gadfly.mm,
|
||||
# kwargs...
|
||||
# )
|
||||
gplt
|
||||
end
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -204,7 +99,6 @@ function addGadflyLine!(plt::Plot, d::Dict, geoms...)
|
||||
# add the layer
|
||||
x = d[d[:linetype] == :hist ? :y : :x]
|
||||
Gadfly.layer(gfargs...; x = x, y = d[:y], kwargs...)
|
||||
# prepend!(gplt.layers, )
|
||||
end
|
||||
|
||||
|
||||
@ -228,7 +122,6 @@ function getGadflyMarkerTheme(d::Dict, initargs::Dict)
|
||||
Gadfly.Theme(
|
||||
default_color = c,
|
||||
default_point_size = d[:markersize] * Gadfly.px,
|
||||
# highlight_color = getColor(initargs[:foreground_color]),
|
||||
discrete_highlight_color = c -> fg,
|
||||
highlight_width = d[:linewidth] * Gadfly.px,
|
||||
)
|
||||
@ -251,7 +144,6 @@ function addGadflyMarker!(plt::Plot, d::Dict, initargs::Dict, geoms...)
|
||||
end
|
||||
|
||||
Gadfly.layer(gfargs...; x = d[:x], y = d[:y], kwargs...)
|
||||
# prepend!(gplt.layers, )
|
||||
end
|
||||
|
||||
|
||||
@ -308,7 +200,6 @@ function addGadflySeries!(plt::Plot, d::Dict)
|
||||
|
||||
# add a regression line?
|
||||
# TODO: make more flexible
|
||||
# smooth = d[:smooth] ? [Gadfly.Geom.smooth(method=:lm)] : Any[]
|
||||
smooth = getGadflySmoothing(d[:smooth])
|
||||
|
||||
# lines
|
||||
@ -680,7 +571,6 @@ setGadflyDisplaySize(subplt::Subplot) = setGadflyDisplaySize(getinitargs(subplt,
|
||||
|
||||
function dowritemime{P<:GadflyOrImmerse}(io::IO, func, plt::PlottingObject{P})
|
||||
gplt = getGadflyContext(plt)
|
||||
# setGadflyDisplaySize(plt.initargs[:size]...)
|
||||
setGadflyDisplaySize(plt)
|
||||
Gadfly.draw(func(io, Compose.default_graphic_width, Compose.default_graphic_height), gplt)
|
||||
end
|
||||
|
||||
@ -211,40 +211,41 @@ end
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
# Methods to automatically generate gradients for color selection based on
|
||||
# background color and a short list of seed colors
|
||||
# # Methods to automatically generate gradients for color selection based on
|
||||
# # background color and a short list of seed colors
|
||||
|
||||
function adjust_lch(color, l, c)
|
||||
lch = LCHab(color)
|
||||
convert(RGB, LCHab(l, c, lch.h))
|
||||
end
|
||||
# function adjust_lch(color, l, c)
|
||||
# lch = LCHab(color)
|
||||
# convert(RGB, LCHab(l, c, lch.h))
|
||||
# end
|
||||
|
||||
function lightness_from_background(bgcolor)
|
||||
bglight = LCHab(bgcolor).l
|
||||
0.45bglight + 55.0 * (bglight < 50.0)
|
||||
end
|
||||
# function lightness_from_background(bgcolor)
|
||||
# bglight = LCHab(bgcolor).l
|
||||
# 0.5bglight + 0.5 * 100.0 * (bglight < 50.0)
|
||||
# end
|
||||
|
||||
function gradient_from_list(cs)
|
||||
zvalues = Plots.get_zvalues(length(cs))
|
||||
indices = sortperm(zvalues)
|
||||
sorted_colors = map(RGB, cs[indices])
|
||||
sorted_zvalues = zvalues[indices]
|
||||
ColorGradient(sorted_colors, sorted_zvalues)
|
||||
end
|
||||
# function gradient_from_list(cs)
|
||||
# zvalues = Plots.get_zvalues(length(cs))
|
||||
# indices = sortperm(zvalues)
|
||||
# sorted_colors = map(RGB, cs[indices])
|
||||
# sorted_zvalues = zvalues[indices]
|
||||
# ColorGradient(sorted_colors, sorted_zvalues)
|
||||
# end
|
||||
|
||||
function generate_colorgradient(bgcolor = colorant"white";
|
||||
color_bases = [colorant"steelblue", colorant"indianred"],
|
||||
lightness = lightness_from_background(bgcolor),
|
||||
n = 9)
|
||||
seed_colors = map(c -> adjust_lch(c,lightness,50), vcat(bgcolor, color_bases))
|
||||
colors = distinguishable_colors(n,
|
||||
seed_colors,
|
||||
lchoices=Float64[lightness],
|
||||
cchoices=Float64[50],
|
||||
hchoices=linspace(0, 340, 20)
|
||||
)[2:end]
|
||||
gradient_from_list(colors)
|
||||
end
|
||||
# function generate_colorgradient(bgcolor = colorant"white";
|
||||
# color_bases = [colorant"steelblue", colorant"indianred"],
|
||||
# lightness = lightness_from_background(bgcolor),
|
||||
# chroma = 50,
|
||||
# n = 9)
|
||||
# seed_colors = map(c -> adjust_lch(c,lightness,chroma), vcat(bgcolor, color_bases))
|
||||
# colors = distinguishable_colors(n,
|
||||
# seed_colors,
|
||||
# lchoices=Float64[lightness],
|
||||
# cchoices=Float64[chroma],
|
||||
# hchoices=linspace(0, 340, 20)
|
||||
# )[2:end]
|
||||
# gradient_from_list(colors)
|
||||
# end
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
@ -355,8 +356,9 @@ const _defaultNumColors = 17
|
||||
# background color and a short list of seed colors
|
||||
|
||||
# here are some magic constants that could be changed if you really want
|
||||
const _bgratio = [0.4]
|
||||
const _lch_c_const = [50]
|
||||
const _lightness_darkbg = [80.0]
|
||||
const _lightness_lightbg = [60.0]
|
||||
const _lch_c_const = [60]
|
||||
|
||||
function adjust_lch(color, l, c)
|
||||
lch = LCHab(color)
|
||||
@ -365,7 +367,8 @@ end
|
||||
|
||||
function lightness_from_background(bgcolor)
|
||||
bglight = LCHab(bgcolor).l
|
||||
_bgratio[1] * bglight + 100.0 * (1 - _bgratio[1]) * (bglight < 50.0)
|
||||
# _bgratio[1] * bglight + 100.0 * (1 - _bgratio[1]) * (bglight < 50.0)
|
||||
bglight < 50.0 ? _lightness_darkbg[1] : _lightness_lightbg[1]
|
||||
end
|
||||
|
||||
function gradient_from_list(cs)
|
||||
@ -377,14 +380,15 @@ function gradient_from_list(cs)
|
||||
end
|
||||
|
||||
function generate_colorgradient(bgcolor = colorant"white";
|
||||
color_bases = [colorant"steelblue", colorant"indianred"],
|
||||
lightness = lightness_from_background(bgcolor),
|
||||
n = _defaultNumColors)
|
||||
seed_colors = map(c -> adjust_lch(c,lightness, _lch_c_const[1]), vcat(bgcolor, color_bases))
|
||||
color_bases = color_bases=[colorant"steelblue",colorant"orangered"],
|
||||
lightness = lightness_from_background(bgcolor),
|
||||
chroma = _lch_c_const[1],
|
||||
n = _defaultNumColors)
|
||||
seed_colors = vcat(bgcolor, map(c -> adjust_lch(c, lightness, chroma), color_bases))
|
||||
colors = distinguishable_colors(n,
|
||||
seed_colors,
|
||||
lchoices=Float64[lightness],
|
||||
cchoices=Float64[_lch_c_const[1]],
|
||||
cchoices=Float64[chroma],
|
||||
hchoices=linspace(0, 340, 20)
|
||||
)[2:end]
|
||||
gradient_from_list(colors)
|
||||
|
||||
@ -126,7 +126,7 @@ function image_comparison_tests(pkg::Symbol, idx::Int; debug = false, sigma = [1
|
||||
# run the comparison test... a difference will throw an error
|
||||
# NOTE: sigma is a 2-length vector with x/y values for the number of pixels
|
||||
# to blur together when comparing images
|
||||
Images.@test_approx_eq_sigma_eps(tmpimg, refimg, sigma, eps)
|
||||
Images.test_approx_eq_sigma_eps(tmpimg, refimg, sigma, eps)
|
||||
|
||||
# we passed!
|
||||
info("Reference image $reffn matches")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user