目錄
在 Plotly.js 中建立圓餅圖
在 Plotly.js 中创建仪表图表
最终想法
首頁 web前端 js教程 製作互動式圖表:使用Plotly.js建立餅圖和儀表板圖表,第五部分

製作互動式圖表:使用Plotly.js建立餅圖和儀表板圖表,第五部分

Sep 03, 2023 pm 03:33 PM
圓餅圖 互動式 plotlyjs 儀錶板圖表

製作互動式圖表:使用Plotly.js建立餅圖和儀表板圖表,第五部分

如果您從一開始就關注本系列,您可能已經注意到 Plotly.js 使用相同的 scatter 類型來建立折線圖和氣泡圖。唯一的差異是,我們在創建折線圖時必須將mode 設定為lines,而在建立氣泡圖時必須將markers 設定為 mode

同樣,Plotly.js 允許您透過對 type 屬性使用相同的值並根據您要建立的圖表來變更其他屬性的值來建立圓餅圖、圓環圖和儀表圖。

在 Plotly.js 中建立圓餅圖

您可以透過將 type 屬性設為 pie 來在 Plotly.js 中建立圓餅圖。還有其他屬性,例如 opacityvisiblename 也是其他圖表類型所共有的。 name 屬性用於提供目前餅圖追蹤的名稱。該名稱隨後顯示在圖例中以供識別。您可以透過將 showlegend 屬性分別設定為 truefalse 來顯示或隱藏圖表圖例中的圓餅圖追蹤。您可以使用 labels 屬性為圓餅圖的不同部分設定標籤名稱。

對於圓餅圖,標記物件用於控制圖表不同部分的外觀。嵌套在 marker 中的 color 屬性可用來設定圓餅圖每個磁區的顏色。不同磁區的顏色可以指定為 color 屬性的陣列值。

您也可以使用嵌套在線條物件內的 colorwidth 屬性來設定包圍每個磁區的所有線條的顏色和寬度。您也可以選擇使用布林值 sort 屬性對餅圖的所有磁區從大到小進行排序。同樣,借助 direction 屬性,可以將磁區的方向變更為 順時針 逆時針

以下程式碼建立一個基本圓餅圖,其中列出了世界上前五個國家的森林面積。

var pieDiv = document.getElementById("pie-chart");

var traceA = {
  type: "pie",
  values: [8149300, 4916438, 4776980, 3100950, 2083210],
  labels: ['Russia', 'Canada', 'Brazil', 'United States', 'China']
};

var data = [traceA];

var layout = {
  title: "Area Under Forest for Different Countries"
};

Plotly.plot(pieDiv, data, layout);
登入後複製

如您所見,我們不再使用 xy 屬性來指定我們要繪製的點。現在,這是在 valueslabels 的幫助下完成的。百分比是根據輸入值自動決定的。

預設情況下,圓餅圖的第一片從 12 點開始。您可以使用 rotation 屬性來變更圖表的起始角度,該屬性接受 -360 到 360 之間的值。預設的 12 點鐘值等於角度 0。

如果您希望圖表中的某個切片脫穎而出,您可以使用 pull 屬性,該屬性可以接受一個數字或值在 0 到 1 之間的數字數組。 pull 屬性用於從圓餅圖中拉出指定的磁區。拉動距離等於餡餅或甜甜圈較大半徑的一小部分。

透過指定 hole 屬性的值,可以非常輕鬆地將餅圖轉換為圓環圖。它將從餅圖中切出給定的半徑部分以製作圓環圖。

您可以使用嵌套在標記物件內的 colors 屬性來控制圓餅圖中各個磁區的顏色。也可以藉助嵌套在線條物件內的 widthcolor 屬性來變更包圍每個磁區的線條的寬度和顏色。包圍線的預設寬度為 0。這意味著預設不會在磁區周圍繪製任何線。

還有一個 hovertext 屬性,可用來為每個單獨的磁區提供一些額外的文字資訊。當觀看者將滑鼠懸停在某個扇區上時,他們將可以看到這些資訊。顯示文字的條件之一是 hoverinfo 屬性應包含 text 標誌。您可以使用嵌套在familysizecolor 屬性來設定圓餅圖磁區內部或外部的文字顏色"inline ">insidetextfont 和outsidetextfont 分別是物件。

以下代码使用之前饼图中的数据来创建一个圆环图,该圆环图使用我们刚刚了解的其他属性。

var pieDiv = document.getElementById("pie-chart");

var traceA = {
  type: "pie",
  values: [8149300, 4916438, 4776980, 3100950, 2083210],
  labels: ['Russia', 'Canada', 'Brazil', 'United States', 'China'],
  hole: 0.25,
  pull: [0.1, 0, 0, 0, 0],
  direction: 'clockwise',
  marker: {
    colors: ['#CDDC39', '#673AB7', '#F44336', '#00BCD4', '#607D8B'],
    line: {
      color: 'black',
      width: 3
    }
  },
  textfont: {
    family: 'Lato',
    color: 'white',
    size: 18
  },
  hoverlabel: {
    bgcolor: 'black',
    bordercolor: 'black',
    font: {
      family: 'Lato',
      color: 'white',
      size: 18
    }
  }
};

