Я пытаюсь прочитать несколько текстовых файлов, в которых хранятся целочисленные данные, а затем пытаюсь распечатать эти данные в другом графике для другого файла. Я использовал асинхронную функцию, но не могу распечатать несколько графиков. Я новичок в JS.
Это код, который я написал.
<!DOCTYPE html>
<html>
<script src = "https://cdn.plot.ly/plotly-latest.min.js"></script>
<body>
<div id = "myPlot" style = "width:100%;max-width:700px"></div>
<script>
async function getNumbers(file) {
var result = await fetch(file)
var text = await result.text()
var bruh = String(text).split('\n')
return bruh.map(a => parseFloat(a))
}
getNumbers('sample.txt').then(rArray => {
console.info(rArray);
//
var xArray = ["A", "B"];
var yArray = [];
yArray.push(rArray[0]);
yArray.push(rArray[1]);
console.info(yArray);
var layout = {
title: "Test"
};
var data = [{
labels: xArray,
values: yArray,
type: "pie"
}];
Plotly.newPlot("myPlot", data, layout);
});
</script>
<script>
async function getNumbers(file) {
var result = await fetch(file)
var text = await result.text()
var bruh = String(text).split('\n')
return bruh.map(a => parseFloat(a))
}
getNumbers('sample.txt').then(rArray => {
console.info(rArray);
//
var xArray = ["A", "B"];
var yArray = [];
yArray.push(rArray[0]);
yArray.push(rArray[1]);
console.info(yArray);
var layout = {
title: "Test"
};
var data = [{
labels: xArray,
values: yArray,
type: "pie"
}];
Plotly.newPlot("myPlot", data, layout);
});
</script>
</body>
</html>
Это то, что я написал, но он печатает только один график. Я не получаю то, что мне не хватает. Пожалуйста, помогите мне с этим, я делаю это для своего проекта, и я начал учиться JavaScript недавно.
Кстати, не нужно переопределять функцию getNumbers
с точно таким же кодом, а также не нужно размещать код в двух отдельных <script>
- будет достаточно одного скрипта с обоими вызовами
Ты используешь
Plotly.newPlot("myPlot", data, layout);
дважды
это означает, что оба графика созданы в элементе #myPlot
(т.е. <div id = "myPlot">
)
означает, что второй сюжет переопределяет первый
Это сработало. Я создал другой элемент для печати другого вывода, и это сработало.
Оба вызова
Plotly.newPlot("myPlot", …)
будут напечатаны в один и тот же элемент вывода, второй вызов перезапишет вывод первого. Используйте два элемента с разными идентификаторами.