2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AngularでPlotly.jsを利用する

Posted at

Plotly.jsをAngularで使用するためのモジュールが用意されているので、それを使用する

GitHub: angular-plotly.js

インストール方法

npmでインストールする。
2022/3/19時点での最新は、angular-plotly.jsが4.0.4, plotly.js-dist-minが2.11.1, @types/plotly.js-dist-minが2.3.0となります。

npm install angular-plotly.js@4.0.4 plotly.js-dist-min@2.11.1 --save
npm install @types/plotly.js-dist-min@2.3.0 --save-dev

インストール後、AppModuleにPlotlyModuleを追加する.

import * as PlotlyJS from 'plotly.js-dist-min';
import { PlotlyModule } from 'angular-plotly.js';

PlotlyModule.plotlyjs = PlotlyJS;

@NgModule({
  ~~~
  imports: [
    ~~~
    PlotlyModule
  ],
  ~~~
})
export class AppModule { }

グラフ表示

<plotly-plot>コンポーネントが用意されているため、こちらを使用する.

html

<plotly-plot [data]="graph.data" [layout]="graph.layout" [config]="graph.config"></plotly-plot>

ts

  graph = {
    data: [
      {
        x: [10, 20, 30],
        y: [23, 65, 313],
        type: 'scatter',
        mode: 'lines+points',
        marker: { color: 'red' },
        name: 'data1',
        showlegend: true,
        hovertemplate: '経過日数:%{x}<br>回数:%{y}',
      },
      {
        x: [10, 20, 30],
        y: [45, 125, 289],
        type: 'bar',
        name: 'data2',
        showlegend: true,
        hovertemplate: '経過日数:%{x}<br>回数:%{y}<extra></extra>',
      },
    ],
    layout: {
      title: 'Sample Data',
      legend: {
        itemclick: false,
      },
      xaxis: {
        title: '経過日数',
        tick0: 0,
        dtick: 10,
        fixedrange: true,
      },
      yaxis: {
        title: '回数',
        dtick: 50,
        fixedrange: true,
      },
    },
    config: {
      displayModeBar: false,
      scrollZoom: false,
      //     staticPlot:true,
      responsive: true,
    },
  };

表示
image.png

設定方法

グラフを表示する時によく使う設定をメモとして残しておきます.

data

よく使用する設定では以下のものがある.

  • name : データ名
  • showlegend : 凡例を表示するか
  • hovertemplate : データにカーソルを合わせた時のツールチップの表示内容を設定する. Hover Text and Formatting in JavaScript参照
    <extra></extra>を指定するとデータ名を非表示に出来る

layout

グラフのレイアウトに関する設定が出来る.
設定項目の詳細は、JavaScript Figure Reference: layout参照

よく使用する設定では以下のものがある.

  • title : グラフのタイトル
  • xaxis, yaxis : 縦・横軸の設定
    • title : 軸のタイトル
    • dtick : 目盛りの間隔. 設定しないと自動で設定される
    • tick0 : 0地点の数値
    • 軸の表示の設定は、Formatting Ticks in JavaScript参照
    • fixdrange : 軸の表示幅を固定するかどうか。trueにすると利用者が変更できなくなる
  • legend: 凡例に対する設定が出来る. itemclickをfalseにすると凡例をクリックしてグラフを絞り込むのを無効に出来る.

config

グラフに対する設定が出来る.
詳細は、 Configuration Options in JavaScript を参照する. ただしすべては記載されていないので、ソースを見ると、すべての設定を確認できる.

よく使用する設定では以下のものがある.

  • displayModeBar : ツールバーの表示制御. falseにすると非表示に出来る
  • staticPlot : ツールバーでだけでなくグラフを画像として表示する
  • scrollZoom : グラフをズーム出来るかを設定する
  • responsive: layoutのwidth, heightを指定せず使用すると画面幅に合わせてサイズが変更される

所感

Plotly.js自体も初めてでしたが、AngularのComponentが提供されているのは、便利です。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?