【ThoughtSpotチャートシリーズ】Muze Studioについて

ThoughtSpotのMuze Studioについて解説します

 

今回は、ThoughtSpotバージョン10.8でベータ版として利用できるようになったMuze Studioについてご紹介します。

 

なお、Muze Studioはクラスター単位で有効化することができます(実際の環境への追加は個々の環境ごとに実施が必要です)。

 

Muze Studioとは?

ThoughtSpotのカスタムチャート機能を使った追加のJavaScriptライブラリ「Muze」を使ってチャートを作成する機能です。通常のカスタムチャートと異なり、ThoughtSpot社が提供しているため外部にWEBサーバーなどを立てる必要がなく、手軽に利用できるところが通常のカスタムチャートに比べた利点となります。

 

Muzeチャートライブラリは、JavaScriptのライブラリで、様々なチャートタイプを網羅しています。また、CSSHTMLに対しても手を加えることが可能で、全体的にチャートの調整を行うことができます。

 

基本的なグラフの設定方法としては、JavaScriptでプロパティを設定するだけで好きなグラフが利用できるため、クセがわかれば難易度的にはそれほど高くありません。また、JavaScript内でレイヤーを追加したり、データモデルを操作することもできるため、複雑なチャートを描くこともできます。

 

 Muze Studioによるチャート例:

上のグラフを書くのに使うコードは以下のようになります。

const { muze, getDataFromSearchQuery } = viz;

const data = getDataFromSearchQuery();

const ColumnFields = ["Total Sales","Total Profit","Total Quantity"];
const RowFields = ["Category","Sub Category"];
const StepField = "Sales Date";

muze
  .canvas()
  .columns(ColumnFields)
  .rows([RowFields])
  .layers([
    {
      mark: "bar",
      encoding: {
        color: {
          value: () => {
            return "#2E75F0";
          },
        },
      },
    },
  ])
  .config({
    gridLines: {
      x: {
        show: false,
      },
      y: {
        show: false,
      },
    },
    axes: {
      x: {
        tickInterval: {
          step: StepField,
        },
      },
    },
    uniformAxisDomains: false,
  })
  .data(data)
  .mount("#chart"); // mount your chart

 

設定のやり方さえ覚えれば、そこまで難しくない、、、と思います。

 

どんなグラフを作成できますか?

こちら にサンプルギャラリーがあるのでご覧ください。もともとThoughtSpotで利用できるようなチャートから、今まで利用できなかったようなチャートまで多彩なグラフを描くことができます。もちろんドリルダウンやライブボードでフィルタをかけることも可能なので、通常のThoughtSpotのグラフ機能と同じような感覚で扱うことができます。

ただ、すべてのセッティングはJavaScriptのプロパティで行う必要があるので、GUIで手軽にグラフが描ける、というものではないことに注意願います。

 

どのように始められますか?

ThoughtSpotのドキュメントページ「Creating charts with Muze Studio 」に全体的な説明が載っていますが、実際の細かい説明までは書いていません。Muze Studioを有効化する方法はこちらに記載されていますので、こちらを参考にしてください。

Muze Studioを有効化する

有効化の方法は、こちら に記載されています。カスタムチャートと同様に管理者が有効化していく必要があります。

 

ここから、「アプリ設定」内の「チャートのカスタマイズ」を選択します。

 

チャートのカスタマイズ画面から「カスタムチャート」タブを選択し「チャートを追加」をクリックします。

 

次の画面では、ドキュメント通り「アプリケーションURL」「アイコン画像のURL」を設定します。

 

次に、開発者タブを開きます。

 

ここからの操作は、ドキュメントには書かれてないのですが、マルチテナント設定を行っている場合は、プライマリの組織のみでしか操作できません。マルチテナント設定を行っていない場合は、普通に設定することが可能です。

開発者メニューのカスタマイズの「セキュリティ設定」を開きます。

 

 

設定が可能な場合は、以下のように項目が出てくるので、「*vercel.app」を設定に含めます。

 

これで準備ができました。

 

実際にMuze Studioを使ってみる

事前の設定がうまくいけば、いよいよ実際にグラフを書くことができます。

