code: def plot_line(
      data_dict,
      title=None,
      xtitle="",
      ytitle="",
      name="Main",
      color=COLORS[0],
  ):
      if data_dict.get("scores", None) is None:  # pragma: no cover
          return None
  
      x_vals = data_dict["names"].copy()
      y_vals = data_dict["scores"].copy()
      y_hi = data_dict.get("upper_bounds", None)
      y_lo = data_dict.get("lower_bounds", None)
      background_lines = data_dict.get("background_scores", None)
      error_present = y_hi is not None
      background_present = background_lines is not None
  
      data = []
      fill = "none"
      if error_present:
          fill = "tonexty"
  
      main_line = go.Scatter(
          x=x_vals,
          y=y_vals,
          name=name,
          mode="lines",
          line=dict(color=color),
          fillcolor="rgba(68, 68, 68, 0.15)",
          fill=fill,
      )
      data.append(main_line)
  
      if background_present:
          for i in range(background_lines.shape[0]):
              data.append(
                  go.Scatter(
                      x=x_vals,
                      y=background_lines[i, :],
                      mode="lines",
                      opacity=0.3,
                      line=dict(width=1.5),
                      name="Background: " + str(i + 1),
                      connectgaps=True,
                  )
              )
      elif error_present:
          upper_bound = go.Scatter(
              name="Upper Bound",
              x=x_vals,
              y=y_hi,
              mode="lines",
              marker=dict(color="#444"),
              line=dict(width=0),
              fillcolor="rgba(68, 68, 68, 0.15)",
              fill="tonexty",
          )
          lower_bound = go.Scatter(
              name="Lower Bound",
              x=x_vals,
              y=y_lo,
              marker=dict(color="#444"),
              line=dict(width=0),
              mode="lines",
          )
          data = [lower_bound, main_line, upper_bound]
  
      layout = go.Layout(
          title=title,
          showlegend=False,
          xaxis=dict(title=xtitle),
          yaxis=dict(title=ytitle),
      )
      main_fig = go.Figure(data, layout)
  
      # Add density
      if data_dict.get("density", None) is not None:
          figure = _plot_with_density(
              data_dict["density"], main_fig, title=title
          )
      else:
          figure = main_fig
  
      return figure
  
imports: import plotly.graph_objs
  import numpy
  from plotly import subplots
  import matplotlib.pyplot
  from numbers import Number
  import logging
label_desc: Use image node_id 10 for calling a global function with example usage: plot_line(data_dict, title, xtitle, ytitle, name, color) and returns: figure, None