Carpet Scatter Plot in Julia
How to make carpet scatter plots in Julia with Plotly.
Basic Carpet Plot
using PlotlyJS
plot(carpet(
a=[4, 4, 4, 4.5, 4.5, 4.5, 5, 5, 5, 6, 6, 6],
b=[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
y=[2, 3.5, 4, 3, 4.5, 5, 5.5, 6.5, 7.5, 8, 8.5, 10],
aaxis=attr(
tickprefix="a = ",
ticksuffix="m",
smoothing=1,
minorgridcount=9
),
baxis=attr(
tickprefix="b = ",
ticksuffix="Pa",
smoothing=1,
minorgridcount=9
)
))
Add Carpet Scatter Trace
using PlotlyJS
trace1 = carpet(
a=[4, 4, 4, 4.5, 4.5, 4.5, 5, 5, 5, 6, 6, 6],
b=[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3],
y=[2, 3.5, 4, 3, 4.5, 5, 5.5, 6.5, 7.5, 8, 8.5, 10],
aaxis=attr(
tickprefix="a = ",
ticksuffix="m",
smoothing=1,
minorgridcount=9
),
baxis=attr(
tickprefix="b = ",
ticksuffix="Pa",
smoothing=1,
minorgridcount=9
)
)
trace2 = scattercarpet(
a=[4, 4.5, 5, 6],
b=[2.5, 2.5, 2.5, 2.5],
line=attr(
shape="spline",
smoothing=1,
color="blue"
)
)
plot([trace1, trace2])
Add Multiple Scatter Traces
using PlotlyJS
trace1 = carpet(
a=[0.1,0.2,0.3],
b=[1,2,3],
y=[[1,2.2,3],[1.5,2.7,3.5],[1.7,2.9,3.7]],
cheaterslope=1,
aaxis=attr(
title="a",
tickmode="linear",
dtick=0.05
),
baxis=attr(
title="b",
tickmode="linear",
dtick=0.05
)
)
trace2 = scattercarpet(
name="b = 1.5",
a=[0.05, 0.15, 0.25, 0.35],
b=[1.5, 1.5, 1.5, 1.5]
)
trace3 = scattercarpet(
name="b = 2",
a=[0.05, 0.15, 0.25, 0.35],
b=[2, 2, 2, 2]
)
trace4 = scattercarpet(
name="b = 2.5",
a=[0.05, 0.15, 0.25, 0.35],
b=[2.5, 2.5, 2.5, 2.5]
)
trace5 = scattercarpet(
name="a = 0.15",
a=[0.15, 0.15, 0.15, 0.15],
b=[0.5, 1.5, 2.5, 3.5],
line=attr(
smoothing=1,
shape="spline"
)
)
trace6 = scattercarpet(
name="a = 0.2",
a=[0.2, 0.2, 0.2, 0.2],
b=[0.5, 1.5, 2.5, 3.5],
line=attr(
smoothing=1,
shape="spline"
),
marker=attr(
size=[10, 20, 30, 40],
color=["#000", "#f00", "#ff0", "#fff"]
)
)
trace7 = scattercarpet(
name="a = 0.25",
a=[0.25, 0.25, 0.25, 0.25],
b=[0.5, 1.5, 2.5, 3.5],
line=attr(
smoothing=1,
shape="spline"
)
)
layout = Layout(
title="scattercarpet extrapolation, clipping, and smoothing",
hovermode="closest"
)
plot([trace1, trace2, trace3, trace4, trace5, trace6, trace7], layout)
Reference
See https://plotly.com/julia/reference/scattercarpet/ for more information and chart attribute options!