matplotlib embeded in Python Qt

import sys
import numpy as np
from qtpy.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,QPushButton
from matplotlib.backends.backend_qtagg import FigureCanvas, NavigationToolbar2QT as NavigationToolbar
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation


class MainWin(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("matplotlib embeded in Python Qt")
        self.initUI()
        self.plotfig()
        
    def initUI(self):
        self.fig = plt.figure()
        self.canvas=FigureCanvas(self.fig)
        # self.figtoolbar=NavigationToolbar(self.canvas, self)
        
        self.btn_start=QPushButton("start")
        self.btn_pause=QPushButton("pause")
        hlayout=QHBoxLayout()
        hlayout.addStretch(1)
        hlayout.addWidget(self.btn_start)
        hlayout.addWidget(self.btn_pause)
        hlayout.addStretch(1)
        
        vlayout=QVBoxLayout()
        # vlayout.addWidget(self.figtoolbar)
        vlayout.addWidget(self.canvas)
        vlayout.addLayout(hlayout)
        widget=QWidget()
        widget.setLayout(vlayout)
        self.setCentralWidget(widget)
        
        
            
    def plotfig(self):
    	gamma = 2.2
    	ax = self.fig.subplots()
    	self.x = np.arange(0, 256, 1)
    	self.y1= 255 / (pow(255,gamma))   *    (pow(self.x,gamma))
    	self.y2= 255 / (pow(255,1/gamma))   *    (pow(self.x,1/gamma))
    	self.y3= self.x
    	ax.plot(self.y1,'r',label='gamma = 2.2')
    	ax.plot(self.y2,'b',label='gamma = 1/2.2')
    	ax.plot(self.y3,'--',)
        ax.legend() # 为当前axes放置标签
    	ax.autoscale_view()

		# self.t = np.linspace(0,2*np.pi,50)
        # self.lines=ax.plot(np.sin(self.t))
        # ax.autoscale_view()
        # 
        # def aniupdate(i):
        #     t=self.t+2*np.pi*i/50
        #     self.lines[0].set_ydata(np.sin(t))
        #     return self.lines
        # self.ani=FuncAnimation(self.fig, aniupdate, interval=100)
        # self.btn_start.clicked.connect(self.ani.resume)
        # self.btn_pause.clicked.connect(self.ani.pause)

        
app=QApplication(sys.argv)
win = MainWin()
win.show()
sys.exit(app.exec())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值