Skip to content
silverpoint
Documentation menu

Charts · Radial

WindRose

Observations of (bearing, speed) binned by compass sector and speed. Family: Radial · chart 31 of 60.
Wind, Des Moines, March 2024Wind, Des Moines, March 2024
Wind, Des Moines, March 2024
directionshare< 55–1010–1515–20≥ 20
N11%1%5%4%0%0%
NNE7%1%3%2%0%0%
NE4%0%2%1%0%0%
ENE4%1%3%1%0%0%
E13%0%7%5%0%0%
ESE5%0%2%3%0%0%
SE4%0%1%2%1%0%
SSE6%0%3%1%1%0%
S7%0%2%2%1%1%
SSW5%0%1%3%0%1%
SW3%0%1%1%1%0%
WSW2%0%1%1%0%0%
W3%1%1%1%0%0%
WNW6%0%1%2%1%1%
NW11%0%3%4%3%1%
NNW6%0%3%3%1%0%
Wind, Des Moines, March 2024Wind, Des Moines, March 2024
Wind, Des Moines, March 2024
directionshare< 55–1010–1515–20≥ 20
N11%1%5%4%0%0%
NNE7%1%3%2%0%0%
NE4%0%2%1%0%0%
ENE4%1%3%1%0%0%
E13%0%7%5%0%0%
ESE5%0%2%3%0%0%
SE4%0%1%2%1%0%
SSE6%0%3%1%1%0%
S7%0%2%2%1%1%
SSW5%0%1%3%0%1%
SW3%0%1%1%1%0%
WSW2%0%1%1%0%0%
W3%1%1%1%0%0%
WNW6%0%1%2%1%1%
NW11%0%3%4%3%1%
NNW6%0%3%3%1%0%
mode="precision"
Wind, Des Moines, March 2024Wind, Des Moines, March 2024
Wind, Des Moines, March 2024
directionshare< 55–1010–1515–20≥ 20
N11%1%5%4%0%0%
NNE7%1%3%2%0%0%
NE4%0%2%1%0%0%
ENE4%1%3%1%0%0%
E13%0%7%5%0%0%
ESE5%0%2%3%0%0%
SE4%0%1%2%1%0%
SSE6%0%3%1%1%0%
S7%0%2%2%1%1%
SSW5%0%1%3%0%1%
SW3%0%1%1%1%0%
WSW2%0%1%1%0%0%
W3%1%1%1%0%0%
WNW6%0%1%2%1%1%
NW11%0%3%4%3%1%
NNW6%0%3%3%1%0%
substrate="green"
Wind, Des Moines, March 2024Wind, Des Moines, March 2024
Wind, Des Moines, March 2024
directionshare< 55–1010–1515–20≥ 20
N11%1%5%4%0%0%
NNE7%1%3%2%0%0%
NE4%0%2%1%0%0%
ENE4%1%3%1%0%0%
E13%0%7%5%0%0%
ESE5%0%2%3%0%0%
SE4%0%1%2%1%0%
SSE6%0%3%1%1%0%
S7%0%2%2%1%1%
SSW5%0%1%3%0%1%
SW3%0%1%1%1%0%
WSW2%0%1%1%0%0%
W3%1%1%1%0%0%
WNW6%0%1%2%1%1%
NW11%0%3%4%3%1%
NNW6%0%3%3%1%0%
ground="cyanotype"

Example

The chart above, in each framework. Pick a framework once and every example on the site follows it. The full dataset is 742 hourly METAR reports (Iowa Environmental Mesonet).

shell
npm install @silverpoint/react @silverpoint/grounds @silverpoint/fonts
tsx
import '@silverpoint/fonts/fonts.css';
import '@silverpoint/grounds/styles.css';
import { WindRose } from '@silverpoint/react/wind-rose';

const data = [
  { bearing: 180, speed: 11 },
  { bearing: 170, speed: 11 },
  { bearing: 180, speed: 9 },
  { bearing: 180, speed: 10 },
  { bearing: 170, speed: 7 },
  { bearing: 180, speed: 11 },
  { bearing: 180, speed: 10 },
  { bearing: 180, speed: 9 },
  { bearing: 160, speed: 7 },
  { bearing: 150, speed: 6 },
  { bearing: 140, speed: 9 },
  { bearing: 150, speed: 8 },
  // … 730 more rows of the same shape
];

