5 from pyx
.graph
import *
8 t
= c
.insert(tex
.tex())
9 g
= c
.insert(graphxy(t
, width
=10))
10 g
.plot(data("graph.dat", x
=1, y
=2))
12 c
.writetofile("graph1")
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),
28 y
=linaxis(painter
=mypainter
, part
=manualpart())))
30 line
= g
.plot(function("y=(x-3)*(x-5)*(x-7)"))
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
)
45 c
.writetofile("graph2")