old_contents: """
  Multi-Line Tooltip
  ==================
  This example shows how you can use selections and layers to create a
  multi-line tooltip that tracks the x position of the cursor.
  
  To find the x-position of the cursor, we employ a little trick: we add some
  transparent points with only an x encoding (no y encoding) and tie a
  *nearest* selection to these, tied to the "x" field.
  """
  # category: interactive charts
  import altair as alt
  import pandas as pd
  import numpy as np
  
  np.random.seed(42)
  data = pd.DataFrame(np.cumsum(np.random.randn(100, 3), 0).round(2),
                      columns=['A', 'B', 'C'], index=pd.RangeIndex(100, name='x'))
  data = data.reset_index().melt('x', var_name='category', value_name='y')
  
  # Create a selection that chooses the nearest point & selects based on x-value
  nearest = alt.selection(type='single', nearest=True, on='mouseover',
                          fields=['x'], empty='none')
  
  # The basic line
  line = alt.Chart().mark_line(interpolate='basis').encode(
      x='x:Q',
      y='y:Q',
      color='category:N'
  )
  
  # Transparent selectors across the chart. This is what tells us
  # the x-value of the cursor
  selectors = alt.Chart().mark_point().encode(
      x='x:Q',
      opacity=alt.value(0),
  ).add_selection(
      nearest
  )
  
  # Draw points on the line, and highlight based on selection
  points = line.mark_point().encode(
      opacity=alt.condition(nearest, alt.value(1), alt.value(0))
  )
  
  # Draw text labels near the points, and highlight based on selection
  text = line.mark_text(align='left', dx=5, dy=-5).encode(
      text=alt.condition(nearest, 'y:Q', alt.value(' '))
  )
  
  # Draw a rule at the location of the selection
  rules = alt.Chart().mark_rule(color='gray').encode(
      x='x:Q',
  ).transform_filter(
      nearest
  )
  
  # Put the five layers into a chart and bind the data
  alt.layer(line, selectors, points, rules, text,
            data=data, width=600, height=300)
  
new_contents: """
  Multi-Line Tooltip
  ==================
  This example shows how you can use selections and layers to create a
  tooltip-like behavior tied to the x position of the cursor.
  If you are looking for more standard tooltips, it is recommended to use the
  tooltip encoding channel as shown in the
  `Scatter Plot With Tooltips <https://altair-viz.github.io/gallery/scatter_tooltips.html>`_
  example.
  
  The following example employs a little trick to isolate the x-position of the
  cursor: we add some transparent points with only an x encoding (no y encoding)
  and tie a *nearest* selection to these, tied to the "x" field.
  """
  # category: interactive charts
  import altair as alt
  import pandas as pd
  import numpy as np
  
  np.random.seed(42)
  data = pd.DataFrame(np.cumsum(np.random.randn(100, 3), 0).round(2),
                      columns=['A', 'B', 'C'], index=pd.RangeIndex(100, name='x'))
  data = data.reset_index().melt('x', var_name='category', value_name='y')
  
  # Create a selection that chooses the nearest point & selects based on x-value
  nearest = alt.selection(type='single', nearest=True, on='mouseover',
                          fields=['x'], empty='none')
  
  # The basic line
  line = alt.Chart().mark_line(interpolate='basis').encode(
      x='x:Q',
      y='y:Q',
      color='category:N'
  )
  
  # Transparent selectors across the chart. This is what tells us
  # the x-value of the cursor
  selectors = alt.Chart().mark_point().encode(
      x='x:Q',
      opacity=alt.value(0),
  ).add_selection(
      nearest
  )
  
  # Draw points on the line, and highlight based on selection
  points = line.mark_point().encode(
      opacity=alt.condition(nearest, alt.value(1), alt.value(0))
  )
  
  # Draw text labels near the points, and highlight based on selection
  text = line.mark_text(align='left', dx=5, dy=-5).encode(
      text=alt.condition(nearest, 'y:Q', alt.value(' '))
  )
  
  # Draw a rule at the location of the selection
  rules = alt.Chart().mark_rule(color='gray').encode(
      x='x:Q',
  ).transform_filter(
      nearest
  )
  
  # Put the five layers into a chart and bind the data
  alt.layer(line, selectors, points, rules, text,
            data=data, width=600, height=300)
  
subject: clarify 'tooltip' in multiline tooltip example