export default function App() {
  return (
    <div style={{ width: 480 }}>
      <WindRose
        data={data}
        bearingKey="bearing"
        valueKey="speed"
        title="Wind, Des Moines, March 2024"
        unit="kt"
      />
    </div>
  );
}

Import

Each chart has its own subpath, so a bundle only carries the charts it uses. Every adapter also exports every chart from its barrel.

FrameworkImport
Reactimport { WindRose } from '@silverpoint/react/wind-rose';
Vueimport { SpWindRose } from '@silverpoint/vue/wind-rose';
Angularimport { SpWindRose } from '@silverpoint/angular/wind-rose'; // <sp-wind-rose>
Reflexfrom reflex_silverpoint_react import wind_rose

Props

The props WindRose adds to the ones every chart takes. Accessor props (…Key, keys, names) name fields of your rows and are ignored without data.

React / AngularVueReflexTypeDescription
bearingKeybearing-keybearing_keyAccessor<number | null | undefined>Where the wind blows from, in degrees clockwise from north.
valueKeyvalue-keyvalue_keyAccessor<number | null | undefined>The wind speed; 0 is a calm, which has no direction.
sectorssectorssectorsnumberCompass sectors: 4, 8, 16 or 32; 16 by default.
binsbinsbinsreadonly number[]Ascending speed thresholds that split each sector; [5, 10, 15, 20] by default.

Common props

Every chart also takes these. Framework conventions: camelCase in React and Angular, kebab-case in Vue templates, snake_case in Reflex. Read more about them.

Show the 22 common props
React / AngularVueReflexTypeDescription
datadatadatareadonly Datum[]Rows to draw. If omitted, the demo dataset is rendered (REQ-093) and the accessor props (…_key, keys, names) are ignored.
groundgroundgroundGroundRefStyle ground: silverpoint or cyanotype, or a ground object. Defaults to the app provider's, or silverpoint.
substratesubstratesubstrateSubstrateNamePrepared substrate within the ground (REQ-046).
modemodemodeInkModeink by default; precision disables inking (REQ-021).
seedseedseedSeedSeed. If omitted, it is derived from id stably (REQ-003).
idididstringStable identifier. If omitted, it is generated deterministically.
heightheightheightnumberHeight of the drawing area in px. Width is the container's unless pinned.
widthwidthwidthnumber—
chromechromechrome'card' | 'bare'card draws the full frame; bare only the drawing area (REQ-095).
hatchFillhatch-fillhatch_fill'tile' | 'per-shape'How areas are filled (REQ-029).
titletitletitlestring—
badgebadgebadgestring—
valuevaluevaluestring | number—
unitunitunitstring—
footerLeftfooter-leftfooter_leftstring—
footerRightfooter-rightfooter_rightstring—
labellabellabelstringAccessible name. If omitted, it is derived from title (REQ-120).
descriptiondescriptiondescriptionstringLong description for screen readers (REQ-120).
dataTabledata-tabledata_table'visible' | 'hidden' | 'none'Tabular alternative; hidden leaves it for assistive technology only (REQ-121).
localelocalelocalestring—
numberFormatnumber-formatnumber_formatIntl.NumberFormatOptions—
classNameclass-nameclass_namestring—

Events

Pointer and keyboard exploration are built in. The item under the pointer or focus is reported, and a click, Enter or Space selects it. The item is { seriesKey, index, datum, value, point: { x, y } }.

FrameworkActive itemSelectionCustom readout
ReactonActiveChangeonSelecttooltip={(item, readout) => …}
Vue@active-change@select<template #tooltip>
Angular(activeChange)(select)<ng-template spTooltip>
Reflexon_active_changeon_selecttooltip=tooltip_template(…)
Interaction and readouts →
Report it
Found something wrong with WindRose? Open an issue on GitHub — the form comes pre-filled with the chart and the version.