首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变焦和潘的反应-图表-2

变焦和潘的反应-图表-2
EN

Stack Overflow用户
提问于 2017-09-21 14:04:26
回答 5查看 11.2K关注 0票数 4

最近,我使用react chartjs-2 (https://github.com/jerairrest/react-chartjs-2)实现了图表显示。

我希望启用缩放和摇摄功能,这样它将在基于触摸屏的屏幕上更加友好。为了实现这些特性,我安装了Reactive-锤和chartjs-plugin-缩放。

代码语言:javascript
复制
import {Chart, Line} from 'react-chartjs-2';
import Hammer from 'react-hammerjs';
import zoom from 'chartjs-plugin-zoom'

我注册了插件

代码语言:javascript
复制
componentWillMount(){
    Chart.plugins.register(zoom)
}

呈现方法如下:

代码语言:javascript
复制
render(){
    return <Line data={data} options={options} />
}

Pan和缩放选项:

代码语言:javascript
复制
pan:{
    enabled=true,
    mode:'x'
},
zoom:{
    enabled:true,
    drag:true,
    mode:'xy'
}

我想这是正确的实现方法。不幸的是,上述实现没有奏效。如果你们中的一些人已经使用react-chartjs-2插件实现了缩放和摇摄,我将非常感激,如果您是如何实现这些功能的,请告诉我。或者您可以在上面的代码中指出问题。

EN

回答 5

Stack Overflow用户

发布于 2020-05-23 21:55:47

为了在基于react-chartjs-2的图表组件中添加缩放和潘功能,您可以按照以下步骤执行以下步骤:

步骤1:您需要安装chartjs-plugin-zoom

代码语言:javascript
复制
$ npm install chartjs-plugin-zoom

步骤2:在图表组件中导入chartjs-plugin-zoom

代码语言:javascript
复制
import 'chartjs-plugin-zoom';

步骤3:在ChartJS组件选项中启用缩放和pan

代码语言:javascript
复制
        zoom: {
          enabled: true,
          mode: 'x',
        },
        pan: {
          enabled: true,
          mode: 'x',
        },

就这样。所以现在图表组件应该如下所示:

代码语言:javascript
复制
import React from 'react';
import { Line } from 'react-chartjs-2';
import 'chartjs-plugin-zoom';

export default function TimelineChart({ dailyDataSets }) {
  const lineChart = dailyDataSets[0] ? (
    <Line
      data={{
        labels: dailyDataSets.map(({ date }) => date),
        datasets: [
          {
            data: dailyDataSets.map((data) => data.attr1),
            label: 'First data set',
            borderColor: 'red',
            fill: true,
          },
          {
            data: dailyDataSets.map((data) => data.attr2),
            label: 'Second data set',
            borderColor: 'green',
            fill: true,
          },
        ],
      }}
      options={{
        title: { display: true, text: 'My Chart' },
        zoom: {
          enabled: true,
          mode: 'x',
        },
        pan: {
          enabled: true,
          mode: 'x',
        },
      }}
    />
  ) : null;

  return <div>{lineChart}</div>;
}

备注:

  1. 您不必显式地安装hammerjs,因为通过安装chartjs-plugin-zoom作为它的依赖项,它将自动包括在内,请参见下面的内容:
代码语言:javascript
复制
$ npm ls
...
├─┬ chartjs-plugin-zoom@0.7.7
│ └── hammerjs@2.0.8
...
  1. 作为一个例子,你可以将鼠标指针移动到图表区域,然后向下滚动或向上滚动鼠标。一旦放大,你可以保持你的鼠标点击,同时拖动左或右。
票数 4
EN

Stack Overflow用户

发布于 2019-02-26 11:54:36

pan对象下有一个语法错误,用于启用属性。

你错误地把=而不是:

代之以:

代码语言:javascript
复制
pan:{
  enabled=true,
  ...
},

通过以下方式:

代码语言:javascript
复制
pan:{
  enabled:true,
  ...
},

正如君斌所言:

锤头as安装为:

代码语言:javascript
复制
npm install hammerjs --save

在组件中,将其导入如下:

代码语言:javascript
复制
import Hammer from "hammerjs";
票数 2
EN

Stack Overflow用户

发布于 2017-10-09 08:00:42

你输入了错误的锤子,它应该是从“锤子”;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46346078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档