円グラフ Svelte コンポーネント

Framework7 には、シンプルな円グラフコンポーネントが付属しています。 見栄えの良い、完全にレスポンシブな SVG グラフを作成します。

円グラフコンポーネント

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

円グラフのプロパティ

プロパティタイプデフォルト説明
size数値320生成される SVG 画像のサイズ (ピクセル単位)
tooltip真偽値falseホバー時にツールチップを有効にする
datasets配列[]グラフのデータセット。 `datasets` 配列の各オブジェクトには、以下のプロパティがあります
/** Dataset value */
value: number;
/** Dataset HEX color */
color?: string;
/** Dataset label */
label?: string;
formatTooltip関数(data)ツールチップの HTML コンテンツを返すカスタムレンダリング関数。 受信した `data` オブジェクトには、以下のプロパティがあります
index: number;
value: number;
label: string;
color: string;
percentage: number;

円グラフのイベント

イベント引数説明
select(index, item)グラフにホバーしたときにイベントが発生します (ツールチップが有効な場合)

pie-chart.svelte
<script>
  import { Page, Navbar, BlockTitle, Block, PieChart } from 'framework7-svelte';
</script>

<Page>
  <Navbar title="Pie Chart" />
  <Block strongIos outlineIos>
    <p>Framework7 comes with simple to use and fully responsive Pie Chart component.</p>
    <p>
      Pie Chart generates SVG layout which makes it also compatible with SSR (server side
      rendering).
    </p>
  </Block>
  <BlockTitle>Simple Pie Chart</BlockTitle>
  <Block strongIos outlineIos>
    <!-- prettier-ignore -->
    <PieChart
      datasets={[
        {
          value: 100,
          color: '#f00',
        },
        {
          value: 200,
          color: '#0f0',
        },
        {
          value: 300,
          color: '#00f',
        },
      ]}
    />
  </Block>

  <BlockTitle>With Tooltip</BlockTitle>
  <Block strongIos outlineIos>
    <!-- prettier-ignore -->
    <PieChart
      tooltip
      datasets={[
        {
          label: 'JavaScript',
          value: 150,
          color: '#ff0',
        },
        {
          label: 'Vue.js',
          value: 150,
          color: '#0f0',
        },
        {
          label: 'TypeScript',
          value: 400,
          color: '#00f',
        },
      ]}
    />
  </Block>

  <BlockTitle>Custom Format Tooltip</BlockTitle>
  <Block strongIos outlineIos>
    <!-- prettier-ignore -->
    <PieChart
      tooltip
      datasets={[
        {
          label: 'JavaScript',
          value: 1000,
          color: '#ff0',
        },
        {
          label: 'Vue.js',
          value: 100,
          color: '#0f0',
        },
        {
          label: 'TypeScript',
          value: 200,
          color: '#00f',
        },
      ]}
      formatTooltip={({ color, value, label }) =>
        `You have <span style="color: ${color}">${value} points</span> for ${label}`
      }
    />
  </Block>
</Page>