如果您希望具有最低代码占用空间的高性能,不要超过Python内置的绘图库tkinter.不需要编写特殊的C/C++代码或使用大型绘图包来获得比50 fps更好的性能.
以下代码在3.4 GHz Core i3上的2.2 GHz Core 2二重奏,1000 fps时以400 fps滚动1000×200条形图.中央程序“滚动条”在右边缘绘制一组数据点和相应的颜色以及可选的垂直网格条,然后将条形图向左滚动1.绘制水平网格条只需将它们包含在数据和颜色中数组作为常量以及可变数据点.
from tkinter import *
import math, random, threading, time
class StripChart:
def __init__(self, root):
self.gf = self.makeGraph(root)
self.cf = self.makeControls(root)
self.gf.pack()
self.cf.pack()
self.Reset()
def makeGraph(self, frame):
self.sw = 1000
self.h = 200
self.top = 2
gf = Canvas(frame, width=self.sw, height=self.h+10,
bg="#002", bd=0, highlightthickness=0)
gf.p = PhotoImage(width=2*self.sw, height=self.h)
self.item = gf.create_image(0, self.top, image=gf.p, ancho