using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
:line,
transform=[
{filter="datum.symbol=='GOOG'"}
],
x="date:t",
y=:price
)
"><g class="mark-group role-frame root" role="graphics-object" aria-roledescription="group mark container"><g transform="translate(0,0)"><path class="background" aria-hidden="true" d="M0.5,0.5h200v200h-200Z" stroke="%23ddd"/><g><g class="mark-group role-axis" aria-hidden="true"><g transform="translate(0.5,200.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-grid" pointer-events="none"><line transform="translate(15,-200)" x2="0" y2="200" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(51,-200)" x2="0" y2="200" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(87,-200)" x2="0" y2="200" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(122,-200)" x2="0" y2="200" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(158,-200)" x2="0" y2="200" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(194,-200)" x2="0" y2="200" stroke="%23ddd" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-axis" aria-hidden="true"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-grid" pointer-events="none"><line transform="translate(0,200)" x2="200" y2="0" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(0,150)" x2="200" y2="0" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(0,100)" x2="200" y2="0" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(0,50)" x2="200" y2="0" stroke="%23ddd" stroke-width="1" opacity="1"/><line transform="translate(0,0)" x2="200" y2="0" stroke="%23ddd" stroke-width="1" opacity="1"/></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="X-axis titled %27date%27 for a time scale with values from Sunday, 01 August 2004, 12:00:00 AM to Monday, 01 March 2010, 12:00:00 AM"><g transform="translate(0.5,200.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-tick" pointer-events="none"><line transform="translate(15,0)" x2="0" y2="5" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(51,0)" x2="0" y2="5" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(87,0)" x2="0" y2="5" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(122,0)" x2="0" y2="5" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(158,0)" x2="0" y2="5" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(194,0)" x2="0" y2="5" stroke="%23888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-label" pointer-events="none"><text text-anchor="middle" transform="translate(15.014720314033367,15)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">2005</text><text text-anchor="middle" transform="translate(50.834151128557416,15)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">2006</text><text text-anchor="middle" transform="translate(86.65358194308145,15)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">2007</text><text text-anchor="middle" transform="translate(122.47301275760549,15)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">2008</text><text text-anchor="middle" transform="translate(158.39057899901866,15)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">2009</text><text text-anchor="middle" transform="translate(194.21000981354268,15)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">2010</text></g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,0)" x2="200" y2="0" stroke="%23888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-title" pointer-events="none"><text text-anchor="middle" transform="translate(100,30)" font-family="sans-serif" font-size="11px" font-weight="bold" fill="%23000" opacity="1">date</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-group role-axis" role="graphics-symbol" aria-roledescription="axis" aria-label="Y-axis titled %27price%27 for a linear scale with values from 0 to 800"><g transform="translate(0.5,0.5)"><path class="background" aria-hidden="true" d="M0,0h0v0h0Z" pointer-events="none"/><g><g class="mark-rule role-axis-tick" pointer-events="none"><line transform="translate(0,200)" x2="-5" y2="0" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(0,150)" x2="-5" y2="0" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(0,100)" x2="-5" y2="0" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(0,50)" x2="-5" y2="0" stroke="%23888" stroke-width="1" opacity="1"/><line transform="translate(0,0)" x2="-5" y2="0" stroke="%23888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-label" pointer-events="none"><text text-anchor="end" transform="translate(-7,203)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">0</text><text text-anchor="end" transform="translate(-7,153)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">200</text><text text-anchor="end" transform="translate(-7,103)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">400</text><text text-anchor="end" transform="translate(-7,53)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">600</text><text text-anchor="end" transform="translate(-7,3)" font-family="sans-serif" font-size="10px" fill="%23000" opacity="1">800</text></g><g class="mark-rule role-axis-domain" pointer-events="none"><line transform="translate(0,200)" x2="0" y2="-200" stroke="%23888" stroke-width="1" opacity="1"/></g><g class="mark-text role-axis-title" pointer-events="none"><text text-anchor="middle" transform="translate(-30.0869140625,100) rotate(-90) translate(0,-2)" font-family="sans-serif" font-size="11px" font-weight="bold" fill="%23000" opacity="1">price</text></g></g><path class="foreground" aria-hidden="true" d="" pointer-events="none" display="none"/></g></g><g class="mark-line role-mark marks" role="graphics-object" aria-roledescription="line mark container"><path aria-label="date: Aug 01, 2004; price: 102.37" role="graphics-symbol" aria-roledescription="line mark" d="M0,174.408L3.042,167.6L5.986,152.34L9.028,154.505L11.973,151.803L15.015,151.095L18.057,153.003L20.805,154.873L23.847,145L26.791,130.683L29.833,126.463L32.777,128.06L35.819,128.5L38.862,120.885L41.806,106.965L44.848,98.773L47.792,96.285L50.834,91.835L53.876,109.345L56.624,102.5L59.666,95.515L62.61,107.045L65.653,95.168L68.597,103.35L71.639,105.368L74.681,99.525L77.625,80.903L80.667,78.798L83.611,84.88L86.654,74.625L89.696,87.638L92.444,85.46L95.486,82.155L98.43,75.523L101.472,69.325L104.416,72.5L107.458,71.188L110.5,58.183L113.445,23.25L116.487,26.75L119.431,27.13L122.473,58.925L125.515,82.205L128.361,89.883L131.403,56.428L134.347,53.55L137.39,68.395L140.334,81.563L143.376,84.178L146.418,99.87L149.362,110.16L152.404,126.76L155.348,123.088L158.391,115.368L161.433,115.503L164.181,112.985L167.223,101.008L170.167,95.693L173.209,94.603L176.153,89.238L179.195,84.583L182.237,76.038L185.182,65.97L188.224,54.25L191.168,45.005L194.21,67.515L197.252,68.3L200,59.952" stroke="%234c78a8" stroke-width="2"/></g></g><path class="foreground" aria-hidden="true" d="" display="none"/></g></g></g></svg>)
using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
transform=[{filter="datum.symbol==='GOOG'"}],
mark={
:line,
point=true
},
x="year(date)",
y="mean(price)",
color=:symbol
)

