Formatting Ticks in Julia
How to format axes ticks in Julia with Plotly.
Plotly is known for its graphing libraries, but it's also a broader ecosystem for building interactive data apps, AI data analysis tools, and deploying and hosting Dash apps. Explore the full set of tools and platforms designed to help turn data into action. Discover Plotly.
Note: We are retiring documentation for R, MATLAB, Julia, and F#. Learn more about this change here.
Tickmode - Linear
If "linear", the placement of the ticks is determined by a starting position tick0 and a tick step dtick
using PlotlyJS
fig = plot(scatter(
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9]
))
relayout!(fig,
xaxis = attr(
tickmode = "linear",
tick0 = 0.5,
dtick = 0.75
)
)
fig
Tickmode - Array
If "array", the placement of the ticks is set via tickvals and the tick text is ticktext.
using PlotlyJS
fig = plot(scatter(
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9]
))
relayout!(fig,
xaxis = attr(
tickmode = "array",
tickvals = [1, 3, 5, 7, 9, 11],
ticktext = ["One", "Three", "Five", "Seven", "Nine", "Eleven"]
)
)
fig
Using Tickformat Attribute
For more formatting types, see: https://github.com/d3/d3-format/blob/master/README.md#locale_format
using PlotlyJS
fig = plot(scatter(
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9]
))
relayout!(fig, yaxis_tickformat = "%")
fig
Using Tickformat Attribute - Date/Time
For more date/time formatting types, see: https://github.com/d3/d3-time-format/blob/master/README.md
using PlotlyJS, DataFrames, CSV, HTTP
df = CSV.File(
HTTP.get("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv").body
) |> DataFrame
fig = plot(df, kind="scatter", x=:Date, y=df[!, "AAPL.High"])
relayout!(fig, title = "Time Series with Custom Date-Time Format",
xaxis_tickformat = "%d %B (%a)<br>%Y")
fig
Using Exponentformat Attribute
using PlotlyJS
fig = plot(scatter(
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
y = [68000, 52000, 60000, 20000, 95000, 40000, 60000, 79000, 74000, 42000, 20000, 90000]
))
relayout!(fig,
yaxis =attr(
showexponent = "all",
exponentformat = "e"
)
)
fig
Tickformatstops to customize for different zoom levels
using PlotlyJS, DataFrames, CSV, HTTP
df = CSV.File(
HTTP.get("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv").body
) |> DataFrame
fig = plot(df,
kind="scatter",
x=:Date,
y=:mavg
)
relayout!(fig,
xaxis_tickformatstops = [
attr(dtickrange=[missing, 1000], value="%H:%M:%S.%L ms"),
attr(dtickrange=[1000, 60000], value="%H:%M:%S s"),
attr(dtickrange=[60000, 3600000], value="%H:%M m"),
attr(dtickrange=[3600000, 86400000], value="%H:%M h"),
attr(dtickrange=[86400000, 604800000], value="%e. %b d"),
attr(dtickrange=[604800000, "M1"], value="%e. %b w"),
attr(dtickrange=["M1", "M12"], value="%b '%y M"),
attr(dtickrange=["M12", missing], value="%Y Y")
]
)
fig
Placing ticks and gridlines between categories
using PlotlyJS
fig = plot(bar(
x = ["apples", "oranges", "pears"],
y = [1, 2, 3]
))
update_xaxes!(
fig,
showgrid=true,
ticks="outside",
tickson="boundaries",
ticklen=20
)
fig
Reference
See https://plotly.com/julia/reference/layout/xaxis/ for more information and chart attribute options!