Appendix C. Examples

All these example can be be run and printed from the Python console.
ishi@~> python
Python 2.2.1 (#1, Apr 11 2002, 15:27:15)
[GCC 2.95.3 20010315 (release)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Kplot
>>> Kplot.Polygon.examplesource()
        def example():
                import Kplot

                print "Polygon example"

                x = [1, 4, 4, 1]
                y = [1, 1, 4, 4]
                polygon = Kplot.Polygon(x, y, fillstyle="crosshatched", color="blue")

                dev = Kplot.makeDevice()
                panel = dev.getPanel()
                panel.add(polygon)
                panel.setWorld(p1=(0, 0), p2=(5, 5))
                dev.output()
                dev.close()

>>> Kplot.Polygon.example()
Polygon example
 Type <RETURN> for next page:
>>>
		

example: Kplot.Polyline

	def example():
		import Kplot

		print "Polyline example"
		polyline = Kplot.Polyline(range(6), [20,0,40,30,10,20], linewidth=2, linestyle="dashed")

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(polyline)
		panel.setWorld(p1=(0, 0), p2=(5, 40))
		dev.output()
		dev.close()


example: Kplot.Polygon

	def example():
		import Kplot
		
		print "Polygon example"

		x = [1, 4, 4, 1]
		y = [1, 1, 4, 4]
		polygon = Kplot.Polygon(x, y, fillstyle="crosshatched", color="blue")

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(polygon)
		panel.setWorld(p1=(0, 0), p2=(5, 5))
		dev.output()
		dev.close()


example: Kplot.Text

	def example():
		import Kplot

		print "Text example"

		# default world coordinates are (0, 0)-(1,1), so (0.5, 0.5) is the middle
		# when units are set to cm, the weight is also in cm, a weight of 0.1cm(=1mm) looks better
		text = Kplot.Text("Test", (0.5, 0.5), color="blue", bgcolor="white", valign="top", fontsize=2, units="cm", weight=0.1)

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(text)
		dev.output()
		dev.close()


example: Kplot.Image

	def example():
		import Kplot
		import Numeric

		print "Image example"

		data = []
		for i in range(4):
			# add row, data[0] is first row seen from bottom, going from left
			# to right
			data.append((Numeric.arange(0,20)+i)%20)

		image = Kplot.Image(data)

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(image)
		p1 = (0.5, 0.5)
		p2 = (20.5, 4.5)
		panel.setWorld(p1, p2)
		dev.output()
		dev.close()


example: Kplot.Line

	def example():
		import Kplot

		print "Line example"
		line = Kplot.Line((-1, -5), (10, 20), linestyle="dotted")

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(line)
		panel.setWorld(p1=(-2, -10), p2=(15, 30))
		dev.output()
		dev.close()


example: Kplot.Point

	def example():
		import Kplot

		print "Point example"
		point = Kplot.Point((2, 2), Kplot.points.x, units="cm", pointsize=4)

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(point)
		panel.setWorld(p1=(0, 0), p2=(4, 4))
		dev.output()
		dev.close()


example: Kplot.Points

	def example():
		import Kplot

		print "Points example"
		x = [0, 1, 2, 3, 4]
		y = [4, 1, 0, 3, 2]
		point = Kplot.Points(x, y, Kplot.points.x)

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(point)
		panel.setWorld(p1=(0, 0), p2=(4, 4))
		dev.output()
		dev.close()


example: Kplot.Rectangle

	def example():
		import Kplot

		print "Rectangle example"
		rect = Kplot.Rectangle((2, 2), (13, 8), fillstyle="hatched")

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(rect)
		panel.setWorld(p1=(0, 0), p2=(15, 15))
		dev.output()
		dev.close()


example: Kplot.Scatter

	def example():
		import Kplot
		import Numeric
		import RandomArray

		print "Scatter example"

		x = Numeric.arange(0, 10.5, 0.5)
		y = x ** 2 + RandomArray.random(len(x)) * 10
		scatter = Kplot.Scatter(x, y, Kplot.points.x)

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(scatter)
		panel.setWorld(p1=(0, 0), p2=(10, 110))
		dev.output()
		dev.close()


example: Kplot.Histogram

	def example():
		import Kplot

		print "Histogram example"

		binned = [1,5,7,2,4,9,6,2,5,8]
		hist = Kplot.Histogram(binned)

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(hist)
		panel.setWorld(p1=(0, 0), p2=(len(binned), max(binned)*1.1))
		dev.output()
		dev.close()


example: Kplot.Arrow

	def example():
		import Kplot

		print "Arrow example"
		arrow1 = Kplot.Arrow((0, 0), (1, 1), headsize=0.5, headbarb=0.1, headangle=toradians(15))
		arrow2 = Kplot.Arrow((1, 0), (0, 1))

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(arrow1, arrow2)
		dev.output()
		dev.close()


example: Kplot.Wedge

	def example():
		import Kplot

		print "Wedge example"

		row0 = range(10)
		row1 = range(10)
		row0.reverse() # reverse bottom row

		image = Kplot.Image([row0, row1])
		wedge = Kplot.Wedge(image, "right")

		dev = Kplot.makeDevice()

		panel = dev.getPanel()
		wedgepanel, imagepanel = panel.split(0.2, "horizontal")
		wedgepanel.add(wedge)
		imagepanel.add(image)

		p1 = (0.5, 0.5)
		p2 = (image.getWidth()+0.5, image.getHeight()+0.5)
		imagepanel.setWorld(p1, p2)

		dev.output()
		dev.close()


example: Kplot.Axis

	def example():
		import Kplot

		print "Axis example"
		bottomaxis = Kplot.Axis(side="bottom", ticks=range(0, 16, 3))
		leftaxis = Kplot.Axis(side="left", ticks=range(11))

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(bottomaxis)
		panel.add(leftaxis)
		panel.setWorld(p1=(0, 0), p2=(15, 10))
		dev.output()
		dev.close()


example: Kplot.Box

	def example():
		import Kplot

		print "Box example"

		box = Kplot.Box()
		box.rightlabeling = True
		box.rightaxis.textangle = Kplot.toradians(30)
		box.grid.color = "blue"
		box.leftaxis.ticklength = -5
		box.leftaxis.subticklength = -2
		box.leftaxis.labeloffset = 1

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(box)
		panel.setWorld(p1=(0, 0), p2=(15, 10))
		dev.output()
		dev.close()


example: Kplot.Grid

	def example():
		import Kplot

		print "Grid example"

		grid = Kplot.Grid(xticks=range(1,6), yticks=range(25,76, 25))

		dev = Kplot.makeDevice()
		panel = dev.getPanel()
		panel.add(grid)
		panel.setWorld(p1=(0, 0), p2=(6, 100))
		dev.output()
		dev.close()