【发布时间】:2021-05-08 22:35:44
【问题描述】:
我想创建一个程式化的图表来解释 SVM 分类器。
代码和图表:
import plotly.graph_objs as go
import numpy as np
import pandas as pd
from plotly.subplots import make_subplots
columns = ['x1','y1','z1','x1','y2','z2','xl1','yl1']
x1 = np.random.normal(1,0.2,50)
y1 = np.random.normal(1,0.2,50)
z1 = np.random.normal(2,0.2,50)
xl1 = 50*[2.5]
yl1 = 50*[2.5]
x2 = np.random.normal(2,0.2,50)
y2 = np.random.normal(2,0.2,50)
z2 = np.random.normal(2,0.2,50)
df = pd.DataFrame({'x1' : x1,'y1' : y1,'z1' : z1,
'x2' : x2,'y2' : y2,'z2' : z2,
'xl1' : xl1,'yl1' : yl1})
fig = make_subplots(rows=2, cols=2,
specs=[[{"type": "scatter"}, {"type": "scatter3d"}],
[{"type": "scatter3d"}, {"type": "scatter3d"}]])
fig.add_trace(go.Scatter(x=x1, y=y1, mode='markers'), row=1, col=1)
fig.add_trace(go.Scatter(x=x2, y=y2, mode='markers'), row=1, col=1)
fig.add_trace(go.Scatter(x=[3.5,0], y=[0,2.5], mode='lines'), row=1, col=1)
fig.add_trace(go.Scatter3d(x=x1, y=y1,z=z1, mode='markers'), row=1, col=2)
fig.add_trace(go.Scatter3d(x=x2, y=y2,z=z2, mode='markers'), row=1, col=2)
fig.add_trace(go.Scatter3d(x=[3.5,0,2.1], y=[0,2.5,2.1], z=100*[1,1,1], mode='lines'), row=1, col=2)
fig.add_trace(go.Scatter3d(x=x1, y=y1,z=z1, mode='markers'), row=2, col=1)
fig.add_trace(go.Scatter3d(x=x2, y=y2,z=z2, mode='markers'), row=2, col=1)
fig.add_trace(go.Scatter3d(x=x1, y=y1,z=z1, mode='markers'), row=2, col=2)
fig.update_layout(height=700, showlegend=False)
fig.show()
我想为 4 个图形可视化一个程式化的超平面。 在 subplot 1 中,我只是创建了一条线。 如何在其他 3 个图中实现超车道? (见图)
我找不到一个很好的例子。 Any1 知道一些用于我的目的的智能代码?
【问题讨论】:
标签: python plotly svm plotly-python