code: def _packetlist_timeskew_graph(self, ip, **kargs):
        # noqa: E501
  
      # Filter TCP segments which source address is 'ip'
      tmp = (self._elt2pkt(x) for x in self.res)
      b = (x for x in tmp if IP in x and x[IP].src == ip and TCP in x)
  
      # Build a list of tuples (creation_time, replied_timestamp)
      c = []
      tsf = ICMPTimeStampField("", None)
      for p in b:
          opts = p.getlayer(TCP).options
          for o in opts:
              if o[0] == "Timestamp":
                  c.append((p.time, tsf.any2i("", o[1][0])))
  
      # Stop if the list is empty
      if not c:
          warning("No timestamps found in packet list")
          return []
  
      # Prepare the data that will be plotted
      first_creation_time = c[0][0]
      first_replied_timestamp = c[0][1]
  
      def _wrap_data(ts_tuple, wrap_seconds=2000):
          """Wrap the list of tuples."""
  
          ct, rt = ts_tuple  # (creation_time, replied_timestamp)
          X = ct % wrap_seconds
          Y = ((ct - first_creation_time) - ((rt - first_replied_timestamp) / 1000.0))  # noqa: E501
  
          return X, Y
  
      data = [_wrap_data(e) for e in c]
  
      # Mimic the default gnuplot output
      if kargs == {}:
          kargs = MATPLOTLIB_DEFAULT_PLOT_KARGS
      lines = plt.plot(data, **kargs)
  
      # Call show() if matplotlib is not inlined
      if not MATPLOTLIB_INLINED:
          plt.show()
  
      return lines
docs: Tries to graph the timeskew between the timestamps and real time for a given ip