Hi,

Thanks to this post, I am able to share only the x-axis between two curves:

```
t = np.arange(100)
data1 = np.random.rand(100)
data2 = np.random.rand(100) + 100
curve1 = hv.Curve((t, data1), 'time', 'y1')
curve2 = hv.Curve((t, data2), 'time', 'y2')
hv.Layout(curve1 + curve2)
```

Now I am trying to do the same between a curve and a quadmesh, but without success… The code *without* the x-axis shared would be the following:

```
t = np.arange(100)
data1 = np.random.rand(100)
data_mesh = np.random.rand(10, 100)
curve1 = hv.Curve((t, data1), 'time', 'y1')
curve2 = hv.QuadMesh((t, np.arange(10), data_mesh)) # What should I add here ?
hv.Layout(curve1 + curve2)
```

Any help would be very appreciated ! Thanks

They need to have the same label I think. Although you are using the same variable `t`

, it doesn’t have an explicit label, “time”.

Maybe you can do

`curve2 = ....redim.label(**{"x": "time"})`

(if I correctly remember)

Or maybe

```
curve2 = hv.QuadMesh((t, np.arange(10), data_mesh), "time", "y2", "data") # not sure if valid
```

Or use a xr.Dataset first and pass it into Curve / Quadmesh

Hi, thank you for your answer !

Unfortunetly your first guess doesn’t work, x-axis are not shared and the second one is not valid.

I got an answer from stackoverflow here that works. The idea is very close to yours ! The working code is the following:

```
import numpy as np, holoviews as hv
hv.extension("bokeh")
t = np.arange(100)
data1 = np.random.rand(100)
data_mesh = np.random.rand(10, 100)
curve1 = hv.Curve((t, data1), 'time', 'y1')
curve2 = hv.QuadMesh((t, np.arange(10), data_mesh)).redim(x='time')
curve1 + curve2
```

1 Like