{"action":"opened","issue":{"url":"https://api.github.com/repos/ericmjl/Circos/issues/6","repository_url":"https://api.github.com/repos/ericmjl/Circos","labels_url":"https://api.github.com/repos/ericmjl/Circos/issues/6/labels{/name}","comments_url":"https://api.github.com/repos/ericmjl/Circos/issues/6/comments","events_url":"https://api.github.com/repos/ericmjl/Circos/issues/6/events","html_url":"https://github.com/ericmjl/Circos/issues/6","id":165661188,"number":6,"title":"Integration with NetworkX Package","user":{"login":"ericmjl","id":2631566,"avatar_url":"https://avatars.githubusercontent.com/u/2631566?v=3","gravatar_id":"","url":"https://api.github.com/users/ericmjl","html_url":"https://github.com/ericmjl","followers_url":"https://api.github.com/users/ericmjl/followers","following_url":"https://api.github.com/users/ericmjl/following{/other_user}","gists_url":"https://api.github.com/users/ericmjl/gists{/gist_id}","starred_url":"https://api.github.com/users/ericmjl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ericmjl/subscriptions","organizations_url":"https://api.github.com/users/ericmjl/orgs","repos_url":"https://api.github.com/users/ericmjl/repos","events_url":"https://api.github.com/users/ericmjl/events{/privacy}","received_events_url":"https://api.github.com/users/ericmjl/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-07-14T21:18:17Z","updated_at":"2016-07-14T21:18:17Z","closed_at":null,"body":"Today I chatted with Aric Hagberg, the lead maintainer for NetworkX, about the possibility of integrating Circos and HivePlot with NetworkX.\r\n\r\nOverall:\r\n\r\n- Great interest from him.\r\n- Comments on usability:\r\n    - The object-oriented interface makes sense to be separate from the Graph object.\r\n    - API is at the right level as far as he can see.\r\n    - Will be good to get further community exposure for this to receive comments on how it can be improved.\r\n\r\nHe described a bit of his ideas w.r.t. graph drawing. There's the problem of \"graph layouts\", and then there's the problem of \"rendering to screen\". AFAIK, both CircosPlot and HivePlot implement both aspects together.\r\n\r\nHow to proceed? There are multiple possible ways. Here are some initial thoughts, and the advantages/disadvantages of each:\r\n\r\n1. Add a `networkx` subpackage, such that the import statements look something like `from networkx.visualization import CircosPlot`.\r\n    1. Advantages:\r\n        1. Gain immediate name recognition for the plots.\r\n    1. Disadvantages:\r\n        1. Need to write good tests for the plotting package.\r\n1. Create a `networkx-drawing` package, such that the import statements look something like `from nxviz import CircosPlot`.\r\n    1. Advantages:\r\n        1. Gains name recognition for the plots.\r\n        1. Separation of concerns - may be much easier to keep drawing separate from `networkx` codebase, which is in-line with what Aric is thinking about.\r\n    1. Disadvantages:\r\n        1. Few that I can think of right now.\r\n1. Leave Circos/hiveplots as a separate package, and instead write documentation for the `networkx` package on how to use Circos/hiveplots. The import statement would look something like `from circos import CircosPlot`. \r\n    1. Advantages:\r\n        1. Flexible to maintain on our own.\r\n        1. Lowest energetic barrier to getting community recognition for the plot types.\r\n    1. Disadvantages:\r\n        1. No \"official\" `networkx` name recognition (not sure that this is important to begin with, though...)\r\n\r\nLeaving this up here for further thoughts. @jzab, @jonchar - do you have any ideas?"}}
{"actor":{"display_login":"ericmjl"}}