當前位置: 妍妍網 > 碼農

Python數據視覺化最佳庫——Plotly

2024-06-02碼農

Plotly 是一個開源的視覺化庫,用於建立互動式的、高品質的圖表和數據視覺化。它提供了多種繪圖型別,包括線圖、散點圖、柱狀圖、餅圖、面積圖、熱力圖、等高線圖等,並且支持三維和地理空間數據的視覺化。

「安裝」

pip install plotly

「使用」

「1. 繪制線圖」

import plotly.graph_objs as go
x = [12345]
y = [246810]
fig = go.Figure(data=go.Scatter(x=x, y=y))
fig.show()

「2. 繪制散點圖」

import plotly.graph_objs as go
x = [12345]
y = [246810]
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 = [10201525]
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 = [10201525]
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 = [30202525]
fig = go.Figure(data=go.Pie(labels=labels, values=values))
fig.show()

「6. 繪制面積圖」

import plotly.graph_objs as go
x = [12345]
y = [246810]
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='lines', fill='tozeroy'))
fig.show()

「7. 繪制氣泡圖」

import plotly.graph_objs as go
x = [12345]
y = [246810]
size = [2030405060]
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(05100)
y = np.linspace(05100)
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(05100)
y = np.linspace(05100)
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(-55100)
y = np.linspace(-55100)
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 = [3425]
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(010100)
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()