Труд не бывает даром

JavaScriptJavaScriptBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом проекте вы научитесь создавать статистическую диаграмму урожайности сельскохозяйственных культур в городе за последние пять лет с использованием ECharts. Цель проекта - показать, как практические проблемы могут быть проанализированы с помощью статистики урожайности сельскохозяйственных культур, которая напрямую влияет на жизнь людей.

👀 Предварительный просмотр

Описание изображения

🎯 Задачи

В этом проекте вы научитесь:

  • настраивать проектную среду и понимать предоставленные файлы;
  • получать данные из JSON-файла и обрабатывать их для обновления визуализации ECharts;
  • настраивать внешний вид и макет линейной и круговой диаграмм.

🏆 Достижения

После завершения этого проекта вы сможете:

  • использовать библиотеку Axios для получения данных из JSON-файла;
  • манипулировать объектом параметров ECharts для обновления визуализации;
  • настраивать диаграммы, настраивая заголовок, макет и другие свойства.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/DOMManipulationGroup(["DOM Manipulation"]) javascript(("JavaScript")) -.-> javascript/NetworkingGroup(["Networking"]) javascript/AdvancedConceptsGroup -.-> javascript/async_prog("Asynchronous Programming") javascript/DOMManipulationGroup -.-> javascript/dom_manip("DOM Manipulation") javascript/NetworkingGroup -.-> javascript/http_req("HTTP Requests") javascript/NetworkingGroup -.-> javascript/json("JSON") subgraph Lab Skills javascript/async_prog -.-> lab-445640{{"Труд не бывает даром"}} javascript/dom_manip -.-> lab-445640{{"Труд не бывает даром"}} javascript/http_req -.-> lab-445640{{"Труд не бывает даром"}} javascript/json -.-> lab-445640{{"Труд не бывает даром"}} end

Настройка структуры проекта

В этом шаге вы настроите структуру проекта и подготовите необходимые файлы и папки.

Откройте папку проекта в вашем редакторе кода. Структура каталогов следующая:

├── data.json
├── index.html
└── js
    ├── axios.min.js
    └── echarts.min.js

где:

  • index.html - главная страница.
  • js/echarts.min.js - файл ECharts.
  • js/axios.min.js - файл axios.
  • data.json - данные о урожае зерновых культур в тоннах за соответствующий год.

Нажмите кнопку Go Live в нижнем правом углу WebIDE, чтобы запустить проект.

Далее откройте "Web 8080" в верхней части ВМ и вручную обновите страницу, чтобы увидеть следующий эффект в вашем браузере:

Описание изображения

Получение данных

В этом шаге вы завершите запрос данных и правильно отобразите данные о урожайности сельскохозяйственных культур в линейной и круговой диаграммах.

  1. В файле index.html найдите раздел // TODO.
  2. Используйте метод axios.get() для получения данных из файла data.json.
axios.get("./data.json").then((res) => {
  let data = res.data.data;
  // TODO: Обработать данные и обновить объект параметров
});
  1. Внутри обратного вызова .then() обработайте данные из файла data.json и обновите объект option соответственно.

    • Создайте объект dataObj для хранения данных по каждому типу сельскохозяйственной культуры.
    • Создайте массив sourceTip для хранения меток для данных.
    • Пройдитесь по данным и заполните массивы dataObj и sourceTip.
    • Создайте новый массив newSource и заполните его данными из dataObj и sourceTip.
    • Обновите option.dataset.source массивом newSource.
    • Вызовите myChart.setOption(option) для обновления диаграммы новыми данными.
// TODO
let dataObj = {
  wheat: ["wheat"],
  soybean: ["soybean"],
  potato: ["potato"],
  corn: ["corn"]
};
let sourceTip = ["all"];

axios.get("./data.json").then((res) => {
  let data = res.data.data;

  for (const key1 in data) {
    sourceTip.push(key1);
    for (const key2 in data[key1]) {
      dataObj[key2].push(data[key1][key2]);
    }
  }

  let newSource = [];
  newSource.push(sourceTip);
  for (const key in dataObj) {
    newSource.push(dataObj[key]);
  }

  option.dataset.source = newSource;
  myChart.setOption(option);
});
  1. Сохраните файл index.html и обновите страницу. Теперь вы должны увидеть обновленные линейную и круговую диаграммы с правильными данными.
Описание изображения
✨ Проверить решение и практиковаться

Резюме

Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.