code: def _draw_lineplot_plotly(
      self, target, df, line_color, fig, grids, y2=True
  ):
      fig.add_trace(
          go.Scatter(
              x=df["x"],
              y=df["y"],
              text=[round(v, 3) for v in df["y"].values],
              textposition="top center",
              mode="lines+markers+text",
              yaxis="y2",
              name=f"Average {target}",
              line=dict(color=line_color),
              marker=dict(color=line_color),
              hovertemplate="%{text}",
          ),
          secondary_y=y2,
          **grids,
      )
      fig.update_yaxes(
          range=[0, df["y"].max() * 1.2], secondary_y=y2, **grids
      )
  
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 5 for calling the InfoPlotEngine obj's underlying member method code with example usage: obj._draw_lineplot_plotly(target, df, line_color, fig, grids, y2) without return types