Python和科学计算认证群组  - 讨论区

标题:tkinter绘制图形

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号