График echarts - кнопки увеличения/уменьшения масштаба

Я использую Apache Echarts для отображения графика, это очень хорошо.
Однако я не знаю, как правильно увеличить масштаб, чтобы показать узел и его соединения. Я могу масштабировать изображение с помощью мыши, но мне просто интересно, можно ли отображать кнопки +/- и увеличивать/уменьшать масштаб, нажимая на них? Или это не поддерживается в графиках Echarts?

Спасибо!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если ваш график определен в системе координат , вы можете использовать встроенную функцию dataZoom . Кроме того, вы всегда можете реализовать свои собственные кнопки и использовать действия dataZoom.

Пример :

const axisData = Array.from({length: 100});
const data = axisData.map(function (item, i) {
  return [i, Math.round(Math.random() * 1000)];
});
const links = data.map(function (item, i) {
  return {
    source: i,
    target: Math.round(Math.random() * 100)
  };
});

option = {
  title: {
    text: 'Graph on Cartesian'
  },
  xAxis: {
    type: 'value'
  },
  yAxis: {
    type: 'value'
  },
  dataZoom: {type: 'inside', xAxisIndex: 0, yAxisIndex: 0},
  toolbox: {
    feature: {
      dataZoom: {}
    }
  },
  series: [
    {
      type: 'graph',
      coordinateSystem: 'cartesian2d',
      data: data,
      links: links,
    }
  ]
};

setTimeout(function() {
  myChart.dispatchAction({
    type: 'dataZoom',
    start: 10,
    end: 90
  });
}, 2000);

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

Пример :

myChart.showLoading();
myChart.showLoading();
$.get(ROOT_PATH + '/data/asset/data/webkit-dep.json', function (webkitDep) {
  myChart.hideLoading();
  option = {
    legend: {
      data: ['HTMLElement', 'WebGL', 'SVG', 'CSS', 'Other']
    },
    series: [
      {
        type: 'graph',
        id: 'graph',
        layout: 'force',
        animation: false,
        label: {
          position: 'right',
          formatter: '{b}'
        },
        roam: true,
        data: webkitDep.nodes.map(function (node, idx) {
          node.id = idx;
          return node;
        }),
        categories: webkitDep.categories,
        force: {
          edgeLength: 5,
          repulsion: 20,
          gravity: 0.2
        },
        edges: webkitDep.links
      }
    ]
  };
  myChart.setOption(option);
});


setTimeout(function() {
  myChart.setOption({series: [{id: 'graph', zoom: 2}]})
}, 3000);

Привет, спасибо за помощь! Значит, единственный вариант — объединить график с системой координат?

Viktor 23.08.2024 10:38

Вы также можете просто использовать свойства масштабирование и центр.

Matthias Mertens 23.08.2024 12:53

Ага, понятно! Теперь я думаю, что понял. Я подумал, что когда я использую setOption на графике несколько раз, график воссоздается снова, поэтому мне не следует этого делать. Теперь я могу сделать кнопки для многократного вызова setOption с разным zoom значением. Должен ли я принять этот ответ или вы создадите отдельный с подсказкой setOption + масштабирование?

Viktor 23.08.2024 15:23

Я включил это в этот ответ, поэтому не стесняйтесь принять его.

Matthias Mertens 23.08.2024 18:34

Другие вопросы по теме