Вы можете использовать вспомогательные участки, которые совместно используют ось Y, но у каждого есть своя категориальная ось X. Примерно так:
var trace1 = {
name: 'type1',
x: ['a', 'b', 'c'],
y: [10, 11, 12],
type: 'scatter',
mode: 'lines'
};
var trace2 = {
name: 'type2',
x: ['d', 'e', 'f'],
y: [10, 11, 12],
xaxis: 'x2',
type: 'scatter',
mode: 'lines'
};
var trace3 = {
name: 'type2',
x: ['g', 'h', 'i'],
y: [10, 11, 12],
xaxis: 'x3',
type: 'scatter',
mode: 'lines'
};
var data = [trace1, trace2, trace3];
var layout = {
xaxis: {domain: [0, 0.33]},
xaxis2: {domain: [0.33, 0.66]},
xaxis3: {domain: [0.66, 1]}
};
Plotly.newPlot('myDiv', data, layout);