Opened 22 months ago

Closed 3 months ago

Last modified 3 months ago

#30540 closed enhancement (fixed)

Add package phitigra: Graph editor that works with Jupyter

Reported by: slelievre Owned by:
Priority: major Milestone: sage-9.6
Component: user interface Keywords: graph_editor
Cc: boothby, jason, mpatel, nthiery, nvcleemp, rbeezer, rkirov, rlm, slelievre, was, zerline, gh-jcamp0x2a, gh-jfraymond, dimpase, dcoudert Merged in:
Authors: Matthias Koeppe Reviewers: David Coudert
Report Upstream: N/A Work issues:
Branch: aca5732 (Commits, GitHub, GitLab) Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by mkoeppe)

This ticket is about providing the graph editor https://pypi.org/project/phitigra, which works in Jupyter (Jupyter Notebook and JupyterLab).

This is part of

  • #29889: Metaticket: Jupyter improvements for things that were in sagenb

Related:

Change History (21)

comment:1 Changed 22 months ago by slelievre

I cc-ed a lot of people who have had historical involvement with this topic.

If you mind, email me to un-cc you (un-cc-ing yourself would have the opposite effect of subscribing you forever to updates on this ticket).

comment:2 Changed 22 months ago by slelievre

  • Description modified (diff)

And if I forgot someone who wanted to be cc-ed, it's easy: just cc yourself.

comment:3 Changed 22 months ago by nthiery

Candidates could be francy, bqplot, networkx+matplotlib. A promising one:

https://blog.jupyter.org/interactive-graph-visualization-in-jupyter-with-ipycytoscape-a8828a54ab63

comment:4 follow-up: Changed 22 months ago by nvcleemp

Some nice features would be:

  • ability to disable any automatic layouting: not as annoying as an editor that keeps moving vertices while you're trying to construct a complicated graph
  • ability to have a layout-only mode: if you have a graph, you might want to change the layout without accidentally changing the graph structure

Probably some more, but these are the first two I could think of.

comment:5 in reply to: ↑ 4 Changed 22 months ago by slelievre

Replying to nvcleemp:

Some nice features would be:

  • ability to disable any automatic layouting: not as annoying as an editor that keeps moving vertices while you're trying to construct a complicated graph
  • ability to have a layout-only mode: if you have a graph, you might want to change the layout without accidentally changing the graph structure

Probably some more, but these are the first two I could think of.

The "CS academy" graph editor (not sure about the license -- I'm asking them) has those features. There's a button "Force" to let some force reshape the graph, and buttons "Draw", "Edit", "Delete", "Config" that stop the movement to let the user edit the graph. There's also a text column on the left where one can manually edit the graph vertices and edges.

comment:6 Changed 22 months ago by gh-jcamp0x2a

  • Cc gh-jcamp0x2a added

comment:7 Changed 21 months ago by slelievre

  • Description modified (diff)

comment:8 Changed 20 months ago by mkoeppe

  • Milestone changed from sage-9.2 to sage-9.3

comment:9 Changed 17 months ago by mkoeppe

  • Milestone changed from sage-9.3 to sage-9.4

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

comment:10 Changed 16 months ago by gh-jfraymond

  • Cc gh-jfraymond added

Hello,

I just see this ticket. Last year I started to (occasionally) develop a graph editor for sage using ipycanvas and ipywidgets, that can be found in the following repository: https://gitlab.limos.fr/jfraymon/phitigra

It is not completely finished (and the code could/will be improved) but it is functional: one can draw a graph and export it, zoom in/out, change vertex colors, use layout algorithms, etc.

I did not make a ticket here to include it in sage because it depends on external libraries (ipycanvas and ipywidgets) and I thought it would be annoying to review (also it is still work in progress).

comment:11 Changed 12 months ago by mkoeppe

  • Milestone changed from sage-9.4 to sage-9.5

comment:12 Changed 7 months ago by mkoeppe

  • Milestone changed from sage-9.5 to sage-9.6

comment:13 Changed 3 months ago by mkoeppe

  • Branch set to u/mkoeppe/provide_graph_editor_that_works_with_jupyter

comment:14 Changed 3 months ago by git

  • Commit set to aca5732e15bb72eb829913b89475ed68e83ba267

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

aca5732build/pkgs/phitigra: New

comment:15 Changed 3 months ago by mkoeppe

  • Authors set to Matthias Koeppe
  • Description modified (diff)
  • Status changed from new to needs_review
  • Summary changed from Provide graph editor that works with Jupyter to Add package phitigra: Graph editor that works with Jupyter

comment:16 Changed 3 months ago by mkoeppe

  • Cc dimpase dcoudert added

comment:17 Changed 3 months ago by dcoudert

  • Reviewers set to David Coudert
  • Status changed from needs_review to positive_review

I tried to install phitigra and it works well with jupyter on safari/macOS 12.12.1. Quite easy to use to edit basic graphs.

comment:18 Changed 3 months ago by mkoeppe

Thanks!

comment:19 Changed 3 months ago by vbraun

  • Branch changed from u/mkoeppe/provide_graph_editor_that_works_with_jupyter to aca5732e15bb72eb829913b89475ed68e83ba267
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:20 Changed 3 months ago by mkoeppe

  • Commit aca5732e15bb72eb829913b89475ed68e83ba267 deleted

Follow-up: #33639 Replace sage.graphs.graph_editor with a call to phitigra

comment:21 Changed 3 months ago by gh-jfraymond

Great, thank you for this addition! I'm glad to see there is interest for my graph editor.

Note: See TracTickets for help on using tickets.