Improved grid plotting logic

This commit is contained in:
Josef Heinen 2016-02-17 14:15:05 +01:00
parent a3d4e05b0e
commit d08672aa71

View File

@ -82,7 +82,7 @@ function gr_display(plt::Plot{GRPackage}, clear=true, update=true,
GR.selntran(1) GR.selntran(1)
GR.restorestate() GR.restorestate()
c = getColor(d[:background_color]) c = getColor(d[:background_color])
if 0.21 * c.r + 0.72 * c.g + 0.07 * c.b < 0.5 if 0.21 * c.r + 0.72 * c.g + 0.07 * c.b < 0.9
fg = convert(Int, GR.inqcolorfromrgb(1-c.r, 1-c.g, 1-c.b)) fg = convert(Int, GR.inqcolorfromrgb(1-c.r, 1-c.g, 1-c.b))
else else
fg = 1 fg = 1
@ -204,7 +204,9 @@ function gr_display(plt::Plot{GRPackage}, clear=true, update=true,
GR.setcharheight(charheight) GR.setcharheight(charheight)
GR.settextcolorind(fg) GR.settextcolorind(fg)
ticksize = 0.0075 * diag ticksize = 0.0075 * diag
if fg == 1
GR.grid(xtick, ytick, 0, 0, majorx, majory) GR.grid(xtick, ytick, 0, 0, majorx, majory)
end
if num_axes == 1 if num_axes == 1
GR.axes(xtick, ytick, xorg[1], yorg[1], majorx, majory, ticksize) GR.axes(xtick, ytick, xorg[1], yorg[1], majorx, majory, ticksize)
GR.axes(xtick, ytick, xorg[2], yorg[2], -majorx, -majory, -ticksize) GR.axes(xtick, ytick, xorg[2], yorg[2], -majorx, -majory, -ticksize)
@ -410,11 +412,9 @@ function gr_display(plt::Plot{GRPackage}, clear=true, update=true,
diag = sqrt((viewport[2] - viewport[1])^2 + (viewport[4] - viewport[3])^2) diag = sqrt((viewport[2] - viewport[1])^2 + (viewport[4] - viewport[3])^2)
charheight = max(0.018 * diag, 0.01) charheight = max(0.018 * diag, 0.01)
ticksize = 0.01 * (viewport[2] - viewport[1]) ticksize = 0.01 * (viewport[2] - viewport[1])
# GR.savestate()
GR.setlinewidth(1) GR.setlinewidth(1)
GR.grid3d(xtick, 0, ztick, xmin, ymin, zmin, 2, 0, 2) GR.grid3d(xtick, 0, ztick, xmin, ymin, zmin, 2, 0, 2)
GR.grid3d(0, ytick, 0, xmax, ymin, zmin, 0, 2, 0) GR.grid3d(0, ytick, 0, xmax, ymin, zmin, 0, 2, 0)
# GR.restorestate()
z = reshape(z, length(x) * length(y)) z = reshape(z, length(x) * length(y))
if p[:linetype] == :surface if p[:linetype] == :surface
GR.setcolormap(GR.COLORMAP_COOLWARM) GR.setcolormap(GR.COLORMAP_COOLWARM)
@ -442,11 +442,11 @@ function gr_display(plt::Plot{GRPackage}, clear=true, update=true,
diag = sqrt((viewport[2] - viewport[1])^2 + (viewport[4] - viewport[3])^2) diag = sqrt((viewport[2] - viewport[1])^2 + (viewport[4] - viewport[3])^2)
charheight = max(0.018 * diag, 0.01) charheight = max(0.018 * diag, 0.01)
ticksize = 0.01 * (viewport[2] - viewport[1]) ticksize = 0.01 * (viewport[2] - viewport[1])
# GR.savestate()
GR.setlinewidth(1) GR.setlinewidth(1)
if p[:linetype] == :path3d
GR.grid3d(xtick, 0, ztick, xmin, ymin, zmin, 2, 0, 2) GR.grid3d(xtick, 0, ztick, xmin, ymin, zmin, 2, 0, 2)
GR.grid3d(0, ytick, 0, xmax, ymin, zmin, 0, 2, 0) GR.grid3d(0, ytick, 0, xmax, ymin, zmin, 0, 2, 0)
# GR.restorestate() end
if p[:linetype] == :scatter3d if p[:linetype] == :scatter3d
haskey(p, :markercolor) && GR.setmarkercolorind(gr_getcolorind(p[:markercolor])) haskey(p, :markercolor) && GR.setmarkercolorind(gr_getcolorind(p[:markercolor]))
haskey(p, :markershape) && GR.setmarkertype(gr_markertype[p[:markershape]]) haskey(p, :markershape) && GR.setmarkertype(gr_markertype[p[:markershape]])