code: def test_show_non_plot_and_plot_with_params(
      tmp_dir, scm, dvc, run_copy_metrics
  ):
      metric = [
          {"first_val": 100, "val": 2},
          {"first_val": 200, "val": 3},
      ]
      (tmp_dir / "metric.json").dump_json(metric, sort_keys=True)
      run_copy_metrics(
          "metric.json",
          "metric2.json",
          plots_no_cache=["metric2.json"],
          name="train",
      )
      props = {"title": "TITLE"}
      dvc.plots.modify("metric2.json", props=props)
  
      result = dvc.plots.show(targets=["metric.json", "metric2.json"])
  
      assert get_plot(result, "workspace", file="metric.json") == metric
      assert (
          get_plot(result, "workspace", file="metric2.json") == metric
      )
      assert (
          get_plot(
              result, "workspace", file="metric2.json", endkey="props"
          )
          == props
      )
  
imports: import json
  import os
  import pytest
  from dvc.cli import main
  from dvc.dvcfile import PROJECT_FILE
  from dvc.exceptions import OverlappingOutputPathsError
  from dvc.repo import Repo
  from dvc.repo.plots import PlotMetricTypeError, onerror_collect
  from dvc.utils.fs import remove
  from dvc.utils.serialize import EncodingError, YAMLFileCorruptedError, modify_yaml
  from tests.utils.plots import get_plot
label_desc: Use image node_id 5 for calling a global function with example usage: test_show_non_plot_and_plot_with_params(tmp_dir, scm, dvc, run_copy_metrics) without return types