code: def test_ribbon_where():
      m = 3
      n = 100
      values = np.linspace(0, 2 * m * np.pi, n)
      data = pd.DataFrame({"x": range(n), "sin": np.sin(values)})
  
      p = (
          ggplot(data, aes("x", "sin"))
          + geom_ribbon(
              aes(ymin=0, ymax="sin", where="sin>0"),
              fill="blue",
              alpha=0.2,
          )
          + geom_ribbon(
              aes(ymin=0, ymax="sin", where="sin<0"),
              fill="red",
              alpha=0.2,
          )
          + geom_line()
      )
      assert p == "ribbon_where"
  
file_path: plotnine/tests/test_geom_ribbon_area.py
imports: import numpy
  import pandas
  from plotnine import aes, after_stat, coord_flip, facet_wrap, geom_area, geom_line, geom_ribbon, ggplot, scale_x_continuous
label_desc: Use image node_id 5 for calling a global function with example usage: test_ribbon_where() without return types