Added histogram output

This commit is contained in:
Josef Heinen 2016-01-12 16:33:07 +01:00
parent 3e9a47a683
commit b4eb0b6b41

View File

@ -46,7 +46,11 @@ function gr_display(plt::Plot{GRPackage})
xmin = ymin = typemax(Float64) xmin = ymin = typemax(Float64)
xmax = ymax = typemin(Float64) xmax = ymax = typemin(Float64)
for p in plt.seriesargs for p in plt.seriesargs
x, y = p[:x], p[:y] if p[:linetype] == :hist
x, y = Base.hist(p[:y])
else
x, y = p[:x], p[:y]
end
xmin = min(minimum(x), xmin) xmin = min(minimum(x), xmin)
xmax = max(maximum(x), xmax) xmax = max(maximum(x), xmax)
# catch exception for OHLC vectors # catch exception for OHLC vectors
@ -126,6 +130,8 @@ function gr_display(plt::Plot{GRPackage})
haskey(d, :linewidth) && GR.setlinewidth(d[:linewidth]) haskey(d, :linewidth) && GR.setlinewidth(d[:linewidth])
GR.settextalign(GR.TEXT_HALIGN_LEFT, GR.TEXT_VALIGN_HALF) GR.settextalign(GR.TEXT_HALIGN_LEFT, GR.TEXT_VALIGN_HALF)
legend = false
for p in plt.seriesargs for p in plt.seriesargs
if p[:linetype] == :path if p[:linetype] == :path
if haskey(p, :fillcolor) if haskey(p, :fillcolor)
@ -138,6 +144,7 @@ function gr_display(plt::Plot{GRPackage})
GR.fillarea([p[:x][1]; p[:x]; p[:x][length(p[:x])]], [p[:fillrange]; p[:y]; p[:fillrange]]) GR.fillarea([p[:x][1]; p[:x]; p[:x][length(p[:x])]], [p[:fillrange]; p[:y]; p[:fillrange]])
end end
GR.polyline(p[:x], p[:y]) GR.polyline(p[:x], p[:y])
legend = true
elseif p[:linetype] == :scatter elseif p[:linetype] == :scatter
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]])
@ -160,12 +167,24 @@ function gr_display(plt::Plot{GRPackage})
else else
GR.polymarker(p[:x], p[:y]) GR.polymarker(p[:x], p[:y])
end end
legend = true
elseif p[:linetype] == :hist
h = Base.hist(p[:y])
x, y = float(collect(h[1])), float(h[2])
for i = 2:length(y)
GR.setfillcolorind(gr_getcolorind(p[:fillcolor]))
GR.setfillintstyle(GR.INTSTYLE_SOLID)
GR.fillrect(x[i-1], x[i], ymin, y[i])
GR.setfillcolorind(1)
GR.setfillintstyle(GR.INTSTYLE_HOLLOW)
GR.fillrect(x[i-1], x[i], ymin, y[i])
end
else else
println("TODO: add support for linetype $(p[:linetype])") println("TODO: add support for linetype $(p[:linetype])")
end end
end end
if d[:legend] if d[:legend] && legend
GR.selntran(0) GR.selntran(0)
GR.setscale(0) GR.setscale(0)
w = 0 w = 0