#javascript #plotly #marker #extend #area
#javascript #плотный #маркер #расширить #область
Вопрос:
С помощью приведенного ниже кода я пытаюсь создать простую пузырьковую диаграмму. Я создаю трассировку, чтобы расширить ее позже:
var t9 = {
x: [100821],
y: [11],
name: 'Some text',
text: ['Some text'],
mode: ['markers'],
marker: [{
size: [1531*10],
sizeref: 2,
sizemode: 'area'
}]
};
var data = [t9];
var layout = {
title: 'Chart',
showlegend: true,
xaxis: {
title: 'Some text'
},
yaxis: {
title: 'Some text'
}
};
var config = {responsive: true}
Plotly.newPlot('plot', data, layout, config);
Plotly.extendTraces(
'plot',
{
x: [[5491]],
y: [[5]],
text: [['Some text']],
mode: [['markers']],
marker: [[{
size: 123*100,
sizeref: 2,
sizemode: 'area'
}]]
}, [0]);
Plotly.extendTraces(
'plot',
{
x: [[60022]],
y: [[11]],
text: [['Some text']],
mode: [['markers']],
marker: [[{
size: 982*100,
sizeref: 2,
sizemode: 'area'
}]]
}, [0]);
<head>
<!-- Plotly.js -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<html>
<body>
<div id="plot"></div>
</body>
</html>
Как вы можете видеть, маркеры не принимают свойство mode: ['markers']
и все markers:
свойства.
Есть идеи, как получить результат, подобный на этой странице? https://plotly.com/javascript/bubble-charts /
Ответ №1:
- Если вы используете
extendTraces
и хотите обновить свойства, такой размер маркера, вам необходимо предоставить атрибут в виде строки, напримерmarker.size
, а значение должно быть массивом, как и ваши новые значения x и y.Plotly.extendTraces( 'plot', { x: [[5491]], y: [[5]], 'marker.size':[[40*100]] }, [0]);
- Ваши исходные данные и атрибуты должны быть простым массивом или объектом, а не массивом массивов / объектов.
var t9 = { x: [100821], y: [11], name: 'Some text', text: 'Some text', mode: 'markers', marker: { size: [15*100], sizeref: 1, sizemode: 'area' } }; var data = [t9]; var layout = { title: 'Chart', showlegend: true, xaxis: { title: 'Some text' }, yaxis: { title: 'Some text', range: [-12, 30] } }; var config = {responsive: true} Plotly.newPlot('plot', data, layout, config); Plotly.extendTraces( 'plot', { x: [[5491]], y: [[5]], 'marker.size':[[40*100]] }, [0]); Plotly.extendTraces( 'plot', { x: [[60022]], y: [[11]], 'marker.size':[[200*100]] }, [0]);
<head> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> </head> <div id='plot'> </div>