Hurray! Congrats! Please come back to us if anything pops us. Good luck with your project! -- Benjamin On Thu, 19 Sep 2019 at 02:57, Alain L'Hostis lhostis@users.sourceforge.net wrote: This is it, here comes my working solution. In my previous code there was a mistake in the naming of the property, I made a mistake in typing an 'U' instead of an 'u'. In the end, the code that works is here: ~~~ node_label = graph.getStringProperty("urbanAgglomeration") node_city_code = graph.getIntegerProperty("cityCode")...
Thanks a lot Alain. Ok, so this is a progress. My hunch is that your label property: node_label = graph.getStringProperty("UrbanAgglomeration") has never been populated If it is populated, when you print: for n in graph.getNodes(): print node_label[n] You should not have empty strings only. If so, this means that the property has never been stored. And probably it has not been created yet, because of the very first error you mention in this thread. To test if a property exist in a graph, you can...
(apologies, as I am replying by email, the formatting seems to have vanished in the process) -- Benjamin On Tue, 17 Sep 2019 at 11:59, brenoust falcoyote@users.sourceforge.net wrote: Dear Alain, There are a few issues in this thread. 1) about populating node/edge properties: Custom properties are not really the problem here, my question is more on the way you populate these information. There are many ways to do it, and I guess you are first reading through a file. Because in your first example,...
Dear Alain, There are a few issues in this thread. 1) about populating node/edge properties: Custom properties are not really the problem here, my question is more on the way you populate these information. There are many ways to do it, and I guess you are first reading through a file. Because in your first example, UrbanAgglomeration does not exist before you create it (but then it is empty and remains unpopulated). Imagine that you are reading through a rough object of the form: mygraph= {nodes:...
Yes indeed, Guy's code creates a new property, and copies the content of a new property into graph["OriNodeLabel"] which then becomes an empty string. My question is when you proposed, graph["OriNodeLabel"][n] = n.UrbanAgglomeration It seems that you are already reading some data. Were/how is this data stored? You were probably confusing between two version of n, n being a Tulip node, and n being your own data structure. Tulip nodes are their own structure (basically a fancy integer as a node id),...
Thanks a lot Pascal for the kind words. I'm very happy we could be of help. If you have any further issue, please do not hesitate to contact us (through Github, easier to track and does not mess with my email fonts :). I hope you will enjoy all the fun of the tulip API! -- Benjamin On Fri, 28 Jun 2019 at 22:47, Pascal elastika@users.sourceforge.net wrote: I really appreciate your time Benjamin, your example is very helpfull, many thanks. You are right, Tulip approach is different but the library...
Hi Pascal, I feel a bit of frustration over our documentation in your message. We are very sorry, this is a new feature of the Python API here, so the doc may not be fully explicit. And the feature may be improved to a more pythonic way in the future (please do not hesitate to PR if you wish to contribute). A basic example of the feature is: tlp.selectShortestPaths(graph, tlp.node(1), tlp.node(2), tlp.AllPaths, graph['viewMetric'], graph['viewSelection']) The first argument is the graph in which...
Hi Pascal, You may refer to the github post here: https://github.com/Tulip-Dev/tulip/issues/39#issuecomment-451337822 Best, Benjamin On Fri, 28 Jun 2019 at 03:59, Pascal elastika@users.sourceforge.net wrote: Hi! I have upgraded to version 5.3 and now selectShortestPaths is recognised, great. Unfortunately, did'nt find many Python demo. Can someone kindly provide an example showing selectShortestPaths basic usage? For instance, given a directed weighted graph such as wedges =[[1,2, 3.2], [2,3, 4.2],...
Alright, I have found two issues: - Your edge target anchor sizes are (0,10,0). Having a 0 coordinate on x is problematic since a tlp.Size defines a triplet (width,height,depth). I've never played too much with anchors myself, but it seems that only the first coordinate is important in the case of 2d arrow/3d cones set all your edge anchor size to (1,1,0) for example graph['viewTgtAnchorSize'].setAllEdgeValue(tlp.Size(1,1,0)) Your edge size are 3D with coordinates below (1,1,1), actually (.125,.125,.5)....
Make sure that you have unchecked 'Interpolate: Size' checkbox in the Scene Rendering Settings too. You may also share us your tlpx file or a picture. Best, -- Benjamin On Fri, 8 Mar 2019 at 02:29, Bruno C bruno_c@users.sourceforge.net wrote: Merci Benjamin I 'll try your trick. It sort of works: If I zoom 4 times on my graph (68 nodes, so not a big one), I see the arrow and I see its size change But I cannot set the Size bigger that 10,10 and when I zoom out I don't see anymore anything :( Is it...
Hi Bruno, Zoom on a target node, you might see the direction arrow appear. What happens is that your viewpoint may be too far to notice the direction arrow. You can play with arrow size by setting it to (10,10,0) for example in the python REPL you may type : graph['viewTgtAnchorSize'].setAllEdgeValue(tlp.Size(10,10,0)) Make sure that you have unchecked 'Interpolate: Size' checkbox in the Scene Rendering Settings too. Note that graph['viewSrcAnchorSize'] will allow you to set the source anchor size,...
Yes it is not yet in the last release, you'd probably have to compile Tulip yourself or wait just a little bit for the next release to come out. By the way, sourceforge is used only for releasing binaries, I would suggest you to reach the Github repository for up-to-date information: https://github.com/Tulip-Dev/tulip As for all the python documentation, you can find it here, alongside with quite a lot of examples: http://tulip.labri.fr/Documentation/current/tulip-python/html/index.html -- Benjamin...
Dear Pascal, The python bindings have just been pushed recently (but I don't think it is in the bundle yet) https://github.com/Tulip-Dev/tulip/issues/39. One usage would be: tlp.selectShortestPaths(graph, tlp.node(1), tlp.node(2), tlp.AllPaths, graph['viewMetric'], graph['viewSelection']) the paths are stored in the edges (and connected nodes) of graph with graph['viewSelection'] value equal to True. For reference, here are the details: ret = tlp.selectShortestPaths(graph, src, tgt, pathType, weights,...
Dear Oliver, Just throwing one idea here: I feel that some of your issues may be resolved with a quick hands-on demo with someone knowing Tulip. You are from Swansea University, aren't you? It happens that one excellent expert and contributor of Tulip is also a faculty in your university: Daniel Archambault. I am not sure Dan is still receiving the sourceforge emails and seeing this conversation, but he is the kindest of all, and I am sure he could show you some cool tricks should you ask him. Best...
Hello Guy, Please try as much as possible to take the habit of posting your issues to the Tulip Github (https://github.com/Tulip-Dev/tulip/issues) The graph.applyAlgorithm() naming is a bit ambiguous, it refers to general algorithms such ac Voronoi, Equal value, etc. Louvain is an integer algorithm, so you should call this way: graph.applyIntegerAlgorithm('Louvain') This should solve your problem, Cheers, -- Benjamin On Wed, 3 Oct 2018 at 01:30, Melançon Guy melancon@users.sourceforge.net wrote:...
Hi! Sorry about that. Although the binaries are not distributed yet, wouldn't it work if you compile tulip against your own version of python? Cheers, PS: please now refer to our GitHub page for posting issues: https://github.com/Tulip-Dev/tulip -- Benjamin On Sat, 8 Sep 2018 at 12:46, Matt cyyj1987@users.sourceforge.net wrote: It is rediculous that in order to use this software we have to install a redundant version of python Tulip on Python3.7 https://sourceforge.net/p/auber/discussion/206283/thread/f305ecf3/?limit=25#edcc...
Hi Guy, A quick answer, the unit is the issue. You make a 360dg rotation with 2*pi (pi is 180dg, etc.) the rotation is also counter clockwise is the screen space. -- Benjamin On 6 May 2017 at 03:39, Melançon Guy melancon@users.sf.net wrote: [bugs:#856] https://sourceforge.net/p/auber/bugs/856/ Weird behavior when rotating a triangle* Status: open Group: 3.5.x Created: Fri May 05, 2017 06:39 PM UTC by Melançon Guy Last Updated: Fri May 05, 2017 06:39 PM UTC Owner: nobody I was playing with node shapes,...
Scatterplot 2D - crash when changing graph from different roots
Sorry to push! There is no problem of course to write the piece of code that does...
Dependency to QWidget from ColorMapping
Great! Thanks a lot for all the updates! -- Benjamin On 14 September 2016 at 23:17,...
Hi Antoine, Thanks a lot for the great update! Looking forward to move to Tulip 5...
Some operations are sometimes not so well scheduled depending on your system, and...
I'm not sure of what you mean by "outside of Tulip". So far, we don't gave a default...
Hi Alain, Not a full answer, but this can help you: you can use viewLayout for edges...
Since we're talking about copying properties, I'm just feeding the discussion. I...
Hello Guy, Can you give us some more details on how you're processing exactly? From...
Dear Jot, here in a previous answer: Note that, by default, a metric will be stored...
This might come from a machine limitation, however please report it as in a bug ticket,...
If possible can you give us more precision and share your dataset so we can reproduce...
I used a basic layout called FM^3 it's very efficient for large graphs such as yours....
Alright, no problem, let's go step by step: - first open the .txt file with your...
No step through excel whatsoever, it's much simpler. I just removed the heading lines...
Hi Jot, Thanks, things are much clearer. This is actually a very simple model to...
Hi Jot, We'd need more information on your data to help you. But I think you need...
Because I don't know how's your CSV formatted, and it's not always straightforward...
Hi Jot, Welcome to the Tulip community! To help you, we'll need more precision on...
Quickly answering: are you talking about the StringCollection parameter, which is...
As a side-note, I've given you instructions that are working for a different project...
Hello David, I wouldn't recommend the official linux package as they seem to be outdated...
Dear Yannis, You're looking for the plugin called 'size mapping' (you can find it...
Dear Guy and David, I had a closely related question on the export of high resolution...
Thanks a lot Patrick! I have more or less made the same on my own, although it's...
Well, that may be another of Mac OSX's mysteries :) -- Benjamin On 23 September 2015...
Rendering edges on mac os (NLDV)
Python, vector properties and dataset
Scatterplot 2D - edge observation
Dear J-David, applyXXXAlgorithm actually works differently. Instead of giving the...
Hi Antoine, Great news to read! So we're on the verge of creating a new T(P)SL or...
Hey Antoine, You're the best :) That's exactly what I have in mind! Thanks for the...
Hi Antoine! Yes that's exactly right. I think default path such as tlp/lib/plugins/startup/...
Hi Antoine, Thanks a lot, you rule :) I guess deep copy support will be good for...
Hi there, Is there an efficient way to get a node from its id? Using NetworkX I often...
Hi guys! I was wondering if we have already or if we could hack around a tulip-python-config...
Python - file browser for withParameter
Python - manipulating DataSet as dict
Python, mistake in plugins declaration crashes tulip gui
Python, overloading tlp module crashes the editor
StringCollection in automatic naming (plugins - GUI)
I see, it makes sense indeed especially with output results from the UI. I work it...
I just saw the commit, thanks Antoine!! I just got some time to make new plugins...
I'm trying to manipulate Datasets of graph Attributes in Python. However when I assign...
Hi Antoine, I have an issue that may be related. I'm writing a general algorithm...
Hi Antoine, I have an issue that may be related. I'm writing a general algorithm...
Hi Antoine, I have an issue that may be related. I'm writing a general algorithm...
Hi Antoine, I have an issue that may be related. I'm writing a general algorithm...
Haha, of course! I wonder if this can be hacked however one way or another (but that's...