plot_widget.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 from python_qt_binding.QtCore import Slot, Qt, QTimer, qWarning, Signal
3 from python_qt_binding.QtGui import QColor
4 from python_qt_binding.QtWidgets import QWidget, QVBoxLayout, QSizePolicy
5 from python_qt_binding import QT_BINDING_VERSION
6 from distutils.version import LooseVersion
7 from matplotlib.figure import Figure
8 import operator
9 import numpy as np
10 import copy
11 import threading
12 import rospy
13 from trajectory_msgs.msg import JointTrajectory
14 if LooseVersion(QT_BINDING_VERSION) >= LooseVersion('5.0.0'):
15  from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
16 else:
17  from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
18 
19 
20 class PlotCanvas(FigureCanvas):
21  def __init__(self):
22  super(PlotCanvas, self).__init__(Figure())
23  self.axes = self.figure.add_subplot(111)
24  self.axes.grid(True, color='gray')
25  self.figure.tight_layout()
26  self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
27  self.updateGeometry()
28 
29 
30 class PlotWidget(QWidget):
31  def __init__(self, parent=None):
32  super(PlotWidget, self).__init__(parent)
33  # create widgets
34  self.canvas = PlotCanvas()
35  vbox = QVBoxLayout()
36  vbox.addWidget(self.canvas)
37  self.setLayout(vbox)
38 
39  def draw_curves(self, curve_names, data):
40  self.canvas.axes.clear()
41  self.canvas.axes.grid(True, color='gray')
42  for name in curve_names:
43  xdata, ydata = data[name]
44  self.canvas.axes.plot(xdata, ydata, 'o-', label=name)[0]
45  self.update_legend()
46  self.canvas.draw()
47 
48  def update_legend(self):
49  handles, labels = self.canvas.axes.get_legend_handles_labels()
50  self.canvas.axes.legend(handles, labels, loc='upper left')
def draw_curves(self, curve_names, data)
Definition: plot_widget.py:39


rqt_joint_trajectory_plot
Author(s): Ryosuke Tajima
autogenerated on Mon Nov 2 2020 03:13:10