[pyplot] marker adjustments

This commit is contained in:
Zh 2020-04-18 14:20:24 +09:00
parent fae1cb4884
commit 43456b09f6

View File

@ -1303,25 +1303,29 @@ function py_add_legend(plt::Plot, sp::Subplot, ax)
if should_add_to_legend(series) if should_add_to_legend(series)
clims = get_clims(sp, series) clims = get_clims(sp, series)
# add a line/marker and a label # add a line/marker and a label
push!(handles, if series[:seriestype] == :shape || series[:fillrange] !== nothing push!(handles,
pypatches."Patch"( if series[:seriestype] == :shape || series[:fillrange] !== nothing
edgecolor = py_color(single_color(get_linecolor(series, clims)), get_linealpha(series)), pypatches."Patch"(
facecolor = py_color(single_color(get_fillcolor(series, clims)), get_fillalpha(series)), edgecolor = py_color(single_color(get_linecolor(series, clims)), get_linealpha(series)),
linewidth = py_thickness_scale(plt, clamp(get_linewidth(series), 0, 5)), facecolor = py_color(single_color(get_fillcolor(series, clims)), get_fillalpha(series)),
linestyle = py_linestyle(series[:seriestype], get_linestyle(series)) linewidth = py_thickness_scale(plt, clamp(get_linewidth(series), 0, 5)),
) linestyle = py_linestyle(series[:seriestype], get_linestyle(series))
elseif series[:seriestype] in (:path, :straightline, :scatter) )
PyPlot.plt."Line2D"((0,1),(0,0), elseif series[:seriestype] in (:path, :straightline, :scatter)
color = py_color(single_color(get_linecolor(series, clims)), get_linealpha(series)), PyPlot.plt."Line2D"((0,1),(0,0),
linewidth = py_thickness_scale(plt, clamp(get_linewidth(series), 0, 5)), color = py_color(single_color(get_linecolor(series, clims)), get_linealpha(series)),
linestyle = py_linestyle(:path, get_linestyle(series)), linewidth = py_thickness_scale(plt, clamp(get_linewidth(series), 0, 5)),
marker = py_marker(_cycle(series[:markershape], 1)), # Need to adjust markersize to match the legend box size linestyle = py_linestyle(:path, get_linestyle(series)),
markeredgecolor = py_color(single_color(get_markerstrokecolor(series)), get_markerstrokealpha(series)), marker = py_marker(_cycle(series[:markershape], 1)),
markerfacecolor = py_color(single_color(get_markercolor(series, clims)), get_markeralpha(series)) # markersize = py_thickness_scale(plt, series[:markersize]), # In case we decide that markersize needs to be scaled in the legend too
) markeredgecolor = py_color(single_color(get_markerstrokecolor(series)), get_markerstrokealpha(series)),
else markerfacecolor = py_color(single_color(get_markercolor(series, clims)), get_markeralpha(series)),
series[:serieshandle][1] markeredgewidth = py_thickness_scale(plt, series[:markerstrokewidth])
end) )
else
series[:serieshandle][1]
end
)
push!(labels, series[:label]) push!(labels, series[:label])
end end
end end