Plotly 是一個開源的視覺化庫,用於建立互動式的、高品質的圖表和數據視覺化。它提供了多種繪圖型別,包括線圖、散點圖、柱狀圖、餅圖、面積圖、熱力圖、等高線圖等,並且支持三維和地理空間數據的視覺化。
「安裝」
pip install plotly
「使用」
「1. 繪制線圖」
import plotly.graph_objs as go
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = go.Figure(data=go.Scatter(x=x, y=y))
fig.show()
「2. 繪制散點圖」
import plotly.graph_objs as go
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))
fig.show()
「3. 繪制柱狀圖」
import plotly.graph_objs as go
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
fig = go.Figure(data=go.Bar(x=x, y=y))
fig.show()
「4. 繪制水平柱狀圖」
import plotly.graph_objs as go
y = ['A', 'B', 'C', 'D']
x = [10, 20, 15, 25]
fig = go.Figure(data=go.Bar(x=x, y=y, orientation='h'))
fig.show()
「5. 繪制餅圖」
import plotly.graph_objs as go
labels = ['A', 'B', 'C', 'D']
values = [30, 20, 25, 25]
fig = go.Figure(data=go.Pie(labels=labels, values=values))
fig.show()
「6. 繪制面積圖」
import plotly.graph_objs as go
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines', fill='tozeroy'))
fig.show()
「7. 繪制氣泡圖」
import plotly.graph_objs as go
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
size = [20, 30, 40, 50, 60]
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers', marker_size=size))
fig.show()
「8. 繪制熱力圖」
import plotly.graph_objs as go
import numpy as np
z = np.random.rand(10,10)
fig = go.Figure(data=go.Heatmap(z=z))
fig.show()
「9. 繪制等高線圖」
import plotly.graph_objs as go
import numpy as np
x = np.linspace(0, 5, 100)
y = np.linspace(0, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y)
fig = go.Figure(data=go.Contour(z=Z, x=x, y=y))
fig.show()
「10. 繪制三維散點圖」
import plotly.graph_objs as go
import numpy as np
x = np.random.rand(100)
y = np.random.rand(100)
z = np.random.rand(100)
fig = go.Figure(data=[go.Scatter3d(x=x, y=y, z=z, mode='markers')])
fig.show()
「11. 繪制3D線圖」
import plotly.graph_objs as go
import numpy as np
x = np.linspace(0, 5, 100)
y = np.linspace(0, 5, 100)
z = np.sin(x) * np.cos(y)
fig = go.Figure(data=go.Scatter3d(x=x, y=y, z=z, mode='lines'))
fig.show()
「12. 繪制3D曲面圖」
import plotly.graph_objs as go
import numpy as np
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
fig = go.Figure(data=[go.Surface(z=Z, x=x, y=y)])
fig.show()
「13. 繪制雷達圖」
import plotly.graph_objs as go
categories = ['A', 'B', 'C', 'D']
values = [3, 4, 2, 5]
fig = go.Figure(data=go.Scatterpolar(r=values, theta=categories, fill='toself'))
fig.show()
「14. 繪制直方圖」
import plotly.graph_objs as go
import numpy as np
x = np.random.randn(1000)
fig = go.Figure(data=[go.Histogram(x=x)])
fig.show()
「15. 繪制箱線圖」
import plotly.graph_objs as go
import numpy as np
y0 = np.random.randn(50)
y1 = np.random.randn(50) + 1
fig = go.Figure()
fig.add_trace(go.Box(y=y0, name='Group 1'))
fig.add_trace(go.Box(y=y1, name='Group 2'))
fig.show()
「16. 繪制誤差條圖」
import plotly.graph_objs as go
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
error = 0.1 * np.abs(y)
fig = go.Figure(data=go.Scatter(x=x, y=y, error_y=dict(type='data', array=error)))
fig.show()