Penguins

Published

March 21, 2026

First Observable Example

Palmers Penguins

Following the quarto.org example of Observable JS using palmer penguins.

data = FileAttachment('../../data/penguins.csv').csv({ typed: true })
viewof bill_length_min = Inputs.range(
    [32, 50],
    {value: 35, step: 1, label: "bill length (min):"}
)

viewof islands = Inputs.checkbox(
    ["Torgersen", "Biscoe", "Dream"],
    { value: ["Torgersen", "Biscoe"],
      label: "islands:"
    }
)
filtered = data.filter(function(penguin) {
    return bill_length_min < penguin.bill_length_mm && 
    islands.includes(penguin.island)
})
Plot.rectY(filtered,
    Plot.binX(
        {y: "count"},
        {x: "body_mass_g", fill: "species", thresholds: 20}
    )
)
.plot({
    facet: {
        data: filtered,
        x: "sex",
        y: "species",
        marginRight: 80
    },
    marks: [
        Plot.frame()
    ]
  }
)
Inputs.table(filtered)