2011年08月29日 星期一 20:42
我在学习"python and tkinter programming"时,看到下面的绘图程序
from Tkinter import *
root = Tk()
root.title('Simple Plot - Version 1')
canvas = Canvas(root, width=450, height=300, bg = 'white')
canvas.pack()
Button(root, text='Quit', command=root.quit).pack()
canvas.create_line(100,250,400,250, width=2)
canvas.create_line(100,250,100,50, width=2)
for i in range(11):
x = 100 + (i * 30)
canvas.create_line(x,250,x,245, width=2)
#canvas.create_text(x,320, text='%d'% (10*i), anchor=N)
for i in range(6):
y = 250 - (i * 40)
canvas.create_line(100,y,105,y, width=2)
canvas.create_text(96,y, text='%5.1f'% (50.*i), anchor=E)
for x,y in [(12, 56), (20, 94), (33, 98), (45, 120), (61, 180),
(75, 160), (98, 223)]:
x = 100 + 3*x
y = 250 - (4*y)/5
canvas.create_oval(x-6,y-6,x+6,y+6, width=1,
outline='black', fill='SkyBlue2')
root.mainloop()
请看,他是怎样最终绘制出曲线的:
for x,y in [(12, 56), (20, 94), (33, 98), (45, 120), (61, 180),
(75, 160), (98, 223)]:
x = 100 + 3*x
y = 250 - (4*y)/5
canvas.create_oval(x-6,y-6,x+6,y+6, width=1,
outline='black', fill='SkyBlue2')
用一个椭圆来表达最终的点,请问,可否用点来表示点?
因为,数据很多的话,用椭圆怎么行?相近但是不通的点,全部都集中到一起了.
2011年08月30日 星期二 12:45
这个程序是绘制一些散列点,没有绘制出曲线,如果你要曲线的话,可以用直线将这些点连接起来试试看。如果觉得不够平滑的话,可以对数据做一个样条曲线插值。
如果你认为用椭圆表示点,数据多的时候看不清。可以用半径更小的椭圆,或者边长很小的正方形。这样看上去就是一个点了。
Zeuux © 2024
京ICP备05028076号