当前位置: 欣欣网 > 码农

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