Error Bars in Julia

How to add error-bars to charts 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.

Error Bars

using PlotlyJS, CSV, DataFrames

df = dataset(DataFrame, "iris")

df[!, "e"] = df[!, "sepal_width"] ./ 100

plot(
    df, x=:sepal_width, y=:sepal_length, color=:species,
    mode="markers",
    error_x=attr(type="data", array=:e, visible=true),
    error_y=attr(type="data", array=:e, visible=true),
)

Asymmetric Error Bars

using PlotlyJS, CSV, DataFrames

df = dataset(DataFrame, "iris")

df[!, "e_plus"] = df[!, "sepal_width"] ./ 100
df[!, "e_minus"] = df[!, "sepal_width"] ./ 40
plot(
    df, x=:sepal_width, y=:sepal_length, color=:species,
    mode="markers",
    error_y=attr(type="data", array=:e_plus, arrayminus=:e_minus, visible=true),
)

Error Bars as a Percentage of the y Value

using PlotlyJS

plot(scatter(
    x=[0, 1, 2], y=[6, 10, 2], mode="markers+lines",
    error_y=attr(
        type="percent", # value of error bar given as percentage of y value
        value=50,
        visible=true
    )
))

Asymmetric Error Bars with a Constant Offset

using PlotlyJS

plot(scatter(
    x=[1, 2, 3, 4],
    y=[2, 1, 3, 4],
    mode="markers+lines",
    error_y=attr(
        type="percent",
        symmetric=false,
        value=15,
        valueminus=25
    )
))

Horizontal Error Bars

using PlotlyJS

plot(scatter(
    x=[1, 2, 3, 4],
    y=[2, 1, 3, 4],
    mode="markers+lines",
    error_x=attr(
        type="percent",
        value=15
    )
))

Bar Chart with Error Bars

using PlotlyJS

plot([
    bar(
        name="Control",
        x=["Trial 1", "Trial 2", "Trial 3"], y=[3, 6, 4],
        error_y=attr(type="data", array=[1, 0.5, 1.5])
    ),
    bar(
        name="Experimental",
        x=["Trial 1", "Trial 2", "Trial 3"], y=[4, 7, 3],
        error_y=attr(type="data", array=[0.5, 1, 2])
    )
])

Colored and Styled Error Bars

using PlotlyJS

x_theo = range(-4, stop=4, length=100)
sincx = sinc.(x_theo)
x = [-3.8, -3.03, -1.91, -1.46, -0.89, -0.24, -0.0, 0.41, 0.89, 1.01, 1.91, 2.28, 2.79, 3.56]
y = [-0.02, 0.04, -0.01, -0.27, 0.36, 0.75, 1.03, 0.65, 0.28, 0.02, -0.11, 0.16, 0.04, -0.15]

trace1 = scatter(
    x=x_theo, y=sincx,
    name="sinc(x)"
)

trace2 = scatter(
    x=x, y=y,
    mode="markers",
    name="measured",
    error_y=attr(
        type="constant",
        value=0.1,
        color="purple",
        thickness=1.5,
        width=3,
    ),
    error_x=attr(
        type="constant",
        value=0.2,
        color="purple",
        thickness=1.5,
        width=3,
    ),
    marker=attr(color="purple", size=8)
)

plot([trace1, trace2])

Reference

See https://plotly.com/julia/reference/scatter/ for more information and chart attribute options!