Skip to content

Using color

There are a few ways to use color in DuckPlot. You can use the .color() method to specify a column to use for color encoding. You can also use the .color() method to specify a color value directly.

Color encoding

Pass a column name to the .color() method to use that column for color.

js
duckPlot.table("stocks").x("Date").y("Open").color("Symbol").mark("areaY");

Color as value

If you want all marks to have the same color, pass a color value to the .color() method. DuckPlot uses the same isColor method as Observable Plot to detect valid CSS color values.

js
duckPlot.table("stocks").x("Date").y("Open").color("hotpink").mark("areaY");

Setting the domain and range

If you want to set the domain and range for the color scale, you can set them in the .options() method.

js
duckPlot
  .table("stocks")
  .x("Date")
  .y("Open")
  .color("Symbol")
  .mark("areaY")
  .options({
    color: {
      domain: ["AAPL", "GOOG", "IBM", "AMZN"],
      range: ["red", "green", "blue", "purple"],
    },
  });

Using a scheme

Because options are passed directly into Plot, you can use any of the color schemes available for categorical or continuous data.

js
duckPlot
  .table("stocks")
  .x("Date")
  .y("Open")
  .color("Symbol")
  .mark("areaY")
  .options({ color: { scheme: "category10" } });

Also works for a continuous color scale:

js
duckPlot
  .table("stocks")
  .x("Date")
  .y("Open")
  .color("Open")
  .mark("dot")
  .fy("Symbol")
  .options({ color: { scheme: "reds" } });