Skip to content

Commit

Permalink
Implement graphs
Browse files Browse the repository at this point in the history
  • Loading branch information
leynier committed Nov 23, 2020
1 parent f2512bf commit 1873e41
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 0 deletions.
11 changes: 11 additions & 0 deletions fuzzpy/base_set.py
@@ -1,5 +1,6 @@
from typing import Any, Callable

import matplotlib.pyplot as plt
from numpy import arange

from .membership import Membership
Expand Down Expand Up @@ -46,3 +47,13 @@ def __len__(self):

def __str__(self) -> str:
return self.name

def graph(self, step: float = 0.05):
x_data = self.domain(step=step)
y_data = [self.membership(x) for x in x_data]
plt.figure()
plt.title(self.name)
plt.xlabel("Domain values")
plt.ylabel("Membership grade")
plt.plot(x_data, y_data)
plt.savefig(f"set_{self.name}.png")
13 changes: 13 additions & 0 deletions fuzzpy/base_var.py
@@ -1,5 +1,7 @@
from typing import Any, Callable, List, Optional, Tuple, Union, cast

import matplotlib.pyplot as plt

from .base_set import BaseSet
from .membership import Membership
from .predicates import Predicate
Expand Down Expand Up @@ -74,5 +76,16 @@ def __add__(
self.sets.update({set.name: set for set in temp})
return self

def graph(self, step: float = 0.05):
plots = []
plt.figure()
for it, desc in enumerate(self.sets.values()):
x_data = desc.domain(step=step)
y_data = [desc.membership(x) for x in x_data]
plots.append(plt.plot(x_data, y_data, f"C{it+1}", label=desc.name))
plt.legend()
plt.title(self.name)
plt.savefig(f"var_{self.name}.png")

def __str__(self) -> str:
return self.name
5 changes: 5 additions & 0 deletions fuzzpy/main.py
Expand Up @@ -37,6 +37,11 @@ def run():
sales_percent_var += "normal", LambdaMembership(30, 60, 90)
sales_percent_var += "high", GammaMembership(90, 100)

variety_var.graph()
diversity_percent_var.graph()
clients_percent_var.graph()
sales_percent_var.graph()

mamdani = MamdaniSystem(defuzz_func=centroid_defuzzification)
mamdani += (
variety_var.into("low")
Expand Down

0 comments on commit 1873e41

Please sign in to comment.