エリアチャート Vueコンポーネント

    Framework7には、シンプルなArea Chartコンポーネントが付属しています。このコンポーネントは、見栄えのする完全にレスポンシブなSVGチャートを生成します。

    エリアチャートコンポーネント

    以下のコンポーネントが含まれています。

    • f7-area-chart です。

    エリアチャートのプロパティ

    PropTypeDefaultDescription
    widthnumber640生成される SVG 画像の幅 (px)
    heightnumber320生成されるSVG画像の高さ(px単位)
    datasetsarray[]チャートのデータセット。配列 datasets の各オブジェクトは、以下のプロパティを持ちます。
    /** Dataset value */
    values: number[];
    /** Dataset HEX color */
    color?: string;
    /** Dataset label */
    label?: string;
    line-chartbooleanfalseラインチャートを有効にする(エリアチャートではなく)。
    axisbooleanfalseチャートの水平(X)軸を有効にする
    axis-labelsarray[]チャートの水平(X)軸のラベル データセットの値と同じ量のアイテムを持つ必要があります。
    tooltipbooleanfalseホバー時のツールチップを有効にする
    legendbooleanfalseチャートの凡例を表示する
    toggle-datasetsbooleanfalse有効にすると、凡例の項目をクリックしたときにデータセットが切り替わる。
    max-axis-labelsnumber8軸に表示する軸ラベルの最大数(tick)
    format-axis-labelfunction(label)軸ラベルのテキストをフォーマットするカスタムレンダリング関数
    format-legend-labelfunction(label)凡例ラベルのテキストをフォーマットするカスタムレンダリング関数
    format-tooltipfunction(data)tooltipのHTMLコンテンツを返さなければならないカスタムレンダリング関数です。受信した data オブジェクトには、以下のプロパティがあります。
    index: number;
    total: number;
    datasets: {
      color?: string;
      label: any;
      value: number;
    }
    format-tooltip-axisLabelfunction(label)Tooltipの軸ラベルのテキストをフォーマットするカスタムレンダリング関数
    format-tooltipT-totalfunction(total)Tooltipの合計値のテキストをフォーマットするカスタムレンダリング関数
    format-tooltip-datasetfunction(label, value, color)データセットのテキストをツールチップに表示するカスタムレンダリング関数

    エリアチャートのイベント

    EventArgumentsDescription
    select(index)Event will be triggered (when tooltip enabled) on chart hover

    Examples

    <template>
    <f7-page>
      <f7-navbar title="Area Chart" />
    
      <f7-block-title>Simple Area Chart</f7-block-title>
      <f7-block strong>
        <f7-area-chart
          :datasets="[
            {
              color: '#f00',
              values: [0, 100, 250, 300, 175, 400],
            },
            {
              color: '#00f',
              values: [100, 75, 133, 237, 40, 200],
            },
            {
              color: '#ff0',
              values: [100, 300, 127, 40, 250, 80],
            },
          ]"
        />
      </f7-block>
      <f7-block-title>Area Chart With Tooltip</f7-block-title>
      <f7-block strong>
        <f7-area-chart
          tooltip
          :datasets="[
            {
              label: 'Red data',
              color: '#f00',
              values: [100, 75, 133, 237, 40, 200],
            },
            {
              label: 'Blue data',
              color: '#00f',
              values: [100, 300, 127, 40, 250, 80],
            },
            {
              label: 'Yellow data',
              color: '#ff0',
              values: [0, 100, 250, 300, 175, 400],
            },
          ]"
        />
      </f7-block>
      <f7-block-title>Area Chart With Axis</f7-block-title>
      <f7-block strong>
        <f7-area-chart
          tooltip
          axis
          :axis-labels="dates"
          :format-axis-label="(date) => axisDateFormat.format(date)"
          :format-tooltip-axis-label="(date) => tooltipDateFormat.format(date)"
          :datasets="[
            {
              label: 'Green data',
              color: '#0f0',
              values: [100, 75, 133, 237],
            },
            {
              label: 'Red data',
              color: '#f00',
              values: [100, 300, 127, 47],
            },
            {
              label: 'Yellow data',
              color: '#ff0',
              values: [0, 100, 250, 307],
            },
          ]"
        />
      </f7-block>
      <f7-block-title>Area Chart With Legend</f7-block-title>
      <f7-block strong>
        <f7-area-chart
          tooltip
          axis
          :axis-labels="dates"
          legend
          toggle-datasets
          :format-axis-label="(date) => axisDateFormat.format(date)"
          :format-tooltip-axis-label="(date) => tooltipDateFormat.format(date)"
          :datasets="[
            {
              label: 'Red data',
              color: '#f00',
              values: [100, 300, 127, 47],
            },
            {
              label: 'Blue data',
              color: '#00f',
              values: [100, 75, 133, 237],
            },
            {
              label: 'Yellow data',
              color: '#ff0',
              values: [0, 100, 250, 307],
            },
          ]"
        />
      </f7-block>
      <f7-block-title>Lines Chart</f7-block-title>
      <f7-block strong>
        <f7-area-chart
          tooltip
          axis
          :axis-labels="dates"
          legend
          toggle-datasets
          line-chart
          :format-axis-label="(date) => axisDateFormat.format(date)"
          :format-tooltip-axis-label="(date) => tooltipDateFormat.format(date)"
          :datasets="[
            {
              label: 'Red data',
              color: '#f00',
              values: [0, 300, 127, 47],
            },
            {
              label: 'Blue data',
              color: '#00f',
              values: [0, 75, 133, 237],
            },
            {
              label: 'Green data',
              color: '#0f0',
              values: [0, 100, 250, 307],
            },
          ]"
        />
      </f7-block>
    </f7-page>
    </template>
    <script>
    export default {
      setup() {
        // helpers data for axis
        const dates = [];
        const today = new Date();
        const year = today.getFullYear();
        const month = today.getMonth();
        for (let i = 0; i < 4; i += 1) {
          dates.push(new Date(year, month - (3 - i)));
        }
        const axisDateFormat = Intl.DateTimeFormat(undefined, { month: 'short', year: 'numeric' });
        const tooltipDateFormat = Intl.DateTimeFormat(undefined, { month: 'long', year: 'numeric' });
        return {
          dates,
          axisDateFormat,
          tooltipDateFormat,
        };
      },
    };
    </script>