Я новичок в plot.ly и пытаюсь заставить синтаксис работать правильно. Образец диаграммы scatter3d почти идеально подходит для моих нужд, но он получает данные из CSV. Это само по себе хорошо; Я могу сделать свой собственный CSV и вставить его, но это немного неуклюже - я бы предпочел получать данные напрямую из базы данных MySQL.
Я посмотрел некоторые из их начальных документов о типах и могу создать двухмерную диаграмму рассеяния, в которой я просто указываю координаты X / Y. Но если я захочу попасть в трехмерную диаграмму, у меня все пойдет не так.
Этот код прекрасно работает.
Plotly.d3.csv('mydata.csv', function(err, rows){
function unpack(rows, key) {
return rows.map(function(row) { return row[key]; });
}
var data = [{
x: unpack(rows, 'x'),
y: unpack(rows, 'y'),
z: unpack(rows, 'z'),
mode: 'markers',
type: 'scatter3d',
marker: {
color: 'rgb(10, 100, 240)',
size: 2
}
},{
alphahull: 7,
opacity: 0.1,
type: 'mesh3d',
x: unpack(rows, 'x'),
y: unpack(rows, 'y'),
z: unpack(rows, 'z')
}];
var layout = {
autosize: true,
height: 1200,
scene: {
aspectratio: {
x: 1,
y: 1,
z: 1
},
camera: {
center: {
x: 0,
y: 0,
z: 0
},
eye: {
x: 1.25,
y: 1.25,
z: 1.25
},
up: {
x: 0,
y: 0,
z: 1
}
},
xaxis: {
type: 'linear',
zeroline: false
},
yaxis: {
type: 'linear',
zeroline: false
},
zaxis: {
type: 'linear',
zeroline: false
}
},
title: 'My Test',
width: 1600
};
Plotly.newPlot('myDiv', data, layout);
});
Но опять же, я бы лучше указал свои координаты во время выполнения. Кроме того, это позволит мне дать различные диапазоны, которые можно по-разному кодировать и еще много чего.
Итак, я вытащил кусочки CSV и добавил свои координаты вручную ... и ничего не делает. Нада.
Вот что я пытаюсь.
var data = [{
x: [34, 41, 28, 22, 15, 26],
y: [5, -2, 14, -9, 15, -12],
z: [5, 7, 4, 8, -7, 1],
mode: 'markers',
type: 'scatter3d',
marker: {
color: 'rgb(10, 100, 240)',
size: 2
}
},{
alphahull: 7,
opacity: 0.1,
type: 'mesh3d',
x: [34, 41, 28, 22, 15, 26],
y: [5, -2, 14, -9, 15, -12],
z: [5, 7, 4, 8, -7, 1],
}];
var layout = {
autosize: true,
height: 1200,
scene: {
aspectratio: {
x: 1,
y: 1,
z: 1
},
camera: {
center: {
x: 0,
y: 0,
z: 0
},
eye: {
x: 1.25,
y: 1.25,
z: 1.25
},
up: {
x: 0,
y: 0,
z: 1
}
},
xaxis: {
type: 'linear',
zeroline: false
},
yaxis: {
type: 'linear',
zeroline: false
},
zaxis: {
type: 'linear',
zeroline: false
}
},
title: 'My Test',
width: 1600
};
Plotly.newPlot('myDiv', data, layout);
Если кто-нибудь может указать, где я глуп, я был бы очень признателен.