using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
transform=[{filter="datum.symbol==='GOOG'"}],
mark={
:line,
point={filled=false, fill=:white}
},
x="year(date)",
y="mean(price)",
color=:symbol
)

using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
:line,
x="date:t",
y=:price,
color=:symbol
)

using VegaLite, VegaDatasets
dataset("barley") |>
@vlplot(
:line,
width={step=50},
x={
"year:o",
scale={
padding=0.5
}
},
y="median(yield)",
color=:site
)

using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
transform=[{filter="datum.symbol==='GOOG'"}],
mark={
:line,
interpolate="step-after"
},
x="date:t",
y=:price
)

using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
transform=[{filter="datum.symbol==='GOOG'"}],
mark={
:line,
interpolate="monotone"
},
x="date:t",
y=:price
)

using VegaLite, VegaDatasets
dataset("driving") |>
@vlplot(
mark={
:line,
point=true
},
x={
:miles,
scale={zero=false}
},
y={
:gas,
scale={zero=false}
},
order="year:t"
)

using VegaLite, VegaDatasets
dataset("stocks") |>
@vlplot(
:trail,
x={
"date:t",
axis={format="%Y"}
},
y=:price,
size=:price,
color=:symbol
)

using VegaLite, DataFrames
data = DataFrame(
x=[1,2,3,4,5,6,7],
y=[10,30,missing,15,missing,40,20]
)
data |>
@vlplot(
mark={
:line,
point=true
},
x=:x,
y=:y
)

using VegaLite, VegaDatasets
dataset("co2-concentration") |> @vlplot(
width=800,
height=500,
transform=[
{
calculate="year(datum.Date)",
as=:year
},
{
calculate="month(datum.Date)",
as=:month
},
{
calculate="floor(datum.year / 10) + 'x'",
as=:decade
},
{
calculate="(datum.year % 10) + (datum.month/12)",
as=:scaled_date
}
]
) +
@vlplot(
:line,
x={
"scaled_date:q",
axis={
title="Year into Decade",
tickCount=11
}
},
y={
"CO2:q",
axis={title="CO2 concentration in ppm"},
scale={zero=false}
},
detail="decade:o",
color={"decade:n", scale={scheme="magma"}, legend={offset=40}}
) +
(
@vlplot(
transform=[
{
aggregate=[{
op="argmin",
field="scaled_date",
as="start"
}, {
op="argmax",
field="scaled_date",
as="end"
}],
groupby=["decade"]
},
{
calculate="datum.start.scaled_date",
as="scaled_date_start"
},
{
calculate="datum.start.CO2",
as="CO2_start"
},
{
calculate="datum.start.year",
as="year_start"
},
{
calculate="datum.end.scaled_date",
as="scaled_date_end"
},
{
calculate="datum.end.CO2",
as="CO2_end"
},
{
calculate="datum.end.year",
as="year_end"
}
]
) +
@vlplot(
mark={
:text,
aligh=:left,
baseline=:top,
dx=3,
dy=1
},
x="scaled_date_start:q",
y="CO2_start:q",
text="year_start:n"
) +
@vlplot(
mark={
:text,
align=:left,
baseline=:bottom,
dx=3,
dy=1
},
x="scaled_date_end:q",
y="CO2_end:q",
text="year_end:n"
)
)

using VegaLite, DataFrames
data = DataFrame(
team=["Germany", "Mexico", "South Korea", "Sweden", "Germany", "Mexico",
"South Korea", "Sweden", "Germany", "Mexico", "South Korea", "Sweden"],
matchday=[1,1,1,1,2,2,2,2,3,3,3,3],
point=[0,3,0,3,3,6,0,3,3,6,3,6],
diff=[-1,1,-1,1,0,2,-2,0,-2,-1,0,3]
)
data |>
@vlplot(
title={text="World Cup 2018: Group F Rankings"},
transform=[{
sort=[
{field="point", order="descending"},
{field="diff", order="descending"}
],
window=[{
op="rank",
as="rank"
}],
groupby=["matchday"]
}],
mark={
:line,
orient="vertical"
},
x="matchday:o",
y="rank:o",
color={
:team,
scale={
domain=["Germany", "Mexico", "South Korea", "Sweden"],
range=["black", "#127153", "#C91A3C", "#0C71AB"]
}
}
)

using VegaLite
@vlplot(
width=300,
height=150,
data={sequence={start=0,stop=12.7,step=0.1,as="x"}},
transform=[
{calculate="sin(datum.x)", as="sin(x)"},
{calculate="cos(datum.x)", as="cos(x)"},
{fold=["sin(x)", "cos(x)"]}
],
mark=:line,
x="x:q",
y="value:q",
color={"key:n",title=nothing}
)
