Plotting

TimeSeries defines a recipe that allows plotting to a number of different plotting packages using the Plots.jl framework (no plotting packages will be automatically installed by TimeSeries).

Here we use the data from Yahoo Fiance as a demo.

using Plots, MarketData, TimeSeries
gr()
ta = yahoo(:GOOG, YahooOpt(period1 = now() - Month(1)))
20×6 TimeArray{Float64, 2, Date, Matrix{Float64}} 2024-03-25 to 2024-04-22
┌────────────┬─────────┬─────────┬─────────┬────────┬──────────┬───────────┐
│            │ Open    │ High    │ Low     │ Close  │ AdjClose │ Volume    │
├────────────┼─────────┼─────────┼─────────┼────────┼──────────┼───────────┤
│ 2024-03-25 │  150.95 │ 151.456 │   148.8 │ 151.15 │   151.15 │ 1.51147e7 │
│ 2024-03-26 │  151.24 │   153.2 │  151.03 │  151.7 │    151.7 │ 1.93127e7 │
│ 2024-03-27 │ 152.145 │  152.69 │  150.13 │ 151.94 │   151.94 │  1.6622e7 │
│ 2024-03-28 │   152.0 │  152.67 │  151.33 │ 152.26 │   152.26 │ 2.11056e7 │
│ 2024-04-01 │  151.83 │   157.0 │  151.65 │  156.5 │    156.5 │ 2.44698e7 │
│ 2024-04-02 │  154.75 │  155.99 │  153.46 │ 155.87 │   155.87 │ 1.75981e7 │
│ 2024-04-03 │  154.92 │  156.55 │ 154.132 │ 156.37 │   156.37 │ 1.72662e7 │
│ 2024-04-04 │  155.08 │  156.18 │  151.88 │ 151.94 │   151.94 │ 2.41848e7 │
│     ⋮      │    ⋮    │    ⋮    │    ⋮    │   ⋮    │    ⋮     │     ⋮     │
│ 2024-04-12 │ 159.405 │   161.7 │   158.6 │ 159.19 │   159.19 │ 1.69682e7 │
│ 2024-04-15 │  160.28 │  160.83 │  156.15 │ 156.33 │   156.33 │ 2.11409e7 │
│ 2024-04-16 │  155.64 │  157.23 │  155.05 │  156.0 │    156.0 │ 1.54132e7 │
│ 2024-04-17 │  157.19 │ 158.681 │ 156.135 │ 156.88 │   156.88 │ 1.62378e7 │
│ 2024-04-18 │ 156.925 │ 158.485 │  156.21 │ 157.46 │   157.46 │ 1.40161e7 │
│ 2024-04-19 │  157.75 │  157.99 │  153.91 │ 155.72 │   155.72 │ 2.00639e7 │
│ 2024-04-22 │  156.01 │ 159.185 │  155.66 │ 157.95 │   157.95 │  1.5338e7 │
└────────────┴─────────┴─────────┴─────────┴────────┴──────────┴───────────┘
                                                              5 rows omitted

Plotting as multiple series

The recipe allows TimeArray objects to be passed as input to plot. The recipe will plot each variable as an individual line, aligning all variables to the same y axis. backend).

plot(ta[:Open, :High, :Low, :Close])

Plotting candlestick

We have seriestype = :candlestick support that requires four columns exist in the input. They are open, high, low and close (case-insensitive).

