示例#1
0
def scatterplot(data, title='Scatter plot', symbol=None, X=None):
    "multiline scater plot"
    from graph import GraphBase, GraphLine, GraphSymbols, GraphObjects
    from plotAscii import PSprint, initSH
    SH = initSH()
    try:
        npt = len(data[0])
    except TypeError:
        print 'Input Error, multiple line vectors required'
        return
    rows = len(data)
    top = Toplevel()
    top.title(title)
    graph = GraphBase(top, 300, 300, relief=SUNKEN, border=2)
    w = string.atoi(graph.canvas.cget('width'))
    h = string.atoi(graph.canvas.cget('height'))
    bb = graph._textBoundingBox(title)
    x = w / 2 - (bb[2] - bb[0]) / 2
    y = .05 * h
    graph.canvas.create_text(x, y, text=title, anchor=W, font=SH['font'])

    #    markers=['circle','square','cross','plus','dot','triangle','triangle_down']
    lines = []
    for j in range(rows):
        npt = []
        da = data[j]
        npts = len(da)
        if X != None:
            xa = X[j]
            if len(xa) < npts: xa = range(npts)
        else:
            xa = range(npts)
        for i in range(npts):
            npt.append((xa[i], da[i]))
        line = GraphLine(npt, color='blue')
        lines.append(line)
        # plot symbols
        if symbol != None:
            npt_s = linesubset(npt)
            #	    sym = markers[j%7]
            linea = GraphSymbols(npt_s,
                                 color='blue',
                                 marker='circle',
                                 size=1.5,
                                 fillcolor='blue')
            lines.append(linea)

    graphObject = GraphObjects(lines)
    graph.pack(side=TOP, fill=BOTH, expand=YES)
    graph.draw(graphObject, 'automatic', 'automatic')
    Button(
        top,
        text='Print',
        command=lambda g=graph, p=SH['printer']: PSprint(g, p)).pack(side=LEFT)
    Button(top, text='Close', command=top.destroy).pack(side=LEFT)
    top.mainloop()
示例#2
0
文件: tv.py 项目: eddienko/SamPy
def lineplot(data,title='Line plot',symbol=None,X=None):
	from graph import GraphBase,GraphLine,GraphSymbols,GraphObjects 
	from plotAscii import PSprint,initSH
	SH = initSH()
	npt = []
	for i in range(len(data)):
	    if X != None:
		npt.append((X[i],data[i]))
	    else:
		npt.append((float(i),data[i]))
	top = Toplevel()
	top.title(title) 
	graph = GraphBase(top,300,300,relief=SUNKEN,border=2)

	w = string.atoi(graph.canvas.cget('width'))
	h = string.atoi(graph.canvas.cget('height'))
	bb  = graph._textBoundingBox(title)
	x = w/2-(bb[2]-bb[0])/2
	y = .05*h
	graph.canvas.create_text(x,y,text=title,anchor=W,font=SH['font'])

	line = GraphLine(npt,color='blue')
	# plot symbols
	if symbol != None:
	    npt_s = linesubset(npt)
	    linea = GraphSymbols(npt_s,color='blue',marker='circle',size=1.5,
		fillcolor='blue')
	    graphObject = GraphObjects([line,linea])
	else:
	    graphObject = GraphObjects([line])

	graph.pack(side=TOP,fill=BOTH,expand=YES)
	graph.draw(graphObject,'automatic','automatic')
	Button(top,text='Print',command=lambda g=graph,p=SH['printer']: PSprint(g,p)).pack(side=LEFT)
	Button(top,text='Close',command=top.destroy).pack(side=LEFT)
示例#3
0
文件: tv.py 项目: eddienko/SamPy
def scatterplot(data,title='Scatter plot',symbol=None,X=None):
    "multiline scater plot"
    from graph import GraphBase,GraphLine,GraphSymbols,GraphObjects 
    from plotAscii import PSprint,initSH
    SH = initSH()
    try:
        npt = len(data[0]) 
    except TypeError:
	print 'Input Error, multiple line vectors required'
	return	
    rows = len(data)
    top = Toplevel()
    top.title(title) 
    graph = GraphBase(top,300,300,relief=SUNKEN,border=2)
    w = string.atoi(graph.canvas.cget('width'))
    h = string.atoi(graph.canvas.cget('height'))
    bb  = graph._textBoundingBox(title)
    x = w/2-(bb[2]-bb[0])/2
    y = .05*h
    graph.canvas.create_text(x,y,text=title,anchor=W,font=SH['font'])


#    markers=['circle','square','cross','plus','dot','triangle','triangle_down']
    lines = []
    for j in range(rows):
	npt = []
	da = data[j]
	npts = len(da)
	if X != None: 
		xa = X[j]
		if len(xa) < npts: xa = range(npts)
	else: 
		xa = range(npts)
	for i in range(npts): npt.append((xa[i],da[i]))
	line = GraphLine(npt,color='blue')
	lines.append(line)
	# plot symbols
	if symbol != None:
	    npt_s = linesubset(npt)
#	    sym = markers[j%7]
	    linea = GraphSymbols(npt_s,color='blue',marker='circle',size=1.5,
		fillcolor='blue')
	    lines.append(linea)

    graphObject = GraphObjects(lines)
    graph.pack(side=TOP,fill=BOTH,expand=YES)
    graph.draw(graphObject,'automatic','automatic')
    Button(top,text='Print',command=lambda g=graph,p=SH['printer']: PSprint(g,p)).pack(side=LEFT)
    Button(top,text='Close',command=top.destroy).pack(side=LEFT)
    top.mainloop()
示例#4
0
def lineplot(data, title='Line plot', symbol=None, X=None):
    from graph import GraphBase, GraphLine, GraphSymbols, GraphObjects
    from plotAscii import PSprint, initSH
    SH = initSH()
    npt = []
    for i in range(len(data)):
        if X != None:
            npt.append((X[i], data[i]))
        else:
            npt.append((float(i), data[i]))
    top = Toplevel()
    top.title(title)
    graph = GraphBase(top, 300, 300, relief=SUNKEN, border=2)

    w = string.atoi(graph.canvas.cget('width'))
    h = string.atoi(graph.canvas.cget('height'))
    bb = graph._textBoundingBox(title)
    x = w / 2 - (bb[2] - bb[0]) / 2
    y = .05 * h
    graph.canvas.create_text(x, y, text=title, anchor=W, font=SH['font'])

    line = GraphLine(npt, color='blue')
    # plot symbols
    if symbol != None:
        npt_s = linesubset(npt)
        linea = GraphSymbols(npt_s,
                             color='blue',
                             marker='circle',
                             size=1.5,
                             fillcolor='blue')
        graphObject = GraphObjects([line, linea])
    else:
        graphObject = GraphObjects([line])

    graph.pack(side=TOP, fill=BOTH, expand=YES)
    graph.draw(graphObject, 'automatic', 'automatic')
    Button(
        top,
        text='Print',
        command=lambda g=graph, p=SH['printer']: PSprint(g, p)).pack(side=LEFT)
    Button(top, text='Close', command=top.destroy).pack(side=LEFT)