diff --git a/example.json b/example.json index c6334ca..65e14b4 100644 --- a/example.json +++ b/example.json @@ -1,10 +1,10 @@ { "members": [ - {"name": "Alice", "gender": "f"}, - {"name": "Bob", "gender": "m"}, - {"name": "Sam", "gender": "o"}, - {"name": "Eve", "gender": "f"}, - {"name": "Charles", "gender": "m"}, - {"name": "Max", "gender": "o"} + {"name": "Alice", "color": "pink"}, + {"name": "Bob", "color": "blue"}, + {"name": "Sam", "color": "green"}, + {"name": "Eve", "color": "pink"}, + {"name": "Charles", "color": "blue"}, + {"name": "Max", "color": "yellow"} ], "relationships": [ diff --git a/polygraph.py b/polygraph.py index 9ae047a..9b06400 100755 --- a/polygraph.py +++ b/polygraph.py @@ -4,22 +4,11 @@ import pygraphviz as pgv import json import argparse -# These are the attributes to use for color-coding the graphs - -# Three gender colours, so that we encapsulate masculine, feminine, and a catch-all for other identities -# If you'd rather explicitly colour-code other identities, just add them :) -gender_colors = { - 'm': 'blue', - 'f': 'pink', - 'o': 'green', - } - - def parse_args(): parser = argparse.ArgumentParser(description='Generate graphs of polyamorous family networks from data files') parser.add_argument('--input', '-i', default='network.json', help='Input file in json format') parser.add_argument('--output', '-o', default='network.png', help='Output image file. Format auto-detected from file extension') - parser.add_argument('--gender', '-g', action='store_true', help='Indicate gender in output graph') + parser.add_argument('--gender', '-g', action='store_true', help='Include gender colors in output graph') return parser.parse_args() @@ -38,11 +27,10 @@ def main(): graph.edge_attr['arrowsize'] = 0.5 # Add nodes to graph - gender_color = 'white' - for user in data['members']: + gender_color = 'white' if settings.gender: - gender_color = gender_colors[user['gender']] + gender_color = user['color'] graph.add_node(user['name'], fillcolor=gender_color)