add INSTALL and CHANGES files
[PyX/mjg.git] / manual / graph.py
blobbe0e7b3c39ce0236b47fc2127239b84b0f290dd1
1 #!/usr/bin/env python
2 import sys
3 sys.path.append("..")
4 from pyx import *
5 from pyx.graph import *
7 c = canvas.canvas()
8 t = c.insert(tex.tex())
9 g = c.insert(graphxy(t, width=10))
10 g.plot(data("graph.dat", x=1, y=2))
11 g.finish()
12 c.writetofile("graph1")
15 c = canvas.canvas()
16 t = tex.tex()
18 a, b = 2, 9
20 mypainter=axispainter(baselineattrs=canvas.earrow.normal)
22 g = c.insert(graphxy(t, width=10, x2=None, y2=None,
23 x=linaxis(min=0, max=10,
24 part=manualpart(ticks=(frac(a, 1),
25 frac(b, 1)),
26 texts=("a", "b")),
27 painter=mypainter),
28 y=linaxis(painter=mypainter, part=manualpart())))
30 line = g.plot(function("y=(x-3)*(x-5)*(x-7)"))
31 g.finish()
33 pa = path.path(g.axes["x"].gridpath(a))
34 pb = path.path(g.axes["x"].gridpath(b))
35 (splita,), (splitpa,) = line.path.intersect(pa)
36 (splitb,), (splitpb,) = line.path.intersect(pb)
37 area = (pa.split(splitpa)[0] <<
38 line.path.split(splita, splitb)[1] <<
39 pb.split(splitpb)[0].reversed())
40 area.append(path.closepath())
41 g.stroke(area, canvas.linewidth.THick, canvas.filled(color.gray(0.8)))
42 t.text(g.pos(0.5*(a+b), 0)[0], 1, r"\int_a^b f(x) {\rm d}x", tex.halign.center, tex.style.math)
44 c.insert(t)
45 c.writetofile("graph2")