Plotly 條形圖

Ammar Ali 2022年5月14日
Plotly 條形圖

本教程將討論使用 Plotly 的 bar() 函式建立條形圖。

Plotly 條形圖

條形圖將資料顯示為矩形條,其高度等於它所代表的值。我們可以使用 Plotly 的 bar() 函式來建立條形圖。

條形圖有兩個軸;一個軸將資料表示為矩形條,另一個軸是標籤。我們可以通過交換軸使垂直條形圖水平。

我們應該在 bar() 函式中傳遞資料和標籤來建立條形圖。我們還可以在 bar() 函式中傳遞資料框或陣列。

讓我們建立一個隨機資料的條形圖。請參閱下面的程式碼。

import plotly.express as px

labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(x=labels, y=value, height=400, width=500)
fig.show()

輸出:

條形圖

widthheight 引數用於設定圖形的寬度和高度(以畫素為單位)。我們可以使用 color 引數和與輸入資料長度相同的數字陣列為每個單元格賦予不同的顏色。

我們可以使用 text 引數和包含每個單元格文字的字串列表在每個單元格中放置文字。我們可以使用 base 引數和包含每個細胞鹼基位置的列表來設定每個細胞鹼基的位置。

我們可以使用 x 軸的 error_x 引數和 y 軸的 error_y 引數為每​​個單元格新增誤差線。引數的值應該是一個包含每個單元格的數字錯誤值的列表。

我們可以使用 opacity 引數將每個單元格的不透明度設定為 0 到 1。我們可以使用 orientation 引數將單元格的方向設定為水平或垂直,並將其設定為 v 表示垂直,h 表示水平。

我們可以使用 x 軸的 log_x 引數和 y 軸的 log_y 引數將每個軸設定為對數比例,並將其值設定為 true。我們還可以使用 title() 引數和包含標題文字的字串來設定圖形標題。

讓我們改變上面提到的引數。請參閱下面的程式碼。

import plotly.express as px

labels = ["One", "Two", "Three"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=[1, 5, 10],
    text=["a", "b", "c"],
    base=[0, 15, 50],
    error_y=[5, 10, 15],
    opacity=0.8,
    orientation="v",
    title="plotly bar plot",
)
fig.show()

輸出:

改變 plotly 條形圖的屬性

預設情況下,bar() 函式為每個單元格賦予不同的顏色,但我們可以使用 colorcolor_discrete_map 引數設定每個單元格的顏色。我們必須在 color 引數中傳遞每個單元格標籤,並使用 color_discrete_map 引數給每個標籤一個顏色,以更改每個單元格的顏色。

如果我們沒有為標籤定義顏色,bar() 函式會自動為其賦予隨機顏色。讓我們設定每個單元格的顏色。

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=labels,
    color_discrete_map={
        "A": "green",
        "B": "cyan",
        "C": "yellow",
    },
)
fig.show()

輸出:

改變條形圖的顏色

我們還可以使用 color_continuous_scale 引數更改預設顏色比例或序列以設定每個單元格的顏色。引數的值應該是有效 CSS 顏色的列表。我們可以使用 Plotly 的內建顏色序列,如 RdBuInfernoJetHotRainbowSunset

讓我們使用 Rainbow 顏色序列更改餅圖的顏色。請參閱下面的程式碼。

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 100]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=value,
    color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.show()

輸出:

改變條形圖的顏色順序

要更改程式碼中的顏色序列,我們應該將顏色序列的名稱從 Rainbow 更改為 Sunset。單擊此連結以獲取有關 Plotly 中顏色序列的更多資訊。

我們還可以使用 fig.update_traces() 函式更新 bar() 函式的軌跡。我們可以使用 text 引數設定每個單元格內顯示的文字,並使用 textposition 引數設定文字的位置。支援的文字位置是 outsideinsideautonone

我們可以使用 textfont_size 引數更改文字的字型大小,使用 textangle 引數更改文字角度,使用 textfont_color 引數更改文字顏色。我們可以使用標記引數更改標記屬性,例如線寬和顏色。

讓我們為每個單元格新增隨機文字,給每個文字顏色、角度、字型大小、每個單元格周圍的線,並設定它的顏色和寬度。

import plotly.express as px

labels = ["A", "B", "C"]
value = [10, 50, 80]
fig = px.bar(
    x=labels,
    y=value,
    height=400,
    width=500,
    color=value,
    color_continuous_scale=px.colors.sequential.Rainbow,
)
fig.update_traces(
    text=["First", "Second", "Third"],
    textposition="outside",
    textfont_size=16,
    textangle=90,
    textfont_color="Red",
    marker=dict(line=dict(color="green", width=3)),
)
fig.show()

輸出:

改變條形圖的痕跡

單擊此連結以獲取有關 bar() 函式跟蹤的更多資訊。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - Plotly Plot