# Supplied assay reporting limits
Supplied assay reporting limits.

## APIs demonstrated

- [CensoredPointSeries](/reference/components/censored-point-series/) from `@pibbl/core/viz`
- [CensoredPointSeriesProps](/reference/components/censored-point-series/) from `@pibbl/core/viz`
- [CensoredPointSeriesStyle](/reference/components/censored-point-series/) from `@pibbl/core/viz`
- [CensoringAccessor](/reference/components/censored-point-series/) from `@pibbl/core/viz`
- [CensoringStatus](/reference/components/censored-point-series/) from `@pibbl/core/viz`

## Complete example

[Plain source](/minimal/viz/censored-point-series.tsx). Run as a browser module after the document body exists. TSX uses `jsx: "react-jsx"` and `jsxImportSource: "@pibbl/core"`.

```tsx
import { createElement, pibbl } from "@pibbl/core";
import {
  CensoredPointSeries,
  LinearScale,
  type CensoredPointSeriesProps,
  type CensoredPointSeriesStyle,
  type CensoringStatus,
  type CensoringAccessor,
} from "@pibbl/core/viz";

const samples = [
  { hour: 1, concentration: 0.5, reporting: "below" as const },
  { hour: 2, concentration: 1.4, reporting: "observed" as const },
  { hour: 4, concentration: 80, reporting: "above" as const },
];
const observed: CensoringStatus = "observed";
const censoring: CensoringAccessor<(typeof samples)[number]> = (row) =>
  row.reporting ?? observed;
const style: CensoredPointSeriesStyle = { radius: 4, fill: "#087f8c" };
const props: CensoredPointSeriesProps<(typeof samples)[number]> = {
  data: samples,
  x: "hour",
  y: "concentration",
  censoring,
  style,
  xScale: "hour",
  yScale: "concentration",
};

export const minimalCensoredPointSeries = createElement(LinearScale, {
  id: "hour",
  domain: [0, 6],
  range: [0, 360],
  style: { width: 360, height: 220 },
  children: createElement(LinearScale, {
    id: "concentration",
    domain: [0, 100],
    range: [220, 0],
    children: createElement(CensoredPointSeries, props),
  }),
});

const canvas = document.createElement("canvas");
canvas.width = 360;
canvas.height = 220;
document.body.append(canvas);
const app = pibbl(canvas, minimalCensoredPointSeries);
window.addEventListener("pagehide", () => app.dispose(), { once: true });

```

## Usage notes



## Documentation version

Documentation built with @pibbl/core 0.0.2, revision dd39ce2. ALPHA — NOT FOR PRODUCTION USE.