var data = [traceA];

var layout = {
  title: "Area Under Forest for Different Countries"
};

Plotly.plot(pieDiv, data, layout);
登入後複製

在 Plotly.js 中创建仪表图表

仪表图的基本结构与圆环图类似。这意味着我们可以使用一些巧妙选择的值并通过仍然将 type 属性设置为 pie 来创建简单的仪表图表。基本上,我们将隐藏整个饼图的某些部分,使其看起来像仪表图。

首先,我们需要为 values 属性选择一些值。为了简单起见,我将使用饼图的上半部分作为我的仪表图。这意味着这些值应该在我想要可见的部分和我想要隐藏的饼图部分之间平均分配。图表的可见部分可以进一步分为更小的部分。以下是为仪表图表选择值的示例。

values: [100 / 5, 100 / 5, 100 / 5, 100 / 5, 100 / 5, 100]
登入後複製

上行中的数字 100 是任意的。可以看到,前五个切片加起来是100,这也是为饼图隐藏区域设置的值。这将整个馅饼平均分为隐藏部分和可见部分。

这是创建基本仪表图表的完整代码。您应该注意到,我已将应隐藏的扇区的颜色属性设置为白色。同样,相应扇区的 textlabels 值也已设置为空字符串。 rotation 属性已设置为 90,以便图表不会从默认的 12 点钟位置绘制。

var gaugeDiv = document.getElementById("gauge-chart");

var traceA = {
  type: "pie",
  showlegend: false,
  hole: 0.4,
  rotation: 90,
  values: [100 / 5, 100 / 5, 100 / 5, 100 / 5, 100 / 5, 100],
  text: ["Very Low", "Low", "Average", "Good", "Excellent", ""],
  direction: "clockwise",
  textinfo: "text",
  textposition: "inside",
  marker: {
    colors: ["rgba(255, 0, 0, 0.6)", "rgba(255, 165, 0, 0.6)", "rgba(255, 255, 0, 0.6)", "rgba(144, 238, 144, 0.6)", "rgba(154, 205, 50, 0.6)", "white"]
  },
  labels: ["0-10", "10-50", "50-200", "200-500", "500-2000", ""],
  hoverinfo: "label"
};
登入後複製

代码的下一部分涉及仪表图表的指针。您为 Degrees 变量设置的值将确定绘制针的角度。 radius 变量决定针的长度。属性 x0y0 用于设置线条的起点。同样,属性 x1y1 用于设置线条的终点。

您可以借助 SVG 路径为针创建更复杂的形状。您所要做的就是将 type 属性设置为 path 并使用 path 属性指定实际路径。您可以在参考的布局形状部分阅读更多相关信息。

var degrees = 115, radius = .6;
var radians = degrees * Math.PI / 180;
var x = -1 * radius * Math.cos(radians);
var y = radius * Math.sin(radians);

var layout = {
  shapes:[{
      type: 'line',
      x0: 0,
      y0: 0,
      x1: x,
      y1: 0.5,
      line: {
        color: 'black',
        width: 8
      }
    }],
  title: 'Number of Printers Sold in a Week',
  xaxis: {visible: false, range: [-1, 1]},
  yaxis: {visible: false, range: [-1, 1]}
};

var data = [traceA];

Plotly.plot(gaugeDiv, data, layout, {staticPlot: true});
登入後複製

本节的所有代码都会创建以下仪表图表。目前,该图表不是很奇特,但它可以作为一个很好的起点。

最终想法

在本教程中,您学习了如何使用 Plotly.js 中的 pie 跟踪类型创建饼图和圆环图。您还学习了如何仔细设置一些属性的值,以将这些饼图转换为简单的仪表图。您可以在参考页面上阅读有关饼图及其不同属性的更多信息。

这是我们的交互式 Plotly.js 图表系列的最后一个教程。第一个介绍性教程为您提供了该库的概述。第二、第三和第四教程分别向您展示了如何创建折线图、条形图和气泡图。我希望您喜欢本教程以及整个系列。如果您有任何疑问,请随时在评论中告诉我。

以上是製作互動式圖表:使用Plotly.js建立餅圖和儀表板圖表,第五部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Vue統計圖表的圓餅圖和雷達圖功能實現 Vue統計圖表的圓餅圖和雷達圖功能實現 Aug 18, 2023 pm 12:28 PM

Vue統計圖表的圓餅圖和雷達圖功能實現引言:隨著網路的發展,資料分析和圖表顯示的需求也越來越迫切。 Vue作為一種流行的JavaScript框架,提供了豐富的資料視覺化插件和元件,方便開發人員快速實現各種統計圖表。本文將介紹如何使用Vue實現圓餅圖和雷達圖的功能,並提供相關的程式碼範例。引入統計圖表插件在Vue開發中,我們可以使用一些優秀的統計圖表插件來幫助我們實

