Skip to content

Commit

Permalink
Cleaned up visualization examples code
Browse files Browse the repository at this point in the history
Added visualization example for a TrapezoidalFuzzyNumber
  • Loading branch information
loginx committed Nov 2, 2010
1 parent c9539a2 commit 2b0e18c
Showing 1 changed file with 20 additions and 41 deletions.
61 changes: 20 additions & 41 deletions examples/visualizations.py
Expand Up @@ -12,13 +12,17 @@
# First, let's create a set of vertices.
v = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

sets = {}

# Now, we create and populate some graphs - C for crisp, F for fuzzy, U for
# undirected, D for directed.
CU = fuzz.Graph(viter = v, directed = False)
CD = fuzz.Graph(viter = v, directed = True)
FD = fuzz.FuzzyGraph(viter = v, directed = True)
FU = fuzz.FuzzyGraph(viter = v, directed = False)
for FG in [FU, FD]:
sets['crisp_undirected_graph'] = fuzz.Graph(viter = v, directed = False)
sets['crisp_directed_graph'] = fuzz.Graph(viter = v, directed = True)
sets['fuzzy_directed_graph'] = fuzz.FuzzyGraph(viter = v, directed = True)
sets['fuzzy_undirected_graph'] = fuzz.FuzzyGraph(viter = v, directed = False)

# Populate the graphs
for FG in [sets['fuzzy_undirected_graph'], sets['fuzzy_directed_graph']]:
FG.connect(1, 2, 0.08)
FG.connect(2, 3, 1.0)
FG.connect(3, 4, 0.9)
Expand All @@ -32,7 +36,7 @@
FG.connect(9, 7, 0.7)
FG.connect(10, 6, 0.5)
FG.connect(2, 10, 0.2)
for CG in [CD, CU]:
for CG in [sets['crisp_directed_graph'], sets['crisp_undirected_graph']]:
CG.connect(1, 2)
CG.connect(2, 3)
CG.connect(3, 4)
Expand All @@ -48,45 +52,20 @@
CG.connect(2, 10)

# We'll also create a polygonal fuzzy number.
trapezoidal = fuzz.PolygonalFuzzyNumber( \
sets['polygonal'] = fuzz.PolygonalFuzzyNumber( \
[(0.0, 0.0), (3.0, 0.5), (4.0, 0.3), (6.0, 0.8), (7.0, 0.2),
(8.0, 0.3), (9.0, 0.2), (10.0, 0.7), (11.0, 0.0)])

triangular = fuzz.TriangularFuzzyNumber(1.0, (0.0, 3.0))

gaussian = fuzz.GaussianFuzzyNumber(1.0, 0.2)
sets['trapezoidal'] = fuzz.TrapezoidalFuzzyNumber((1.0, 2.0), (0.0, 3.0))

sets['triangular'] = fuzz.TriangularFuzzyNumber(1.0, (0.0, 3.0))

# For each object, we initialize a plugin -- in this case, the default -- then
# retrieve the visualization payload in string format.
uvis = fuzz.VisManager.create_backend(FU)
(uvis_format, uvis_data) = uvis.visualize()
dvis = fuzz.VisManager.create_backend(FD)
(dvis_format, dvis_data) = dvis.visualize()
cuvis = fuzz.VisManager.create_backend(CU)
(cuvis_format, cuvis_data) = cuvis.visualize()
cdvis = fuzz.VisManager.create_backend(CD)
(cdvis_format, cdvis_data) = cdvis.visualize()
trapvis = fuzz.VisManager.create_backend(trapezoidal)
(trapvis_format, trapvis_data) = trapvis.visualize()
trivis = fuzz.VisManager.create_backend(triangular)
(trivis_format, trivis_data) = trivis.visualize()
gausvis = fuzz.VisManager.create_backend(gaussian)
(gausvis_format, gausvis_data) = gausvis.visualize()
sets['gaussian'] = fuzz.GaussianFuzzyNumber(1.0, 0.2)

# Finally, we save the visualizations, in their proper format, to disk.
with open("fuzzy_graph.%s" % uvis_format, "wb") as fp:
fp.write(uvis_data)
with open("fuzzy_digraph.%s" % dvis_format, "wb") as fp:
fp.write(dvis_data)
with open("crisp_graph.%s" % cuvis_format, "wb") as fp:
fp.write(cuvis_data)
with open("crisp_digraph.%s" % cdvis_format, "wb") as fp:
fp.write(cdvis_data)
with open("trapezoidal_fuzzy_number.%s" % trapvis_format, "wb") as fp:
fp.write(trapvis_data)
with open("triangular_fuzzy_number.%s" % trivis_format, "wb") as fp:
fp.write(trivis_data)
with open("gaussian_fuzzy_number.%s" % gausvis_format, "wb") as fp:
fp.write(gausvis_data)
for (name, obj) in sets.items():
print name
vis = fuzz.VisManager.create_backend(obj)
(vis_format, data) = vis.visualize()

with open("%s.%s" % (name, vis_format), "wb") as fp:
fp.write(data)

0 comments on commit 2b0e18c

Please sign in to comment.