Compare commits

..

5 Commits

Author SHA1 Message Date
Simon Christ 7c8952fadf bump version [skip ci] 2020-06-17 11:19:26 +02:00
isentropic 8b2d3e926a better exopnents (#2786) 2020-06-17 11:18:03 +02:00
Fons van der Plas fb40ed1f59 Plotly fixed version (#2779)
* Fixed version for plotly.js dependency

* Fixed version for plotly.js dependency - .gitignore update
2020-06-17 11:17:37 +02:00
isentropic e88654cca5 pyplot colorbar positioning (#2772) 2020-06-17 11:17:18 +02:00
Maaz Bin Tahir Saeed a9b9b3c357 Fix #2377, #2785, #2369: Legend positioning fix for multiple plots (#2784)
* Fix 2377: Legend positioning fix for multiple vertical plots

* Fix #2785: Legend positioning for multiple horizontal plots
2020-06-17 11:16:37 +02:00
7 changed files with 43 additions and 22 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
.DS_Store
examples/.ipynb_checkpoints/*
examples/meetup/.ipynb_checkpoints/*
deps/plotly-latest.min.js
deps/plotly-*
deps/build.log
deps/deps.jl
Manifest.toml
+1 -1
View File
@@ -1,7 +1,7 @@
name = "Plots"
uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
author = ["Tom Breloff (@tbreloff)"]
version = "1.4.1"
version = "1.4.2"
[deps]
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
+4 -4
View File
@@ -1,12 +1,12 @@
#TODO: download https://cdn.plot.ly/plotly-latest.min.js to deps/ if it doesn't exist
#TODO: download https://cdn.plot.ly/plotly-1.54.2.min.js to deps/ if it doesn't exist
file_path = ""
if get(ENV, "PLOTS_HOST_DEPENDENCY_LOCAL", "false") == "true"
global file_path
local_fn = joinpath(dirname(@__FILE__), "plotly-latest.min.js")
local_fn = joinpath(dirname(@__FILE__), "plotly-1.54.2.min.js")
if !isfile(local_fn)
@info("Cannot find deps/plotly-latest.min.js... downloading latest version.")
download("https://cdn.plot.ly/plotly-latest.min.js", local_fn)
@info("Cannot find deps/plotly-1.54.2.min.js... downloading latest version.")
download("https://cdn.plot.ly/plotly-1.54.2.min.js", local_fn)
isfile(local_fn) && (file_path = local_fn)
else
file_path = local_fn
+4 -10
View File
@@ -181,16 +181,10 @@ function optimal_ticks_and_labels(sp::Subplot, axis::Axis, ticks = nothing)
labels = if any(isfinite, unscaled_ticks)
formatter = axis[:formatter]
if formatter == :auto
# the default behavior is to make strings of the scaled values and then apply the labelfunc
map(labelfunc(scale, backend()), Showoff.showoff(scaled_ticks, :auto))
elseif formatter == :plain
# Leave the numbers in plain format
map(labelfunc(scale, backend()), Showoff.showoff(scaled_ticks, :plain))
elseif formatter == :scientific
Showoff.showoff(unscaled_ticks, :scientific)
elseif formatter == :latex
map(x -> string("\$", replace(convert_sci_unicode(x), '×' => "\\times"), "\$"), Showoff.showoff(unscaled_ticks, :auto))
if formatter in (:auto, :plain, :scientific, :engineering)
map(labelfunc(scale, backend()), Showoff.showoff(scaled_ticks, formatter))
elseif formatter == :latex
map(x -> string("\$", replace(convert_sci_unicode(x), '×' => "\\times"), "\$"), Showoff.showoff(unscaled_ticks, :auto))
else
# there was an override for the formatter... use that on the unscaled ticks
map(formatter, unscaled_ticks)
+3 -2
View File
@@ -590,7 +590,7 @@ function gr_legend_pos(sp::Subplot, w, h, viewport_plotarea)
xpos = viewport_plotarea[1] + 0.11
end
else
xpos = (viewport_plotarea[2]-viewport_plotarea[1])/2 - w/2 +.04
xpos = (viewport_plotarea[2]-viewport_plotarea[1])/2 - w/2 +.04 + viewport_plotarea[1]
end
if occursin("top", str)
if s == :outertop
@@ -605,7 +605,8 @@ function gr_legend_pos(sp::Subplot, w, h, viewport_plotarea)
ypos = viewport_plotarea[3] + h + 0.06
end
else
ypos = (viewport_plotarea[4]-viewport_plotarea[3])/2 + h/2
# Adding min y to shift legend pos to correct graph (#2377)
ypos = (viewport_plotarea[4]-viewport_plotarea[3])/2 + h/2 + viewport_plotarea[3]
end
(xpos,ypos)
end
+1 -1
View File
@@ -828,7 +828,7 @@ const ijulia_initialized = Ref(false)
function plotly_html_head(plt::Plot)
local_file = ("file:///" * plotly_local_file_path)
plotly =
use_local_dependencies[] ? local_file : "https://cdn.plot.ly/plotly-latest.min.js"
use_local_dependencies[] ? local_file : "https://cdn.plot.ly/plotly-1.54.2.min.js"
include_mathjax = get(plt[:extra_plot_kwargs], :include_mathjax, "")
mathjax_file = include_mathjax != "cdn" ? ("file://" * include_mathjax) : "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML"
+29 -3
View File
@@ -182,7 +182,7 @@ function labelfunc(scale::Symbol, backend::PyPlotBackend)
elseif scale == :ln
x -> PyPlot.LaTeXStrings.latexstring("e^{$x}")
else
string
x -> PyPlot.LaTeXStrings.latexstring(convert_sci_unicode(x))
end
end
@@ -1016,8 +1016,34 @@ function _before_layout_calcs(plt::Plot{PyPlotBackend})
# width = axes_grid1.axes_size.AxesY(ax, aspect=1.0 / 3.5)
# pad = axes_grid1.axes_size.Fraction(0.5, width) # Colorbar is spaced 0.5 of its size away from the ax
# cbax = divider.append_axes("right", size=width, pad=pad) # This approach does not work well in subplots
cbax = divider.append_axes("right", size="5%", pad="2.5%") # Reasonable value works most of the usecases
cb = fig."colorbar"(handle; cax=cbax, kw...)
colorbar_position = "right"
colorbar_pad = "2.5%"
colorbar_orientation="vertical"
if sp[:colorbar] == :left
colorbar_position = string(sp[:colorbar])
colorbar_pad = "5%"
elseif sp[:colorbar] == :top
colorbar_position = string(sp[:colorbar])
colorbar_pad = "2.5%"
colorbar_orientation="horizontal"
elseif sp[:colorbar] == :bottom
colorbar_position = string(sp[:colorbar])
colorbar_pad = "5%"
colorbar_orientation="horizontal"
end
cbax = divider.append_axes(colorbar_position, size="5%", pad=colorbar_pad) # Reasonable value works most of the usecases
cb = fig."colorbar"(handle; cax=cbax, orientation = colorbar_orientation, kw...)
if sp[:colorbar] == :left
cbax.yaxis.set_ticks_position("left")
elseif sp[:colorbar] == :top
cbax.xaxis.set_ticks_position("top")
elseif sp[:colorbar] == :bottom
cbax.xaxis.set_ticks_position("bottom")
end
end
cb."set_label"(sp[:colorbar_title],size=py_thickness_scale(plt, sp[:yaxis][:guidefontsize]),family=sp[:yaxis][:guidefontfamily], color = py_color(sp[:yaxis][:guidefontcolor]))