plot(ta, seriestype = :candlestick)
┌ Warning: Keyword argument hover not supported with Plots.GRBackend().  Choose from: annotationcolor, annotationfontfamily, annotationfontsize, annotationhalign, annotationrotation, annotations, annotationvalign, arrow, aspect_ratio, axis, background_color, background_color_inside, background_color_outside, background_color_subplot, bar_width, bins, bottom_margin, camera, clims, color_palette, colorbar, colorbar_entry, colorbar_scale, colorbar_title, colorbar_titlefont, colorbar_titlefontcolor, colorbar_titlefontrotation, colorbar_titlefontsize, connections, contour_labels, discrete_values, fill, fill_z, fillalpha, fillcolor, fillrange, fillstyle, flip, fontfamily, fontfamily_subplot, foreground_color, foreground_color_axis, foreground_color_border, foreground_color_grid, foreground_color_subplot, foreground_color_text, formatter, framestyle, grid, gridalpha, gridlinewidth, gridstyle, group, guide, guidefont, guidefontcolor, guidefontfamily, guidefonthalign, guidefontrotation, guidefontsize, guidefontvalign, html_output_format, inset_subplots, label, layout, left_margin, legend_background_color, legend_column, legend_font, legend_font_color, legend_font_family, legend_font_halign, legend_font_pointsize, legend_font_rotation, legend_font_valign, legend_foreground_color, legend_position, legend_title, legend_title_font_color, legend_title_font_family, legend_title_font_pointsize, legend_title_font_rotation, legend_title_font_valigm, levels, lims, line, line_z, linealpha, linecolor, linestyle, linewidth, link, margin, marker_z, markeralpha, markercolor, markershape, markersize, markerstrokealpha, markerstrokecolor, markerstrokewidth, minorgrid, minorgridalpha, minorgridlinewidth, minorgridstyle, minorticks, mirror, normalize, orientation, overwrite_figure, permute, plot_title, plot_titlefontcolor, plot_titlefontfamily, plot_titlefontrotation, plot_titlefontsize, plot_titlelocation, plot_titlevspan, polar, primary, projection, quiver, ribbon, right_margin, rotation, scale, series_annotations, seriesalpha, seriescolor, seriestype, show, show_empty_bins, showaxis, size, smooth, subplot, subplot_index, thickness_scaling, tick_direction, tickfontcolor, tickfontfamily, tickfonthalign, tickfontrotation, tickfontsize, tickfontvalign, ticks, title, titlefontcolor, titlefontfamily, titlefonthalign, titlefontrotation, titlefontsize, titlefontvalign, top_margin, unitformat, weights, widen, window_title, x, xdiscrete_values, xerror, xflip, xforeground_color_axis, xforeground_color_border, xforeground_color_grid, xforeground_color_text, xformatter, xgrid, xgridalpha, xgridlinewidth, xgridstyle, xguide, xguidefontcolor, xguidefontfamily, xguidefonthalign, xguidefontrotation, xguidefontsize, xguidefontvalign, xlims, xlink, xminorgrid, xminorgridalpha, xminorgridlinewidth, xminorgridstyle, xminorticks, xmirror, xrotation, xscale, xshowaxis, xtick_direction, xtickfontcolor, xtickfontfamily, xtickfonthalign, xtickfontrotation, xtickfontsize, xtickfontvalign, xticks, xunitformat, xwiden, y, ydiscrete_values, yerror, yflip, yforeground_color_axis, yforeground_color_border, yforeground_color_grid, yforeground_color_text, yformatter, ygrid, ygridalpha, ygridlinewidth, ygridstyle, yguide, yguidefontcolor, yguidefontfamily, yguidefonthalign, yguidefontrotation, yguidefontsize, yguidefontvalign, ylims, ylink, yminorgrid, yminorgridalpha, yminorgridlinewidth, yminorgridstyle, yminorticks, ymirror, yrotation, yscale, yshowaxis, ytick_direction, ytickfontcolor, ytickfontfamily, ytickfonthalign, ytickfontrotation, ytickfontsize, ytickfontvalign, yticks, yunitformat, ywiden, z, z_order, zdiscrete_values, zerror, zflip, zforeground_color_axis, zforeground_color_border, zforeground_color_grid, zforeground_color_text, zformatter, zgrid, zgridalpha, zgridlinewidth, zgridstyle, zguide, zguidefontcolor, zguidefontfamily, zguidefonthalign, zguidefontrotation, zguidefontsize, zguidefontvalign, zlims, zlink, zminorgrid, zminorgridalpha, zminorgridlinewidth, zminorgridstyle, zminorticks, zmirror, zrotation, zscale, zshowaxis, ztick_direction, ztickfontcolor, ztickfontfamily, ztickfonthalign, ztickfontrotation, ztickfontsize, ztickfontvalign, zticks, zunitformat, zwiden
└ @ Plots ~/.julia/packages/Plots/ju9dp/src/args.jl:1557

Other available attributes

  • bar_width::Float64 the valid value is from 0 to 1.
plot(ta, seriestype = :candlestick, bar_width = 0.7)

  • xticks::Int for controlling the density of x axis labels.
plot(ta, seriestype = :candlestick, xticks = 3, xrotation = 60)