Предполагая, что ваши данные находятся в массиве объектов, вы можете использовать следующий подход:
Выполните итерацию по набору ваших condition
s
var conditions = new Set(data.map(a => a.condition));
conditions.forEach(function(condition) {
var newArray = data.filter(function(el) {
return el.condition == condition;
});
})
Карта id
на x
и value
на y
traces.push({
x: newArray.map(a => a.id),
y: newArray.map(a => a.value),
name: condition,
mode: 'markers',
type: 'scatter'
})
data = [];
data.push({
'id': 1,
'value': 0.00167736464652281,
'condition': 'CM'
});
data.push({
'id': 1,
'value': 0.00409236292494868,
'condition': 'ECM'
});
data.push({
'id': 1,
'value': 0.00402114732563961,
'condition': 'SAX'
});
data.push({
'id': 2,
'value': 0.0136247916329259,
'condition': 'SAX'
});
data.push({
'id': 2,
'value': 0.0151036287262202,
'condition': 'ECM'
});
data.push({
'id': 2,
'value': 0.0115020440436599,
'condition': 'CM'
});
data.push({
'id': 3,
'value': 0.0115571286240125,
'condition': 'CM'
});
data.push({
'id': 3,
'value': 0.0155058764871028,
'condition': 'ECM'
});
data.push({
'id': 3,
'value': 0.0162593141280405,
'condition': 'SAX'
});
data.push({
'id': 4,
'value': 0.0162953858863326,
'condition': 'SAX'
});
data.push({
'id': 4,
'value': 0.0172050279098291,
'condition': 'ECM'
});
data.push({
'id': 4,
'value': 0.0140566233578565,
'condition': 'CM'
});
data.push({
'id': 5,
'value': 0.0141510897863713,
'condition': 'CM'
});
data.push({
'id': 5,
'value': 0.0177908403313223,
'condition': 'ECM'
});
data.push({
'id': 5,
'value': 0.0181831372346949,
'condition': 'SAX'
});
var conditions = new Set(data.map(a => a.condition));
traces = [];
conditions.forEach(function(condition) {
var newArray = data.filter(function(el) {
return el.condition == condition;
});
traces.push({
x: newArray.map(a => a.id),
y: newArray.map(a => a.value),
name: condition,
mode: 'markers',
type: 'scatter'
})
})
Plotly.plot('myPlot', traces);
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<div id="myPlot"></div>