code: def _draw_lineplot(self, ylabel, df, axes, line_color):
      line_style = self.plot_style.line
      axes.plot(
          df["x"],
          df["y"],
          linewidth=line_style["width"],
          c=line_color,
          marker="o",
      )
  
      for _, row in df.iterrows():
          x, y = row["x"], row["y"]
          bbox_props = {
              "facecolor": line_color,
              "edgecolor": "none",
              "boxstyle": "square,pad=0.5",
          }
  
          axes.text(
              x,
              y,
              f"{y:.3f}",
              ha="center",
              va="top",
              bbox=bbox_props,
              color="#ffffff",
              fontdict=line_style["fontdict"],
          )
  
      axes.set_ylabel(
          ylabel, fontdict=self.plot_style.label["fontdict"]
      )
  
imports: from .styles import _prepare_plot_style, _axes_modify, _display_percentile, _modify_legend_axes, _get_axes_label
  import numpy
  from itertools import cycle
  import plotly.express
  import matplotlib
  import matplotlib.pyplot
  from matplotlib.gridspec import GridSpecFromSubplotSpec
  from mpl_toolkits.axes_grid1.inset_locator import inset_axes
  import matplotlib.patheffects
  import plotly.graph_objects
label_desc: Use image node_id 4 for calling the InfoPlotEngine obj's underlying member method code with example usage: obj._draw_lineplot(ylabel, df, axes, line_color) without return types