import polars as pl
import altair as alt
df = pl.read_csv("data.csv")
(
alt.Chart(df)
.mark_image(width=100, height=100)
.encode(
x=alt.X("janka_hardness_lbf:Q", title="Janka hardness (lbf)"),
y=alt.Y(
"pixel_darkness_pct:Q",
title="Pixel darkness (%)",
scale=alt.Scale(domain=[0, 100]),
),
url="image_url:N",
tooltip=[
alt.Tooltip("english_name:N", title="English name"),
alt.Tooltip("portuguese_name:N", title="Portuguese name"),
alt.Tooltip("scientific_name:N", title="Scientific name"),
alt.Tooltip("janka_hardness_lbf:Q", title="Janka hardness (lbf)"),
alt.Tooltip("pixel_darkness_pct:Q", title="Pixel darkness (%)"),
],
)
.properties(
title=alt.TitleParams(
text="Visual index of common Brazilian woods",
subtitle=[
"Janka hardness (lbf): force to embed a steel ball halfway into wood.",
"Pixel darkness (%): average blackness of monochrome pixels.",
],
),
width="container",
height=600,
)
)