erhlee-bird/Graph-Visualizer
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
############################################################
# File: README #
# Author: Eric H. Lee (erhlee.bird@gmail.com) #
# Creation Date: 07/11/11 #
# Project: Graph-Visualizer #
############################################################
Version 0.09:
Modified 07/26/11
: Always optimizing and refactoring code.
: Added in a tool to visualize the graph in a matrix
instead of graph form.
: Need to redo some of the nonexistent GUI to add that
part into the main interface.
Version 0.08:
Modified 07/21/11
: Modified the resizing algorithm.
: Fixed some of the GUI interactions like the dragging
and hovering over.
: Moved some code around again and separated out the
pure math functions into a separate file.
: Refactored the code to use some more pythonic code
which will hopefully help with speed optimizing.
Version 0.07:
Modified 07/18/11
: The Display_GV widget was getting a bit cluttered so
I separated some of the nonessential calculations into
another file Assortment_Algorithms.py
: Trying to work up a way to calculate exactly how much
space is needed to draw all the nodes. So far it works
okay but once you get too many nodes, it takes a long
time to overcome collisions so if there are too many
overlaps they just get drawn over each other. Need to
find a way to fix this.
: Because the number of edges gets kind of ridiculous
in files like yeast.gexf, I set the initial value of
showEdges to false so only the important edges are
seen.
Version 0.06:
Modified 07/14/11
: Again some heavy optimization. Used the built in
canvas overlap methods to reduce cost.
: Fixed some little GUI bugs.
: Added Panning to the interface. Click and drag.
: Fixed some weird sizing issues.
: Overlap and Mouse Detection algorithms are using
builtin Tkinter functions and are showing huge
improvements.
: Added a failsafe for when the program can't draw
the entire graph without overlaps. (yeast.gexf)
: Added different formats of graph organization.
: Random - Purely random assortment.
: Size - More heavily connected nodes gravitate
towards the center.
: Hyperbolic - Discovered by accident, but when
plotted, smaller nodes gravitate to the corners
and heavier nodes end up in the center.
: Next step is to work on a Node Explorer that will
work in conjunction with the Mouse Over event. Will
reveal the node in question and list all the edges
and connected nodes.
: Made the pan action right click activated and left
click drag the nodes around.
Version 0.05:
Modified 07/14/11
: Changes were made to optimize the data storage. All
pertinent edges are contained within the Node so that
searching for them is cheap and they are easily
accessible for color-coding.
: Redid the entire drawing system and made Edges a lot
cheaper to draw and analyze.
: Redid my random drawing algorithm to favor larger
nodes towards the center. Looks a lot better than the
previous random layout.
: Made the program a lot more efficient overall and
I'm pleased with how my little "EdgeMaster" excursion
turned out.
Version 0.04:
Modified 07/13/11
: I went and corrected the color coding algorithm and
changed the storage structures for the temporary marks.
: Fixed the Nodes and Edges so that they can reDraw
themselves.
: Got down a good method of calculating the canvas size.
: Gonna work a bit on the UI. So far I have the graph
drawn and interactable in a slightly useless and arcane
manner.
Version 0.03:
Modified 07/12/11
: So I realized I should have split up the info storage
into classes like Node.py and Edge.py but I was excited
and kind of just rushing through so I've just added it.
: I changed the lists to dictionaries so I can keep the
Nodes in order and have a slick way to access them.
: Internalized a lot of the mathematic functions to one
time use in the Node class. A lot less waste. I'm not
explaining it very well but it makes sense.
: Who doesn't love color coding.
: Next up is scaling work. This is gonna be kinda hard.
Version 0.02:
Modified 07/11/11
: Redid the parsing work because the storage system was
much too confusing and stupid.
: I'm doing stuff wrong. It's taking more than a few
seconds to load a relatively small graph. I think I
need to look up how to optimize my list comprehensions.
: Finally managed to figure out the canvas's drawing.
: Coming along nicely.
Version 0.01:
Created 07/10/11
: This is a basic python tool for parsing and visualizing
graphs.
: Got some basic parsing support for .gexf files.
: Got the basic Tkinter Canvas working albeit with some
issues with automatic resizing.