- adds
Tint
andColorize
wrappers to fine-tune color channels (and opacity) - all wrappers have a convenience
root
property (not trait), which returns the final feature which would change a graph (e.g.NodeShapes
)- care should be taken to avoid cycles of
.wrapped
wrappers: these will crash the renderer
- care should be taken to avoid cycles of
- updated to
force-graph 1.43.3
and3d-force-graph 1.72.3
- adds
CaptureAs
, which can wrap any nearly any value (such as aNunjucks
,Column
, or subclasses likeContinuousColor
) to store the calculated property in a new column on thenode
orlink
- the captured value might be available e.g. in other
Nunjucks
values, but there are likely race conditions - care should be taken to avoid conflicting column names, either with the original
source
data or those configured by other behaviors and facets- selecting a
column_name
known to be used byforce-graph
(such asx
ory
) will raise a trait error
- selecting a
- the captured value might be available e.g. in other
Breaking
- blanket
var(--...)
replacing, introduced in0.3.8
is removed- the
ReplaceCssVariables
wrapper can now be applied to any property
- the
TBD
TBD
- adds support for CSS
var()
values in relevant behaviors and values (e.g. colors, fonts)- this does not support
calc
- this does not support
- adds
LinkShapes.shapes
with support for theText
shape - adds
offset_x
,offset_y
, andoffset_z
to all shapes - adds
Text.size_pixels
for fine-tuning performance/quality when rendering in 3D
- adds
LinkShapesModel.shapes
with support for theTextModel
shape
- rename
GraphDirector.padding
to.fit_padding
- normalize
GraphDirectorModel.padding
tofit_padding
- 2D node text can now be provided by non-text values (by constant or
Column
)
- adds
GraphCamera
behavior which can observe the contents of a graph viewport - adds
GraphDirector
behavior which can update the graph viewport
TBD
- improves handling of
node_
andlink_preserve_columns
, respecting ordering
- improves default selection behavior for
LinkShapes.curvature
andLinkShapes.line_dash
- adds
line_dash
to all 2D shapes - removes the significance of order in
ForceGraph.behaviors
- all node, link, and graph behaviors now have a (sensible default)
.rank
trait which determines the order in which they are applied. - lower
rank
are applied before higherrank
- all node, link, and graph behaviors now have a (sensible default)
- adds
DodoSource
for interpretingdoit
tasks graphs - adds
node_preserve_columns
,link_id_column
, andlink_preserve_columns
- these allow for keeping values when updating data, such as those created by the
simulation engine (e.g.
x
andy
) and custom columns, such as created bySelection
behaviors link_id_column
is required if the number and or order of links change
- these allow for keeping values when updating data, such as those created by the
simulation engine (e.g.
- adds
ContinuousColor
andOrdinalColor
color schemes, supported byd3-scale-chromatic
- adds more
jsMath
functions (cosh
,sinh
,tanh
, andhypot
) and provided more comprehensive documentation for them inBehaviors.ipynb
- adds
NodeShape
UI controls inShapes.ipynb
andBehaviors.ipynb
- fixes labels for UI controls in
Behaviors.ipynb
- updates to latest JupyterLite packages
- adds non-JupyterLite-compatible examples
DodoSource.ipynb
for viewing and runningdoit
tasksDodoApp.ipynb
for demonstrating a full app, featuringipylab
ipydatagrid
- fixes compatibility with
jupyterlab_widgets 3.0.6
- adds
curvature
,line_dash
toLinkShapes
- adds a configurable
NodeShapes
, compatible with bothForceGraph
andForceGraph3D
- adds initial
Text
,Circle
andRectangle
which can be stacked in.shapes
- adds initial
- adds
DAG
toGraphForces
- adds manual
ForceGraph.reheat
to restart simulation
-
the
column_name
andtemplate
features ofBehaviors
are consolidated into theNunjucks
andColumn
classes- each has a single
value
, - and may be
coerce
d into a specific JS-compatible type (e.g.boolean
ornumber
)
- each has a single
-
most dynamic behaviors have been merged to use this pattern, diverging from the upstream JS API in favor of more idiomatic, compact descriptions. For example, for link arrows:
0.2.x
graph.behaviors = [ LinkDirectionalArrowColor(column="color"), LinkDirectionalArrowLength(template="10"), LinkDirectionalArrowRelPos(template="{{ link.value / 10 }}"), ]
0.3.x
graph.behaviors = [ LinkArrows( color=Column("color"), length=1.0, relative_position=Nunjucks("{{ link.value / 10 }}") ), ]
- adds connection to
force-graph
DAG configuration
- raise minimum python from
3.7
to3.8
- improve types and add
py.typed
file - adds
background_color
(defaults to transparent, encoded asrgba(0, 0, 0, 0.0)
) - adds
GraphData
which can capture the as-simulated data from the browser - adds
LinkSelection
which mirrorsNodeSelection
, but returns link indices in.source.links
, as they are not guaranteed to have a anid
column - adds
LinkWidths
- adds
NodeSizes
- adds most of the browser's
Math
functions and constants to the environment made available to.template
values - adds
GraphForces
, which exposes a large number of the forces from [d3-force-3d
] - renames the top-level graph imports
ipyforcegraph.graphs
(wasipyforcegraph.forcegraph
) - the
DataFrameSource
, and its new subclassWidgetSource
, can be imported fromipyforcegraph.sources
- implements bidirectional serialization of
zstd
-compressed dataframes - updates TypeScript
target
toes2018
- update to
3d-force-graph 1.71.1
- update to
force-graph 1.43.0
- initial release
- initial release