pipethread EOF fix
[PyX/mjg.git] / test / test_axis.py
blobcc2a6632863cb8818b23c945fbd50df6594b5f15
1 #!/usr/bin/env python
2 import sys, math
3 sys.path[:0] = [".."]
5 from pyx import *
7 l = unit.topt(8)
9 def hpaint(c, x, y, axis, reverse = 0):
10 x, y = map(unit.topt, (x, y))
11 axis.ticks = axis.part.defaultpart(axis.min/axis.divisor, axis.max/axis.divisor, 0, 0)
12 axis.tickpoint = lambda axis, v, x=x, y=y, l=l: (x+v*l, y)
13 axis.tickdirection = lambda axis, v, reverse=reverse: (0, -1 + 2*reverse)
14 axis.vbaseline = lambda axis, v1, v2, x=x, y=y, l=l: path._line(x+v1*l, y, x+v2*l, y)
15 axis.painter.paint(c, axis)
17 def vpaint(c, x, y, axis, reverse = 0):
18 x, y = map(unit.topt, (x, y))
19 axis.ticks = axis.part.defaultpart(axis.min/axis.divisor, axis.max/axis.divisor, 0, 0)
20 axis.tickpoint = lambda axis, v, x=x, y=y, l=l: (x, y+v*l)
21 axis.tickdirection = lambda axis, v, reverse=reverse: (-1 + 2*reverse, 0)
22 axis.vbaseline = lambda axis, v1, v2, x=x, y=y, l=l: path._line(x, y+v1*l, x, y+v2*l)
23 axis.painter.paint(c, axis)
25 def cpaint(c, x, y, axis):
26 x, y = map(unit.topt, (x, y))
27 axis.ticks = axis.part.defaultpart(axis.min/axis.divisor, axis.max/axis.divisor, 0, 0)
28 axis.tickpoint = lambda axis, v, x=x, y=y, l=l: (x+l/2*math.cos(v*2*math.pi), y+l/2*math.sin(v*2*math.pi))
29 axis.tickdirection = lambda axis, v: (math.cos(v*2*math.pi), math.sin(v*2*math.pi))
30 axis.vbaseline = lambda axis, v1, v2, x=x, y=y, l=l: path._circle(x, y, l/2)
31 axis.painter.paint(c, axis)
33 c = canvas.canvas()
34 t = c.insert(tex.tex())
35 lintest = {"title": "axis title", "min": 0, "max": 1, "part": graph.linpart(("0.25", "0.1/0.8"))}
36 c.tex = t
37 hpaint(c, 0, 0, graph.linaxis(**lintest))
38 hpaint(c, 0, 1, graph.linaxis(**lintest), reverse=1)
39 hpaint(c, 0, 5, graph.linaxis(painter=graph.axispainter(labelattrs=tex.direction(45), titleattrs=tex.direction(45)), **lintest))
40 hpaint(c, 0, 8, graph.linaxis(painter=graph.axispainter(labelattrs=(tex.direction(45), tex.halign.right), titleattrs=tex.direction(-45)), **lintest))
41 vpaint(c, 11, 0, graph.linaxis(painter=graph.axispainter(tickattrs=color.rgb.red, innerticklengths=0, outerticklengths=graph.axispainter.defaultticklengths), **lintest))
42 vpaint(c, 12, 0, graph.linaxis(painter=graph.axispainter(tickattrs=(None, (color.rgb.green,))), **lintest), reverse=1)
43 vpaint(c, 16, 0, graph.linaxis(painter=graph.axispainter(expfracminexp=1), **lintest))
44 vpaint(c, 18, 0, graph.linaxis(painter=graph.axispainter(fractype=graph.axispainter.fractyperat), **lintest))
45 lintest = {"title": "axis title", "min": -2*math.pi, "max": 0, "divisor": math.pi, "suffix": r"\pi", "part": graph.linpart("0.25")}
46 hpaint(c, 0, 11, graph.linaxis(**lintest))
47 lintest = {"title": "axis title", "min": 0, "max": 2*math.pi, "divisor": math.pi, "suffix": r"\pi", "part": graph.linpart("0.5")}
48 hpaint(c, 10, 11, graph.linaxis(painter=graph.axispainter(ratfracover="/"), **lintest))
49 lintest = {"min": 0, "max": 2*math.pi, "divisor": math.pi, "suffix": r"\pi", "part": graph.linpart("0.125")}
50 cpaint(c, 4, 17, graph.linaxis(**lintest))
51 lintest = {"min": 0, "max": 2*math.pi, "divisor": math.pi/180, "part": graph.linpart("30")}
52 cpaint(c, 14, 17, graph.linaxis(painter=graph.axispainter(labeldirection=graph.axispainter.paralleltext), **lintest))
53 c.writetofile("test_axis", paperformat="a4")