Tidyups for graph.
authorCMDR furrycat <elite@furrycat.net>
Fri, 21 Apr 2017 10:36:42 +0000 (11:36 +0100)
committerCMDR furrycat <elite@furrycat.net>
Fri, 21 Apr 2017 10:36:42 +0000 (11:36 +0100)
Graph can be resized.
Legend isn't cropped.
Agg backend is appropriate for PNG output.
PIL wasn't used.

plugin/faction/faction.py

index faf430d..8739792 100644 (file)
@@ -3,10 +3,9 @@ import datetime
 import hashlib
 import io
 import shlex
-from PIL import Image
 
 import matplotlib
-matplotlib.use('svg')
+matplotlib.use('Agg')
 import matplotlib.dates as md
 import matplotlib.pyplot as plt
 import numpy as np
@@ -950,7 +949,7 @@ class Faction(DBConnection):
       await cat.yelp(message.channel)
     return result
 
-  async def graph_faction_history(self, destination, *, names = None, systems = None):
+  async def graph_faction_history(self, destination, *, names = None, systems = None, width = 1024, height = 768):
     faction_ids = []
     system_ids = []
 
@@ -1033,7 +1032,7 @@ class Faction(DBConnection):
     ax.set_ylim([0, 100])
 
     dpi = 96
-    fig.set_size_inches(1024.0 / dpi, 768.0 / dpi)
+    fig.set_size_inches(float(width) / dpi, float(height) / dpi)
     b = io.BytesIO()
     plt.savefig(b, format = 'png', dpi = dpi, bbox_extra_artists = (legend, ), bbox_inches = 'tight')
     b.seek(0)