赞
踩
在日常应用程序开发中,图表(折线图,柱状图等)以其直观显示,清晰明了的优势,使得应用范围越来越广泛,本文以一个简单的小例子,简述如何将Tkinter和Matplotlib相互关联起来,在应用程序中嵌入图表,仅供学习分享使用,如有不足之处,还请指正。
涉及知识点
Tkinter 是Python内置的桌面程序开发组件库,包含日常使用的基础组件(如:Label,Button,Entry等),利用Tkinter可以方便的开发可视化程序。
Matlotlib 是一个开源的数据可视化类库,利用matplotlib可以绘制各种类型的图表(如:折线图,柱状图,散点图等)。
Numpy 是一个开源的数学相关的类库,广泛应用于数学计算等领域。本例主要使用Numpy提供的数学函数和随机数生成数据源。
操作步骤
如果要将matplotlib生成图表和Tkinter生成的GUI程序关联起来,需要以下3个步骤:
创建Matplotlib的figure(画布)对象,并在figure上进行绘图。
创建FigureCanvasTkAgg(画布容器)对象,参数为第1步生成的figure对象和容器存放的父对象,并调用创建对象的draw函数。
调用FigureCanvasTkAgg对应组件的Pack方法,将对象显示在页面上。
示例效果图
将Matlotlib生成的曲线图,嵌入到普通的windows程序中,如下图所示:
核心代码
创建图表代码
1 defcreate_matplotlib(self):2 """创建绘图对象"""
3 #设置中文显示字体
4 mpl.rcParams['font.sans-serif'] = ['SimHei'] #中文显示
5 mpl.rcParams['axes.unicode_minus'] = False #负号显示
6 #创建绘图对象f figsize的单位是英寸 像素 = 英寸*分辨率
7 self.figure = plt.figure(num=2, figsize=(7, 4), dpi=80, facecolor="gold", edgecolor='green', frameon=True)8 #创建一副子图
9 fig1 = plt.subplot(1, 1, 1) #三个参数,依次是:行,列,当前索引
10 #创建数据源:x轴是等间距的一组数
11 x = np.arange(-2 * np.pi, 2 * np.pi, 0.1)12 y1 =np.sin(x)13 y2 =np.cos(x)14
15 line1 = fig1.plot(x, y1, color='red', linewidth=2, label='y=sin(x)', linestyle='--') #画第一条线
16 line2 = fig1.plot(x, y2, color='green', label='y=cos(x)')17 plt.setp(line2, linewidth=1, linestyle='-', alpha=0.7) #华第二条线 color='',
18
19 fig1.set_title("数学曲线图", loc='center', pad=20, fontsize='xx-larg
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。