Setting Graph Size in Julia

How to manipulate the graph size, margins and background color.


Adjusting Height, Width, & Margins

using PlotlyJS, CSV, DataFrames

df = dataset(DataFrame, "tips")

plot(
    df, x=:total_bill, y=:tip, facet_col=:sex,
    kind="scatter", mode="markers",
    Layout(
        width=800, height=800,
        margin=attr(l=20,r=20,t=20,b=20),
        paper_bgcolor="LightSteelBlue"
    )
)

Adjusting Height, Width, & Margins With Trace Methods

Individual trace methods are the low-level building blocks of figures which you can use instead of plot for greater control.

using PlotlyJS

trace = scatter(
    x=[0, 1, 2, 3, 4, 5, 6, 7, 8],
    y=[0, 1, 2, 3, 4, 5, 6, 7, 8]
)

layout = Layout(
    autosize=false,
    width=500,
    height=500,
    margin=attr(l=50, r=50, b=100, t=100, pad=4),
    paper_bgcolor="LightSteelBlue",
)

plot(trace, layout)

Automatically Adjust Margins

Set automargin to true for the axis and Plotly will automatically increase the margin size to prevent ticklabels from being cut off or overlapping with axis titles.

using PlotlyJS

trace = bar(
    x=["Apples", "Oranges", "Watermelon", "Pears"],
    y=[3, 2, 1, 4]
)

layout = Layout(
    autosize=false,
    width=500,
    height=500,
    yaxis=attr(
        title_text="Y-axis Title Hello World",
        ticktext=["Very long label", "long label", "3", "label"],
        tickvals=[1, 2, 3, 4],
        tickmode="array",
        titlefont_size=30,
        automargin=true
    )
)

plot(trace, layout)

Reference

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