wxPython+Matplotlib绘制折线图表

yipeiwu_com5年前Python基础

使用Matplotlib在wxPython的Panel上绘制曲线图,需要导入:

import numpy
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure

下面直接贴出源代码:

#coding=utf-8
"""
程序的主入口
"""
import wx
import numpy
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.figure import Figure

class FirseFrame(wx.Frame):
 def __init__(self, parent=None, id=-1, title='', pos=wx.DefaultSize, size=wx.DefaultSize, style= wx.DEFAULT_FRAME_STYLE):

  wx.Frame.__init__(self, parent, id, title, pos, size, style)

  self.InitUI()
  pass
 def InitUI(self):
  self.SetBackgroundColour('white')

  self.scorePanel = wx.Panel(self)
  scores = [89, 98, 70, 80, 60, 78, 85, 90]
  sum = 0
  for s in scores:
   sum += s
  average = sum / len(scores)

  t_score = numpy.arange(1, len(scores) + 1, 1)
  s_score = numpy.array(scores)

  self.figure_score = Figure()
  self.figure_score.set_figheight(3.6)
  self.figure_score.set_figwidth(7.8)
  self.axes_score = self.figure_score.add_subplot(111)

  self.axes_score.plot(t_score, s_score, 'ro', t_score, s_score, 'k')
  self.axes_score.axhline(y=average, color='r')
  self.axes_score.set_title(u'My Scores')
  self.axes_score.grid(True)
  self.axes_score.set_xlabel('T')
  self.axes_score.set_ylabel('score')
  FigureCanvas(self.scorePanel, -1, self.figure_score)
  pass


class MainApp(wx.App):
 def OnInit(self):
  style = wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX
  self.frame = FirseFrame(id=-1, title=u'第一个窗口', pos=(10, 10), size=(340, 550), style=style)
  self.frame.Show()
  return True

def main():
 app = MainApp()
 app.MainLoop()

if __name__ == "__main__":
 main()

效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

pandas实现DataFrame显示最大行列,不省略显示实例

如下所示: import pandas as pd #显示所有列 pd.set_option('display.max_columns', None) #显示所有行 pd.set_...

Python采用Django制作简易的知乎日报API

Python采用Django制作简易的知乎日报API

现在我主要教大家如何去实战,做一个简易的知乎日报API 首先你要熟悉django的基本用法,会写模型,会写视图函数,会配置url。 1.配置字符编码 因为我们等一下要使用中文,所以要先...

Python脚本利用adb进行手机控制的方法

一.  adb 相关命令:   1. 关闭adb服务:adb kill-server   2. 启动adb服务  adb start-server   3. 查询当前...

简单的Python的curses库使用教程

简单的Python的curses库使用教程

curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法。curses 是大多数类似于 UNIX 的系统(包括 Linux)的标准部分,而且它已经移植到 Windo...

放弃 Python 转向 Go语言有人给出了 9 大理由

放弃 Python 转向 Go语言有人给出了 9 大理由

转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一...