検索画面を出し、好きな項目検索バーに追加していきましょう。その後、チャートメニューを開くと、一番下に「カスタム」として設定したMuze Studioが出てきます。

 

デフォルトでは、基本的な棒グラフが表示されるようになっています。グラフエリアの右上に出ているボタンをクリックすると、コードエディタが表示されます。

 

コードエディタを開くと、以下のようにデフォルトグラフを表示するためのコードが入っていることが確認できます。さらに、コードエディタ部分ではJavaScriptとCSS、HTMLを切り替えることができます。

 

なお、CSSを表示すると以下のようになります。

HTMLでは以下のようになります。

HTML部分にコメントなどを追記するのは簡単です。

それぞれ、何をどうできるか、というところは、開発者向けドキュメント の方に詳細に記載されています。

 

好きなチャートを描くには?

好きなチャートを描くには、JavaScriptのプロパティを好きに設定していく必要がありますが、まずはGallery に自分の使いたい形のグラフがあるかどうか調べ、掲載されているサンプルコードをベースに改造していくのが一番の近道です。

Muze StudioのGallery:

 注意点

サンプルコードには、もともとのデータがどんなものか表記されていないため、想像しながら進める必要があります。実際に出ている絵と凡例、JavaScriptのコードを見比べながら作業してみてください。

例えば、「100% Stacked Area Chart」のサンプルコードは以下のようになっています。

 

  const { muze, getDataFromSearchQuery } = viz;

  const data = getDataFromSearchQuery();

  const ColumnField = "Year";
  const RowField = "Horsepower";
  const ColorField = "Origin";
  
  muze
    .canvas()
    .rows([RowField])
    .columns([ColumnField])
    .color(ColorField)
    .layers([
      {
        mark: "area",
        transform: { type: "stack100percent" },
      },
    ])
    .data(data)
    .mount("#chart") // mount your chart

 

このうち、

  const ColumnField = "Year";
  const RowField = "Horsepower";
  const ColorField = "Origin";

 

となっている部分で、ThoughtSpotの検索バーで追加したトークン(項目名)を設定する部分になっています。ThoughtSpot流で言えば、ColumnFieldがX軸の項目、RowFieldがY軸の項目、ColorFieldが「色付きスライス」に該当します。ですので、グラフに設定したい部分に項目名を当てはめます。

ここで注意しないといけないのが、数値は

といった形でMuze Studioに渡されるため、「Total Sales」としなければなりません。「Total」の部分は、言語メニューで英語にした状態のものになります(ですので、この通り「合計 Sales」と指定するのはNGです)。属性の場合は、項目名をそのまま渡せばよいです。問題なのが日時型の項目で、

となっている場合は、「Quarter(Sales Date)」で渡す必要があります。日時の表記については、一旦検索バーで好みの単位にしてからMuzeStudioのデフォルトグラフでどのように表現されるかを見て、それを真似てコードを記載するようにしてください。一度Muze Studioで表示してしまうと、それを覚えてしまうため、日時の単位が変わっても、Muze Studio側で自動的にコードが変更されることはありません。

つまり、一度検索バーで「年単位」など日時の単位を先に決めてから、グラフタイプをMuze Studioに変更してください。

としてから、

を選択する、ということです。言い方を変えると、集計粒度などは検索バーに入れたものがそのまま適用されるので、グラフタイプをMuze Studioに変更する前にどのような集計粒度のデータでグラフを描きたいか、を決めておく必要があります。

 

うまくグラフが出なくなった場合は、一度検索バーをリセットしてやり直した方が良いです(もしくは別画面で日時の表記を確認した方が良いです)。

この項目合わせができれば、サンプルと同じチャートを描くことができます。まずはここから試してみてください。

 

グラフ自体は様々な調整が効くので、また本ブログでも紹介していきたいと思います。

 

参考URL

ThoughtSpotのドキュメントです。Muze Studioの有効化の方法が参考になります。

実際にグラフをどのように描くか、細かい設定など含めたメインのドキュメントになります。

 

※ThoughtSpot Version: 10.8.0.cl-117時点の情報です

おすすめの記事