Releases: nteract/semiotic
Releases · nteract/semiotic
Canvas Interaction
Features
- In XYFrame if you render points or lines with canvas then the interaction layer will also be rendered with canvas, which means you won't choke your DOM with an interactive 50,000 point scatterplot like this one: https://emeeks.github.io/semiotic/#/semiotic/canvasinteraction
Fixes
- Axis elements weren't calculating bounding boxes if they were using custom tickFormat that returned JSX
Cumulative, Multi-Point Marks
Features
XYFramenow honorscumulativeandcumulative-reversewhich calculate cumulative data based on the passed data. For showing the calculated data (like in a tooltip) look at theyMiddleproperty and that will reflect the cumulative data value.- XYFrame points can now have yAccessors that return arrays of data. Extent is calculated based on the min-max and a circle will be rendered for each point (the style, class, render and renderKey functions will all receive an optional 3rd parameter reflecting the array position within the array of y coordinates if you want to style them accordingly) this makes multi-element point charts (like Candlestick charts) easier to generate
- When customClickBehavior and customDoubleClickBehavior are active in a frame, the interaction overlays will have
cursor: pointer pieceHoverAnnotationinteraction regions are now based on the custom mark for any custom mark-based viz in OrdinalFrame
Axis Label Adjust, Perf, Matte
FEATURES
- Performance improvements for area drawing in XYFrame (thanks @jasonk000!)
- XYFrame
heatmapareaType honors auseAreasAsInteractionLayer={true}setting that creates a faster interaction grid instead of a voronoi based on centroids (thanks @jasonk000!) baseMarkPropsare passed to axis elements (thanks @jasonk000!)- Performance improvements with area rendering and XYFrame rendering more generally (thanks @jasonk000!)
mattenow accepts (along with the originaltrue) a JSX SVG element or a function like({ size, margin }) => <JSX SVG />- If you don't send a
positionfor an axis label, the position of the label will be based on a bounding box of the axis tick labels, ensuring no overlap (though it does not dynamically adjust the margin but it does ensure no overdraw).
DAGRE graph support
FEATURES
- NetworkFrame now has a
dagreoption. If you set yournetworkTypetodagreyou can pass a dagre graph to thegraphproperty of NetworkFrame and Semiotic will use some nice custom line and node rendering. dagre is not included in Semiotic (because of size) but you can import it into your project and get access to amazing DAG rendering like this:
https://emeeks.github.io/semiotic/#/semiotic/customnode
- NetworkFrame
edgeTypehonors acurvetype to draw those s-curves that D3 likes for dendrograms.
DOCS
- Added docs for dagre, ordinal snap brushing, some marginalia line labeling
FIXES
- Column names in OrdinalFrame were sometimes numbers and sometimes strings and it was causing issues that got fixed (thanks @agirton)
- OrdinalFrame tooltips no longer have the
tooltipclass because of collisions with other libraries that have CSS rules for that incredibly common class
Ordinal Brushing
Features
- OrdinalFrame when sent an interaction prop that doesn't specify
columnsBrushwill now enable snapped brushing of the entire frame. So send something like this:
<OrdinalFrame
{...otherProps}
interaction={{
extent: ["Jason", "Betty"],
end: e => {
console.info("e", e)
},
during: e => {
console.info("during e", e)
}
}}
Will get you something like this:

Fixes
heatmapareaType would sometimes create an extra row or column on the bottom and/or right. This should be fixed now
Arc Tweening
Features
- Sunburst and pie arcs will now do an angle tween instead of a shape morph
Sunburst Labeling
Features
- Sunburst labels are now rotated like stem labels in pie charts
Fixes
- Enclose rules in NetworkFrame weren't always generated correctly
FacetController Invert
Fixes
- FacetController wasn't correctly honoring some invert and extent settings
- Custom interpolator behavior was having issues with CurveLinear
barpercent
Features
- Added
barpercentto OrdinalFrame which does the same convenience data formatting aslinepercentandstackedpercentbut for bar charts
Fixes
- FacetController wasn't handling responsive frames
React 15 Compatibility with FacetController
Fixes
- Added
react15Wrapperto FacetController so that React 15 (which doesn't support fragments) can use FacetController by passing a wrapper element (like a div). - Fix key complaint with node labels


