0.3 fix gadfly shapes
This commit is contained in:
parent
b5cdfe30ea
commit
c24550c756
@ -60,9 +60,9 @@ end
|
|||||||
|
|
||||||
function square(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
function square(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
rect_xs = Vector{Compose.Measure}(n)
|
rect_xs = Array(Compose.Measure, n)
|
||||||
rect_ys = Vector{Compose.Measure}(n)
|
rect_ys = Array(Compose.Measure, n)
|
||||||
rect_ws = Vector{Compose.Measure}(n)
|
rect_ws = Array(Compose.Measure, n)
|
||||||
s = 1/sqrt(2)
|
s = 1/sqrt(2)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
@ -80,12 +80,12 @@ end
|
|||||||
|
|
||||||
function diamond(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
function diamond(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[(x, y - r), (x + r, y), (x, y + r), (x - r, y)]
|
polys[i] = [(x, y - r), (x + r, y), (x, y + r), (x - r, y)]
|
||||||
end
|
end
|
||||||
|
|
||||||
return Gadfly.polygon(polys)
|
return Gadfly.polygon(polys)
|
||||||
@ -95,7 +95,7 @@ end
|
|||||||
|
|
||||||
function cross(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
function cross(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
@ -103,7 +103,7 @@ function cross(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
|||||||
u = 0.4r
|
u = 0.4r
|
||||||
|
|
||||||
# make a "plus sign"
|
# make a "plus sign"
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x-r, y-u), (x-r, y+u), # L edge
|
(x-r, y-u), (x-r, y+u), # L edge
|
||||||
(x-u, y+u), # BL inside
|
(x-u, y+u), # BL inside
|
||||||
(x-u, y+r), (x+u, y+r), # B edge
|
(x-u, y+r), (x+u, y+r), # B edge
|
||||||
@ -120,14 +120,14 @@ end
|
|||||||
|
|
||||||
function xcross(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
function xcross(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
s = 1/sqrt(5)
|
s = 1/sqrt(5)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
u = s*r
|
u = s*r
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x, y - u), (x + u, y - 2u), (x + 2u, y - u),
|
(x, y - u), (x + u, y - 2u), (x + 2u, y - u),
|
||||||
(x + u, y), (x + 2u, y + u), (x + u, y + 2u),
|
(x + u, y), (x + 2u, y + u), (x + u, y + 2u),
|
||||||
(x, y + u), (x - u, y + 2u), (x - 2u, y + u),
|
(x, y + u), (x - u, y + 2u), (x - 2u, y + u),
|
||||||
@ -141,14 +141,14 @@ end
|
|||||||
|
|
||||||
function utriangle(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1)
|
function utriangle(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
s = 0.8
|
s = 0.8
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
u = 0.8 * scalar * r
|
u = 0.8 * scalar * r
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x - r, y + u),
|
(x - r, y + u),
|
||||||
(x + r, y + u),
|
(x + r, y + u),
|
||||||
(x, y - u)
|
(x, y - u)
|
||||||
@ -162,7 +162,7 @@ end
|
|||||||
|
|
||||||
function star1(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1)
|
function star1(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
|
|
||||||
# some magic scalars
|
# some magic scalars
|
||||||
sx1, sx2, sx3 = 0.7, 0.4, 0.2
|
sx1, sx2, sx3 = 0.7, 0.4, 0.2
|
||||||
@ -172,7 +172,7 @@ function star1(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar =
|
|||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x-sx1*r, y+ r), # BL
|
(x-sx1*r, y+ r), # BL
|
||||||
(x, y+sy2*r),
|
(x, y+sy2*r),
|
||||||
(x+sx1*r, y+ r), # BR
|
(x+sx1*r, y+ r), # BR
|
||||||
@ -193,13 +193,13 @@ end
|
|||||||
|
|
||||||
function star2(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1)
|
function star2(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray, scalar = 1)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
u = 0.4r
|
u = 0.4r
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x-u, y), (x-r, y-r), # TL
|
(x-u, y), (x-r, y-r), # TL
|
||||||
(x, y-u), (x+r, y-r), # TR
|
(x, y-u), (x+r, y-r), # TR
|
||||||
(x+u, y), (x+r, y+r), # BR
|
(x+u, y), (x+r, y+r), # BR
|
||||||
@ -215,14 +215,14 @@ end
|
|||||||
function hexagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
function hexagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
|
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
u = 0.6r
|
u = 0.6r
|
||||||
|
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x-r, y-u), (x-r, y+u), # L edge
|
(x-r, y-u), (x-r, y+u), # L edge
|
||||||
(x, y+r), # B
|
(x, y+r), # B
|
||||||
(x+r, y+u), (x+r, y-u), # R edge
|
(x+r, y+u), (x+r, y-u), # R edge
|
||||||
@ -237,14 +237,14 @@ end
|
|||||||
function octagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
function octagon(xs::AbstractArray, ys::AbstractArray, rs::AbstractArray)
|
||||||
n = max(length(xs), length(ys), length(rs))
|
n = max(length(xs), length(ys), length(rs))
|
||||||
|
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
x = Compose.x_measure(xs[mod1(i, length(xs))])
|
||||||
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
y = Compose.y_measure(ys[mod1(i, length(ys))])
|
||||||
r = rs[mod1(i, length(rs))]
|
r = rs[mod1(i, length(rs))]
|
||||||
u = 0.4r
|
u = 0.4r
|
||||||
|
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x-r, y-u), (x-r, y+u), # L edge
|
(x-r, y-u), (x-r, y+u), # L edge
|
||||||
(x-u, y+r), (x+u, y+r), # B edge
|
(x-u, y+r), (x+u, y+r), # B edge
|
||||||
(x+r, y+u), (x+r, y-u), # R edge
|
(x+r, y+u), (x+r, y-u), # R edge
|
||||||
@ -262,7 +262,7 @@ function ohlcshape(xs::AVec, ys::AVec{OHLC}, tickwidth::Real)
|
|||||||
@assert length(xs) == length(ys)
|
@assert length(xs) == length(ys)
|
||||||
n = length(xs)
|
n = length(xs)
|
||||||
u = tickwidth * Compose.px
|
u = tickwidth * Compose.px
|
||||||
polys = Vector{Vector{Tuple{Compose.Measure, Compose.Measure}}}(n)
|
polys = Array(Vector{@compat(Tuple{Compose.Measure, Compose.Measure})}, n)
|
||||||
for i in 1:n
|
for i in 1:n
|
||||||
x = Compose.x_measure(xs[i])
|
x = Compose.x_measure(xs[i])
|
||||||
o = Compose.y_measure(ys[i].open)
|
o = Compose.y_measure(ys[i].open)
|
||||||
@ -270,7 +270,7 @@ function ohlcshape(xs::AVec, ys::AVec{OHLC}, tickwidth::Real)
|
|||||||
l = Compose.y_measure(ys[i].low)
|
l = Compose.y_measure(ys[i].low)
|
||||||
c = Compose.y_measure(ys[i].close)
|
c = Compose.y_measure(ys[i].close)
|
||||||
# o,h,l,c = map(Compose.y_measure, ys[i])
|
# o,h,l,c = map(Compose.y_measure, ys[i])
|
||||||
polys[i] = Tuple{Compose.Measure, Compose.Measure}[
|
polys[i] = [
|
||||||
(x, o), (x - u, o), (x, o), # open tick
|
(x, o), (x - u, o), (x, o), # open tick
|
||||||
(x, l), (x, h), (x, c), # high/low bar
|
(x, l), (x, h), (x, c), # high/low bar
|
||||||
(x + u, c), (x, c) # close tick
|
(x + u, c), (x, c) # close tick
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user