Python Help with .dot code for Graphviz

  • Thread starter Thread starter UFSJ
  • Start date Start date
  • Tags Tags
    Code
AI Thread Summary
The discussion revolves around creating a network graph with approximately 1500 nodes using Graphviz, focusing on geographic coordinates and specific visual attributes. The user seeks to represent nodes as small black circles without labels, similar to a referenced example created with Python's NetworkX and Basemap. The provided code snippet illustrates a basic structure with 10 nodes and their connections.Participants suggest that while Graphviz can be used for this task, the complexity of handling many nodes may necessitate a script in languages like Python or Perl to generate the .dot file efficiently. There is also a debate on whether to overlay the graph on a map using Photoshop or to automate the entire process, with the latter possibly requiring different tools beyond Graphviz. For users working in Linux, combining Graphviz output with a map image using ImageMagick is mentioned as a feasible solution.
UFSJ
Messages
13
Reaction score
2
Hi guys!

I'm completely new with dot code to make graph by graphviz and I'm calling by any help. I would like to make a network of, approximately, 1500 nodes, with each node with its position (geographic coordinate) and its own group of bounded nodes. Some nodes have the same position. These nodes may be represented by points with negligible size and bounded by edges represented by thin lines. I would like to obtain some thing like this: https://tuangauss.github.io/projects/networkx_basemap/networkx_basemap.html , but with an unique size for the circle nodes (smaller than the shown picture), with unique color (black) and without label. Below, I let my code with a reduced number of nodes (just 10 nodes).

[CODE lang="python" title="My code:"]strict graph {
node [shape = circle size=0.1];
1 [pos="-61.9961281,-11.9296913!"];
2 [pos="-63.0330696,-9.90765190!"];
3 [pos="-63.0330696,-9.90765190!"];
4 [pos="-61.4420509,-11.4333000!"];
5 [pos="-61.4420509,-11.4333000!"];
6 [pos="-60.8168373,-13.1869869!"];
7 [pos="-60.5454292,-13.1174307!"];
8 [pos="-64.2279739,-12.4367161!"];
9 [pos="-61.0130920,-11.5321751!"];
10 [pos="-65.3327789,-10.7804241!"];
1 -- 4 ;
1 -- 8 ;
1 -- 9 ;
2 -- 3 ;
2 -- 4 ;
2 -- 6 ;
2 -- 7 ;
2 -- 9 ;
2 -- 10 ;
3 -- 4 ;
3 -- 6 ;
3 -- 7 ;
3 -- 10 ;
4 -- 6 ;
4 -- 8 ;
4 -- 9 ;
4 -- 10 ;
6 -- 7 ;
6 -- 9 ;
6 -- 10 ;
7 -- 10 ;
8 -- 9 ;
}[/CODE]

I thanks a lot by any kind of help.
 
Technology news on Phys.org
Well that image uses the Python modules Networx and Basemap, but yoy can do this in graphviz too. The graphviz documentation is not easy to follow and it is always easier to start with something close and amend it. Something like this (follow link for demo)?

[CODE lang="python"]
# Using neato engine.

graph {
graph [bgcolor=lightgray]

# Default node styles.
node [style=filled label="" shape=circle width=0.5]

# Nodes.
a [width="1" fillcolor="red" pos="0.5,1!" label="⌂"]
b [fillcolor="blue" pos="0,3!"]
c [width=0 pos="3,1.5!"]
d [fillcolor="orange" pos="-1,0!"]

# Edges.
a -- b
a -- c
a -- d
}
[/CODE]
 
Is it acceptable to make a diagram without the map, but with locations that you can use photoshop to overlay the graph on a map, or do you want a completely automated program? I think that the first option would not be too hard, but an automated program with a map might require a different tool than Graphviz.
With so many nodes, the first option would require a program (Perl, Python, etc.) with the logic to generate a .dot file with the desired commands. The second option might require using a different tool as discussed here.
 
The OP is working in linux (see another thread) and it is a simple matter to combine the graphviz output with a map image using imagemagic's composite command in a script.
 
  • Like
Likes FactChecker
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I had a Microsoft Technical interview this past Friday, the question I was asked was this : How do you find the middle value for a dataset that is too big to fit in RAM? I was not able to figure this out during the interview, but I have been look in this all weekend and I read something online that said it can be done at O(N) using something called the counting sort histogram algorithm ( I did not learn that in my advanced data structures and algorithms class). I have watched some youtube...

Similar threads

Back
Top