Releases: nteract/semiotic
Releases · nteract/semiotic
Little Fixes
FIXES
- Connector styling in
OrdinalFrame
sends data and drawing element NetworkFrame
sends decorated data object to HTML annotation functioncustomPointMark
inXYFrame
had issues with being sent elements rather than functions returning elementsNetworkFrame
sends decorated data object to the separationnodeSizeAccessor
for tree diagrams
Precalc Bins, Node Size in Trees
Features
- NetworkFrame in
tree
orcluster
will takenodeSizeAccessor
into account when calculating theseparation
value 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. heatmapping
andhexbinning
are 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
foregroundGraphics
andbackgroundGraphics
will 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
highlight
annotation works for edges. The edge annotation needs to haveedge: true
andsource
andtarget
objects 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
heatmap
andhexbin
area types honor abinMax
property that takes a callback and returns the maximum binned value (for use with legends, for instance)
multi-x
Features
- In
XYFrame
you 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
OrdinalFrame
andNetworkFrame
have 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
XYFrame
now honorscumulative
andcumulative-reverse
which calculate cumulative data based on the passed data. For showing the calculated data (like in a tooltip) look at theyMiddle
property 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
pieceHoverAnnotation
interaction 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
heatmap
areaType honors auseAreasAsInteractionLayer={true}
setting that creates a faster interaction grid instead of a voronoi based on centroids (thanks @jasonk000!) baseMarkProps
are passed to axis elements (thanks @jasonk000!)- Performance improvements with area rendering and XYFrame rendering more generally (thanks @jasonk000!)
matte
now accepts (along with the originaltrue
) a JSX SVG element or a function like({ size, margin }) => <JSX SVG />
- If you don't send a
position
for 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).