以绘图方式设置坐标原点

2024-03-28 19:45:25 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

trace1 = go.Scatterpolar(
    r = r,
    theta = theta,
    mode='markers',
    marker=dict(
        size=12,
        color= iris.target,                
        opacity=1
        )
)

dc_1 = go.Scatterpolar( r = [0,V_r[0][0]],
                     theta = [0,V_r[0][1]],

                     marker = dict( size = 1,
                                    color = "rgb(84,48,5)"),
                     line = dict( color = "red",
                                width = 6),
                     name = "Var1"
                     )
dc_2 = go.Scatterpolar( r = [0,V_r[1][0]],
                   theta = [0,V_r[1][1]],

                   marker = dict( size = 1,
                                  color = "rgb(84,48,5)"),
                   line = dict( color = "green",
                                width = 6),
                   name = "Var2"
                 )
dc_3 = go.Scatterpolar( r = [0,V_r[2][0]],
                     theta = [0,V_r[2][1]],

                     marker = dict( size = 1,
                                  color = "rgb(84,48,5)"),
                     line = dict( color = "blue",
                                width = 6),
                     name = "Var3"
                 ) 
dc_4 = go.Scatterpolar( r = [0,V_r[3][0]],
                     theta = [0,V_r[3][1]],

                     marker = dict( size = 1,
                                  color = "rgb(84,48,5)"),
                     line = dict( color = "yellow",
                                width = 6),
                     name = "Var4"
                   )


data = [dc_1,dc_2,dc_3,dc_4, trace1]
layout = go.Layout( 
        xaxis=dict(
        title='PC1',
        rangemode='tozero',
        titlefont=dict(
           family='Courier New, monospace',
           size=18,
           color='#080707'
       )
   )
)
fig = go.Figure(data=data, layout=layout)
plot(fig, filename='Scatter polar, PCA.')

这是结果图:

enter image description here

如您所见,当前变量行从“0”开始,但坐标原点在r=-5(因为这是它接收到的第一个值)如何将其设置为r=0


Tags: namegodatasizelinergbdcwidth
1条回答
网友
1楼 · 发布于 2024-03-28 19:45:25

r必须用绝对值表示,因为地址给出θ的值。r不能是<;0个:

r = abs(np.squeeze(np.asarray(P[:,0])))
theta = (np.squeeze(np.asarray(P[:,1])))*(180/math.pi)

相关问题 更多 >