Skip to content

Releases: nteract/semiotic

FacetController Tidying

21 Aug 17:19

Choose a tag to compare

Fixes

  • A bunch of little issues introduced with FacetController-related changes to annotations and drawing were cleaned up.

Render Order

21 Aug 17:22

Choose a tag to compare

Features

  • Add renderOrder prop to all frames that is an array of strings that indicates the order of rendering individual dataviz types (so like "lines", "areas", "points" in XYFrame or "summaries", "pieces", "connectors" in OrdinalFrame or "edges", "nodes" in NetworkFrame).
  • Aria labels use tick formatting from axes when available

Fixes

  • Handle update when extent changes better

Faceting

30 Jul 04:49

Choose a tag to compare

Features

  • FacetController allows you to (via composition) tie a bunch of frames together. This means you can share tooltips easily, share extents easily, and share props easily. The next step (not implemented) is to create FacetXYFrame, FacetOrdinalFrame and FacetNetworkFrame that automatically create the frames inside FacetController but you can already do a pretty decent amount with it now. See example in docs at: https://emeeks.github.io/semiotic/#/semiotic/facet (thanks to @agirton for making the code a bit less obtuse)
    itt_muse_2
  • Annotations are a bit more robust at handling annotations sent to the annotations prop that used to only use built-in functionality. For instance you can now send frame-hover and column-hover annotations and they'll render tooltips correctly.

Fixes

  • Chord diagram was generating path elements that had undefined pathstrings which was causing issues in rendering. These are now not rendered.
  • NetworkFrame would allow edge strings that were so high they were crashing D3's forceSimulation. It's capped now.

Chores

  • Added a few more dataviz examples and functionality bits to the galleria bot

Multi-Accessor

15 Jul 18:38

Choose a tag to compare

Features

  • XYFrame and OrdinalFrame now accept arrays of accessors for oAccessor, rAccessor, xAccessor, yAccessor, lineDataAccessor, and areaDataAccessor. which allows you to create something like this:

screen shot 2018-07-15 at 10 56 12 am

From a single dataset with code like this:

<XYFrame
      areas={[{ coordinates: pointTestData }]}
      areaDataAccessor={[
        d => d.coordinates.filter(p => p.color === "#4d430c"),
        d => d.coordinates.filter(p => p.color === "#00a2ce")
      ]}
      areaType={{ type: "contour", thresholds: 5 }}
      xAccessor="x"
      yAccessor="y"
      areaStyle={d => {
        return {
          stroke: d.parentArea._baseData[0].color,
          fill: "none",
          strokeOpacity: 0.5,
          strokeWidth: 3,
          strokeDasharray: "15 5"
        }
      }}
    />

Notice the array in areaDataAccessor. This convenience could be improved by somehow decorating the data to know how it was made but for now that's not available. In the case of annotations, the annotation will be applied to the first valid accessor and not to all valid accessors.

Fixes

  • sortO is finally back to normal
  • Default stroke for radial annotations
  • Fix a few examples that had grown screwy
  • Add default stroke of black and fill of none for regular lines in XYFrame
  • Extent when sent as a complex object to XYFrame wouldn't cause a rerender

Fix ordinal sort order

12 Jul 20:52

Choose a tag to compare

Fixes

  • OrdinalFrame sorting of columns was defaulting to the wrong order after introduction of more involved sorting options.

Responsive Fix, React-Annotation

11 Jul 16:24

Choose a tag to compare

Fixes

  • A custom sankey (like the original d3-sankey) sent to customSankey in networkType would fail if you didn't send any nodePadding
  • ResponsiveFrame was sharing the isResizing var across instantiations

Features

  • Upgrade to react-annotation 1.3.0
  • events is passed to the underlying react annotation, if events is passed to <Annotation> then it will automatically have pointer-events turned on.

Sorting, Simple Lines

11 Jul 04:52

Choose a tag to compare

Fixes

  • Basic lines in XYFrame are no longer drawn with two-sided areas. That means they need to have their fill set as you would a normal line and that they will not do an animated transition into a stacked chart. This was done to resolve a long-term Chrome rendering bug with SVG that couldn't handle single pixel-width perfectly straight areas. It also cured the poor honoring of stroke-dasharray since technically these lines were one on top of the other.
  • sortO in OrdinalFrame is now passed the column details in new third and fourth parameters so you can set a function to sort based on column data like sortO={(columnAName,columnBName,columnAData,columnBData) => your sorting logic here}
  • Joy plots can have an ordinal axis if you don't have enough axes in your life already. They're set with an axis property of the summaryType that obeys the same axis settings seen elsewhere in Semiotic.
  • InteractionLayer should be properly redrawing overlays and interaction regions. It wouldn't update these regions with resizing and also had issues recognizing when NetworkFrame was sending point-based and area-based regions
  • parentLine will now show up as an attribute of a calculated annotation in situations where that makes sense

Features

  • ResponsiveFrames will by default debounce by 200ms (they'll wait until there has been no resizing in the last 200ms to fire a resize). You can change this by sending your frame a different debounce property
  • sortGroups (for Chord diagrams) is honored as a passthrough on networkType

Little Fixes Part The Latest

23 Jun 02:46

Choose a tag to compare

Fixes

  • The way unique values in OrdinalFrame were being calculated ran into issues with the most common polyfilled version of IE11 making the charts not render in IE11
  • null/undefined in your array of annotations (or functions returning such) sent to hoverAnnotation could trigger the default annotation instead of no annotation at all.
  • Calculated extents in XYFrame (when sending a partial extent like yExtent={[0,undefined]} were having strange effects with Responsive frames.

Fix unpkg

21 Jun 16:54

Choose a tag to compare

Bugs

  • This resolves the issue with the unpkg dist failing on the element-resize code.
  • NetworkFrame wasn't properly resizing when the frame size changed

Vendorize

14 Jun 18:27

Choose a tag to compare

Hopefully this finally resolves a few persistent issues with yarn and npm related to dependencies that were pointed at repos (element-resize-event which I'd forked to add support for tabindex as well as Rough which I'd forked and built to ES5).