Releases: nteract/semiotic
Releases · nteract/semiotic
Little Fixes
FIXES
- Connector styling in
OrdinalFramesends data and drawing element NetworkFramesends decorated data object to HTML annotation functioncustomPointMarkinXYFramehad issues with being sent elements rather than functions returning elementsNetworkFramesends decorated data object to the separationnodeSizeAccessorfor tree diagrams
Precalc Bins, Node Size in Trees
Features
- NetworkFrame in
treeorclusterwill takenodeSizeAccessorinto account when calculating theseparationvalue for nodes. Note that this can have strange effects if your total node size for a row/column is larger than the size of the viz. heatmappingandhexbinningare exposed as functions so you can precalc your bins to find max values and optimize performance
ForegroundGraphics fix in OrdinalFrame
Fixes
- OrdinalFrame generates its foregroundGraphics slightly differently than the other two frames, so it wasn't honoring the new foregroundGraphics as a function thing
foregroundGraphics/backgroundGraphics accept functions
Features
foregroundGraphicsandbackgroundGraphicswill now take a function of type({ size, margin }) => <JSX-SVG />so you can properly size your foreground and background graphics with responsive frames.
Fixes
- Default tooltip content for edges was showing "source id to source id" instead of "source id to target id".
Edge Highlighting
Features
- NetworkFrame
highlightannotation works for edges. The edge annotation needs to haveedge: trueandsourceandtargetobjects that have IDs that correspond to yournodeIDAccessor
Fix 0 value point tooltips
FIXES
- Points with a value of 0 were incorrectly showing the position of the tooltip
FEATURES
heatmapandhexbinarea types honor abinMaxproperty that takes a callback and returns the maximum binned value (for use with legends, for instance)
multi-x
Features
- In
XYFrameyou can pass an xAccessor that returns an array of values for things like horizontal candlestick charts. This would probably cause extreme weirdness if used for lines or areas but if you have an idea of how or why that would work, feel free to file an issue.
Fixes
OrdinalFrameandNetworkFramehave canvas interaction disabled to allow for SVG-based interactivity when rendering with canvas. Canvas interaction (like the kind found inXYFrame) will come in a future release for these frames.
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).


