Commit a1f7d7470fb7c758eca9f234c183cbadcd01c59a

Authored by Christopher Stone
1 parent 4cab8d4c
Exists in master

Improvements to layout code, still needs y-axis label rotating

Showing 1 changed file with 22 additions and 16 deletions   Show diff stats
telemetry/code/monitor/graph_plotter_rewrite.py
... ... @@ -59,38 +59,44 @@ class Plot(pyglet.window.Window):
59 59 def drawHeading(self):
60 60 """Draw a title for the graph (duplicated in the window titlebar, if present"""
61 61 heading = pyglet.text.Label(self.series.title, color=BLACK,
62   - font_name=self.font, font_size=self.height*self.margins[0]*0.6, x=self.width/2, y=self.height,
  62 + font_name=self.font, font_size=self.height*self.margins[0]*0.5,
  63 + x=self.width/2, y=self.height-(self.margins[1]),
63 64 anchor_x='center', anchor_y='top')
64 65 heading.draw()
65 66  
66 67 def drawAxis(self, axis): # axis=0 is x, 1 is y
67   - limita = self.bounds[axis][1]
68   - limitb = self.bounds[axis][0]
69   - start = self.bounds[1-axis][0]
70   - stop = self.bounds[1-axis][1]
  68 + limita = self.bounds[1-axis][1]
  69 + limitb = self.bounds[1-axis][0]
  70 + start = self.bounds[axis][0]
  71 + stop = self.bounds[axis][1]
71 72 increment = float(stop-start)/self.lines[axis]
72 73 for pos in numpy.arange(start, stop+1, increment):
73 74 # Using fp arithmetic to avoid intermittent fencepost errors
74 75 pos = int(pos)
75   - if axis==0:
76   - pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (limita, pos, limitb, pos)),
  76 + if axis==0: # x axis, vertical lines
  77 + pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (pos, limita, pos, limitb)),
77 78 ('c3B', (0, 0, 0, 0, 0, 0)))
78 79 tag = pyglet.text.Label("123", color=BLACK,
79   - font_name=self.font, font_size=self.height*self.margins[1-axis]*0.3,
  80 + font_name=self.font, font_size=self.height*self.margins[1-axis]*0.28,
80 81 x=pos, y=self.height*self.margins[axis],
81 82 anchor_x='left', anchor_y='top')
82   - if axis==1:
83   - pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (pos, limita, pos, limitb)),
  83 + axistitle = pyglet.text.Label(self.series.xname, color=BLACK,
  84 + font_name=self.font, font_size=self.height*self.margins[axis]*0.3,
  85 + x=self.width/2, y=0,
  86 + anchor_x='center', anchor_y='bottom')
  87 + if axis==1: # y axis, horizontal lines
  88 + pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (limita, pos, limitb, pos)),
84 89 ('c3B', (0, 0, 0, 0, 0, 0)))
85 90 tag = pyglet.text.Label("123", color=BLACK,
86   - font_name=self.font, font_size=self.width*self.margins[1-axis]*0.3,
87   - x=self.width*self.margins[axis], y=pos,
  91 + font_name=self.font, font_size=self.width*self.margins[axis]*0.22,
  92 + x=self.width*self.margins[1-axis]*0.9, y=pos,
88 93 anchor_x='right', anchor_y='center')
89   -
  94 + axistitle = pyglet.text.Label(self.series.yname, color=BLACK,
  95 + font_name=self.font, font_size=self.height*self.margins[axis]*0.3,
  96 + x=0, y=self.height/2,
  97 + anchor_x='left', anchor_y='center')
90 98 tag.draw()
91   - axistitle = pyglet.text.Label(self.series.xname, color=BLACK,
92   - font_name=self.font, font_size=self.height*self.margins[0]*0.3, x=self.width/2, y=0,
93   - anchor_x='center', anchor_y='bottom')
  99 +
94 100 axistitle.draw()
95 101  
96 102  
... ...