如何在 Microsoft Excel 圖表中新增和自訂資料標籤? 如何在 Microsoft Excel 圖表中新增和自訂資料標籤? May 07, 2023 pm 04:22 PM

Microsoft Excel有許多至今令人驚嘆的功能。人們每天都會學到一些新東西。今天,我們將了解如何在Excel圖表中新增和自訂資料標籤。 Excel圖表包含大量數據,一眼看懂圖表可能具有挑戰性。使用數據標籤是指出重要資訊的好方法。數據標籤可以用作長條圖或長條圖的一部分。當您創建餅圖時,它甚至可以用作標註。新增資料標籤為了展示如何新增資料標籤,我們將以圓餅圖為例。雖然大多數人使用圖例來顯示圓餅圖中的內容,但資料標籤的效率要高得多。若要新增資料標籤,請建立圓餅圖。打開它,然後點擊顯示圖表設計

如何使用ECharts和Python介面建立​​餅圖 如何使用ECharts和Python介面建立​​餅圖 Dec 17, 2023 am 10:23 AM

如何使用ECharts和Python介面創建餅圖ECharts是一個開源的資料視覺化庫,它提供了豐富的圖表類型和靈活的配置選項,使得開發者可以輕鬆地創建各種圖表,包括餅圖。而Python則提供了強大的資料處理和視覺化的工具,結合ECharts的Python接口,我們可以使用Python語言來產生餅圖,並在Web頁面中展示出來。接下來,我將介紹如何使用ECha

製作互動式圖表:使用Plotly.js建立餅圖和儀表板圖表,第五部分 製作互動式圖表:使用Plotly.js建立餅圖和儀表板圖表,第五部分 Sep 03, 2023 pm 03:33 PM

如果您從一開始就關注本系列,您可能已經注意到Plotly.js使用相同的scatter類型來建立折線圖和氣泡圖。唯一的區別是,我們在創建折線圖時必須將mode設定為lines,而在創建氣泡圖時必須將markers設定為mode。同樣,Plotly.js允許您透過對type屬性使用相同的值並根據您要建立的圖表更改其他屬性的值來建立圓餅圖、圓環圖和儀表圖。在Plotly.js中建立餅圖您可以透過將type屬性設定為pie來在Plotly.js中建立圓餅圖。還有其他屬性,例如opacity、visible

如何使用HTML、CSS和jQuery建立一個互動式的地圖 如何使用HTML、CSS和jQuery建立一個互動式的地圖 Oct 25, 2023 am 09:40 AM

如何使用HTML、CSS和jQuery創建一個互動式的地圖地圖是一種常見的視覺化工具,可以幫助使用者更輕鬆地了解和瀏覽地理位置和相關資訊。透過使用HTML、CSS和jQuery,我們可以建立一個互動式的地圖,並添加一些有趣且實用的功能。本文將指導您如何使用這些技術來建立自己的互動式地圖。在創建HTML結構首先,我們需要建立HTML結構來容納地圖。以下是一個基本

三分鐘學會用Python繪製線形圖、長條圖和圓餅圖 三分鐘學會用Python繪製線形圖、長條圖和圓餅圖 Sep 27, 2023 am 09:29 AM

三分鐘學會用Python繪製線形圖、長條圖和圓餅圖Python是一種非常流行的程式語言,廣泛應用於數據分析和視覺化。在這篇文章中,我們將學習如何使用Python繪製三種常見的圖表:線形圖、長條圖和圓餅圖。我將為你提供具體的程式碼範例,以幫助你快速上手。線形圖線形圖是一種透過連接資料點來顯示趨勢變化的圖表類型。在Python中,我們可以使用matplotlib函式庫來繪

使用JavaScript開發互動式地圖應用 使用JavaScript開發互動式地圖應用 Aug 09, 2023 pm 01:53 PM

使用JavaScript開發互動式地圖應用引言:如今,地圖應用程式已成為我們日常生活中重要的一部分。無論是尋找路線、查看附近的商店或探索未知的地區,地圖應用程式都幫助我們輕鬆實現這些需求。在本文中,我們將學習使用JavaScript開發一個互動式地圖應用,並加入程式碼範例幫助讀者更好地理解。建立HTML結構:首先,我們需要在HTML檔案中建立地圖應用程式所需的基本結構

如何用Python繪製動態和互動式地理圖表 如何用Python繪製動態和互動式地理圖表 Sep 28, 2023 pm 09:37 PM

如何用Python繪製動態和互動式地理圖表導語:在資料視覺化中,地理圖表是一種常見且強大的工具,它可以幫助我們更好地理解資料集中的空間分佈模式和趨勢。 Python作為一種通用的程式語言,擁有強大的資料處理和視覺化能力,也可以用於繪製動態和互動式地理圖表。本文將介紹如何使用Python繪製動態和互動式地理圖表,並提供具體的程式碼範例。一、準備工作在使用Pytho

See all articles