We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Interval Selection Example Bug
I am having trouble with the the [Interval Selection Example](https://altair-viz.github.io/gallery/interval_selection.html). 
![interval-selection](https://user-images.githubusercontent.com/2041969/72012337-c813a500-3229-11ea-911c-d130c87ce01e.gif)

```python
import altair as alt
from vega_datasets import data

source = data.sp500.url

brush = alt.selection(type='interval', encodings=['x'])

upper = alt.Chart(source).mark_area().encode(
    alt.X('date:T', scale=alt.Scale(domain=brush)),
    y='price:Q'
).properties(
    width=600,
    height=200
)

lower = upper.properties(
    height=60
).add_selection(brush)

upper & lower
```

The example looks correct so I am unsure what is causing this behavior. 

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `altair/examples/interval_selection.py`
Content:
```
1 """
2 Interval Selection Example
3 ==========================
4 
5 This is an example of creating a stacked chart for which the domain of the
6 top chart can be selected by interacting with the bottom chart.
7 """
8 # category: area charts
9 import altair as alt
10 from vega_datasets import data
11 
12 source = data.sp500.url
13 
14 brush = alt.selection(type='interval', encodings=['x'])
15 
16 upper = alt.Chart(source).mark_area().encode(
17     alt.X('date:T', scale=alt.Scale(domain=brush)),
18     y='price:Q'
19 ).properties(
20     width=600,
21     height=200
22 )
23 
24 lower = upper.properties(
25     height=60
26 ).add_selection(brush)
27 
28 upper & lower
29
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/altair/examples/interval_selection.py b/altair/examples/interval_selection.py
--- a/altair/examples/interval_selection.py
+++ b/altair/examples/interval_selection.py
@@ -13,15 +13,19 @@
 
 brush = alt.selection(type='interval', encodings=['x'])
 
-upper = alt.Chart(source).mark_area().encode(
-    alt.X('date:T', scale=alt.Scale(domain=brush)),
-    y='price:Q'
+base = alt.Chart(source).mark_area().encode(
+    x = 'date:T',
+    y = 'price:Q'
 ).properties(
     width=600,
     height=200
 )
 
-lower = upper.properties(
+upper = base.encode(
+    alt.X('date:T', scale=alt.Scale(domain=brush))
+)
+
+lower = base.properties(
     height=60
 ).add_selection(brush)

{"golden_diff": "diff --git a/altair/examples/interval_selection.py b/altair/examples/interval_selection.py\n--- a/altair/examples/interval_selection.py\n+++ b/altair/examples/interval_selection.py\n@@ -13,15 +13,19 @@\n \n brush = alt.selection(type='interval', encodings=['x'])\n \n-upper = alt.Chart(source).mark_area().encode(\n-    alt.X('date:T', scale=alt.Scale(domain=brush)),\n-    y='price:Q'\n+base = alt.Chart(source).mark_area().encode(\n+    x = 'date:T',\n+    y = 'price:Q'\n ).properties(\n     width=600,\n     height=200\n )\n \n-lower = upper.properties(\n+upper = base.encode(\n+    alt.X('date:T', scale=alt.Scale(domain=brush))\n+)\n+\n+lower = base.properties(\n     height=60\n ).add_selection(brush)\n", "issue": "Interval Selection Example Bug\nI am having trouble with the the [Interval Selection Example](https://altair-viz.github.io/gallery/interval_selection.html). \r\n![interval-selection](https://user-images.githubusercontent.com/2041969/72012337-c813a500-3229-11ea-911c-d130c87ce01e.gif)\r\n\r\n```python\r\nimport altair as alt\r\nfrom vega_datasets import data\r\n\r\nsource = data.sp500.url\r\n\r\nbrush = alt.selection(type='interval', encodings=['x'])\r\n\r\nupper = alt.Chart(source).mark_area().encode(\r\n    alt.X('date:T', scale=alt.Scale(domain=brush)),\r\n    y='price:Q'\r\n).properties(\r\n    width=600,\r\n    height=200\r\n)\r\n\r\nlower = upper.properties(\r\n    height=60\r\n).add_selection(brush)\r\n\r\nupper & lower\r\n```\r\n\r\nThe example looks correct so I am unsure what is causing this behavior. \n", "before_files": [{"content": "\"\"\"\nInterval Selection Example\n==========================\n\nThis is an example of creating a stacked chart for which the domain of the\ntop chart can be selected by interacting with the bottom chart.\n\"\"\"\n# category: area charts\nimport altair as alt\nfrom vega_datasets import data\n\nsource = data.sp500.url\n\nbrush = alt.selection(type='interval', encodings=['x'])\n\nupper = alt.Chart(source).mark_area().encode(\n    alt.X('date:T', scale=alt.Scale(domain=brush)),\n    y='price:Q'\n).properties(\n    width=600,\n    height=200\n)\n\nlower = upper.properties(\n    height=60\n).add_selection(brush)\n\nupper & lower\n", "path": "altair/examples/interval_selection.py"}], "after_files": [{"content": "\"\"\"\nInterval Selection Example\n==========================\n\nThis is an example of creating a stacked chart for which the domain of the\ntop chart can be selected by interacting with the bottom chart.\n\"\"\"\n# category: area charts\nimport altair as alt\nfrom vega_datasets import data\n\nsource = data.sp500.url\n\nbrush = alt.selection(type='interval', encodings=['x'])\n\nbase = alt.Chart(source).mark_area().encode(\n    x = 'date:T',\n    y = 'price:Q'\n).properties(\n    width=600,\n    height=200\n)\n\nupper = base.encode(\n    alt.X('date:T', scale=alt.Scale(domain=brush))\n)\n\nlower = base.properties(\n    height=60\n).add_selection(brush)\n\nupper & lower\n", "path": "altair/examples/interval_selection.py"}]}