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()