跳到主要內容
+

圖表 - 圓餅圖

圓餅圖使用圓弧或角度來表示整體的各個部分。

基本用法

若要繪製圓餅圖,序列必須具有包含物件陣列的 data 屬性。這些物件應包含 value 屬性。它們也可以具有 label 屬性。

如果您計劃更新/重新排序這些數據,則應新增一個 id 屬性,用於 key props。

- MUI 元件庫
按下 Enter 鍵開始編輯

顏色

圓餅圖的顏色可以透過兩種方式自訂。

  1. 您可以提供調色盤。圓餅圖的每個圓弧將根據此調色盤著色。
  2. 您可以在 data 物件中提供 color 屬性,以覆蓋調色盤。
<PieChart
  colors={['red', 'blue', 'green']} // Use palette
  series={[
    {
      data: [
        { value: 10, color: 'orange' }, // Use color property
        // ...
      ],
    },
  ]}
/>

預設

調色盤

項目

尺寸

圓餅圖序列的形狀由多個屬性描述

  • innerRadius 圓心與圓弧起點之間的半徑。預設值為 0。
  • outerRadius 圓心與圓弧終點之間的半徑。預設值為繪圖區域中可用的最大值。
  • arcLabelRadius 圓心與圓弧標籤之間的半徑。
  • paddingAngle 兩個圓弧之間的角度(以度為單位)。
  • cornerRadius 類似於 CSS 的 border-radius
  • startAngle/endAngle 圓餅圖的角度範圍。值以度為單位。
  • cx/cy 圓餅圖的中心點。預設為繪圖區域的中心。
- MUI 元件庫
import { PieChart } from '@mui/x-charts/PieChart';

<PieChart
  series={[
    {
      data: [ ... ],
      innerRadius: 30,
      outerRadius: 100,
      paddingAngle: 5,
      cornerRadius: 5,
      startAngle: -45,
      endAngle: 225,
      cx: 150,
      cy: 150,
    }
  ]}
/>

互動範例


以下屬性接受百分比字串(例如 '50%')。

  • innerRadius/outerRadius/arcLabelRadius'100%' 等同於適合繪圖區域的最大半徑。
  • cxcy'100%' 等同於繪圖區域的寬度/高度。

標籤

您可以在圓弧上顯示標籤。若要執行此操作,序列應取得 arcLabel 屬性。它可以取得一個函數,該函數取得與圓弧關聯的物件並傳回標籤。或者,您可以傳遞以下值之一

  • 'value' 顯示圓弧的原始值。
  • 'formattedValue' 顯示圓弧的 valueFormatter 傳回值。
  • 'label' 顯示圓弧的 label 屬性(如果提供)。

為了避免在小圓弧上顯示標籤,您可以提供 arcLabelMinAngle 屬性。角度小於該值(以度為單位)的圓弧將不會有標籤。

- MUI 元件庫72.72%16.38%
按下 Enter 鍵開始編輯

醒目提示

圓餅圖序列可以取得 highlightScope 屬性來管理元素醒目提示。其行為在專門頁面中描述。

當元素被醒目提示或淡化時,可以使用專用的 CSS 類別進行自訂:.MuiPieArc-faded.MuiPieArc-highlighted

CSS 非常適合修改 colorstroke-widthopacity。但是,若要修改圓餅圖圓弧的大小,您必須使用 highlightedfaded 屬性,透過它們,您可以在圓弧被醒目提示或淡化時覆蓋任何 innerRadiusouterRadiuscornerRadius 屬性。

如果您不想提供絕對值,可以使用 additionalRadius,它將被新增到 outerRadius。此值可以是負數以縮小圓弧大小。

按下 Enter 鍵開始編輯

點擊事件

圓餅圖提供 onItemClick 處理器,用於處理特定圓餅圖圓弧的點擊。它具有以下簽名。

const onItemClick = (
  event, // The mouse event.
  params, // An object that identifies the clicked element.
) => {};
- MUI 元件庫

點擊圖表

// Data from item click
// The data will appear here

動畫

若要在圖表的建立和更新時跳過動畫,您可以使用 skipAnimation prop。當設定為 true 時,它會跳過由 @react-spring/web 驅動的動畫。

圖表容器已使用 @react-spring/webuseReducedMotion 來根據使用者偏好跳過動畫。

// For a single component chart
<PieChart skipAnimation />

// For a composed chart
<ResponsiveChartContainer>
  <PiePlot skipAnimation />
</ResponsiveChartContainer>

項目數量

半徑

API

請參閱以下文件,以取得此處提及的組件可用的所有 props 和類別的完整參考。