class_docstr: Create a line plot.
  
  Preprocessing: this component does *not* accept input.
  Postprocessing: expects a pandas dataframe with the data to plot.
  
  Demos: line_plot, live_dashboard
code: def postprocess(
      self, value: pd.DataFrame | dict | None
  ) -> AltairPlotData | dict | None:
      # if None or update
      if value is None or isinstance(value, dict):
          return value
      if self.x is None or self.y is None:
          raise ValueError(
              "No value provided for required parameters `x` and `y`."
          )
      chart = self.create_plot(
          value=value,
          x=self.x,
          y=self.y,
          color=self.color,
          overlay_point=self.overlay_point,
          title=self.title,
          tooltip=self.tooltip,
          x_title=self.x_title,
          y_title=self.y_title,
          x_label_angle=self.x_label_angle,
          y_label_angle=self.y_label_angle,
          color_legend_title=self.color_legend_title,  # type: ignore
          color_legend_position=self.color_legend_position,  # type: ignore
          stroke_dash_legend_title=self.stroke_dash_legend_title,
          stroke_dash_legend_position=self.stroke_dash_legend_position,  # type: ignore
          x_lim=self.x_lim,
          y_lim=self.y_lim,
          stroke_dash=self.stroke_dash,
          interactive=self.interactive_chart,
          height=self.height,
          width=self.width,
      )
  
      return AltairPlotData(
          type="altair", plot=chart.to_json(), chart="line"
      )
  
file_path: gradio/gradio/components/line_plot.py
imports: from __future__ import annotations
  from typing import Any, Callable, Literal
  import altair
  import pandas
  from gradio_client.documentation import document, set_documentation_group
  from gradio.components.plot import AltairPlot, AltairPlotData, Plot
label_desc: Use image node_id 4 for calling the LinePlot obj's underlying member method code with example usage: obj.postprocess(value) and returns: AltairPlotData, value