📊 Dash dcc.Graph 完整教學:打造互動式圖表應用程式

更新於 發佈於 閱讀時間約 5 分鐘

Dash 是由 Plotly 所開發的 Python Web 應用框架,用來快速建構互動式資料視覺化應用。dcc.Graph 是 Dash 中的核心元件之一,用來顯示圖表(基於 Plotly 的視覺化功能),支援互動操作如滑鼠移動、點擊、縮放等。


📌 什麼是 dcc.Graph

dcc.Graph 是 Dash Core Components 中的視覺化元件,主要用來嵌入 Plotly 圖表。你可以使用任何 Plotly 的圖表格式(line, bar, pie, scatter, heatmap 等)來呈現資料。


🔧 安裝 Dash

如果你尚未安裝 Dash,可以先執行:

pip install dash

🧠 基本語法

import dash_core_components as dcc

dcc.Graph(
id='my-graph',
figure={
'data': [...], # 圖表資料(如散佈圖、折線圖)
'layout': {...} # 視覺佈局(標題、軸線、大小)
}
)

🟢 範例一:基本折線圖

raw-image
python
import dash
from dash import dcc
from dash import html
import plotly.graph_objs as go

app = dash.Dash(__name__)

app.layout = html.Div([
html.H1("折線圖範例"),
dcc.Graph(
id='line-chart',
figure={
'data': [
go.Scatter(x=[1, 2, 3, 4], y=[10, 15, 13, 17], mode='lines+markers', name='A線'),
go.Scatter(x=[1, 2, 3, 4], y=[16, 5, 11, 9], mode='lines', name='B線')
],
'layout': go.Layout(
title='簡單折線圖',
xaxis={'title': 'X軸'},
yaxis={'title': 'Y軸'}
)
}
)
])

if __name__ == '__main__':
app.run_server(debug=True)

🟠 範例二:互動式點擊事件(點圖時顯示資訊)

raw-image
import dash
from dash import dcc, html, Input, Output
import plotly.express as px
import pandas as pd

# 建立資料
df = px.data.iris()

app = dash.Dash(__name__)

app.layout = html.Div([
dcc.Graph(id='scatter-plot',
figure=px.scatter(df, x="sepal_width", y="sepal_length", color="species")),
html.Div(id='click-output')
])

@app.callback(
Output('click-output', 'children'),
Input('scatter-plot', 'clickData')
)
def display_click_data(clickData):
if clickData:
point = clickData['points'][0]
return f"你點選的是:({point['x']}, {point['y']}),種類為:{point['customdata'] if 'customdata' in point else '未知'}"
return "尚未點選任何點"

if __name__ == '__main__':
app.run_server(debug=True)

🔄 常用屬性說明

raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
149會員
291內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
你可能也想看
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
本文介紹如何用Python繪製散布圖與迴歸線
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
Thumbnail
這篇文章介紹如何使用Python整理資料成百分比資料以及繪製百分比堆疊直條圖。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News