如何在可交互的绘图中手动更改标记形状

hem*_*nta 4 python plotly

我试图在可交互的绘图中为不同的颜色分配不同的标记。通过使用以下脚本,我可以获得交互式绘图,可以更改标记“o”的大小,可以注释文本。附上我得到的情节。我想更改附加的 PCA 图中的标记。plotly_plot主成分分析图

#脚本

import plotly 
import plotly.plotly as py
from plotly.graph_objs import Scatter
import plotly.graph_objs as go
plotly.tools.set_credentials_file(username='XXX', api_key='XXXX')
#py.plot(data, filename = 'basic-line', auto_open=True, Transforms = 'Split')

trace1 = Scatter(
    x=x1,           # x-coordinates of trace
    y=y1,          # y-coordinates of trace
    mode='markers + text',   # scatter mode
    text = label1, textposition='top center',
    marker = dict(size = 15, color = color_3),
     textfont=dict(
        color='black',
        size=18,
        family='Times New Roman'
     )

    )

layout = {
    'xaxis': {
        'showticklabels': False,
        'showgrid': False,
        'zeroline': False,
    },
    'yaxis': {
        'showticklabels': False,
        'showgrid': False,
        'zeroline': False,
    }
}
data = [trace1]

fig = {
    'data': data,
    'layout': layout,
}

py.plot(fig, filename='example1')
Run Code Online (Sandbox Code Playgroud)

我手动更改了散点的颜色,我有一个颜色列表(color_3)。我可以为每种颜色分配一个标记,比如marker_list。但是我怎样才能在 plotly 中使用这个 marker_list 来获得类似于附加的 PCA 图的图?在做 PCA 绘图时,我将它添加到 ax.scatter 中,请参阅下面的片段:

for i in range(len(marker_list)):
    ax.scatter(x1[i], y1[i], color = color_3[i], s=150, marker=marker_list[i], alpha=0.8, edgecolors='none')
Run Code Online (Sandbox Code Playgroud)

我可以在上述脚本的某处使用相同的标记列表来获得交互式绘图吗?任何帮助,将不胜感激。提前致谢。

更新 后 Iljas 建议并使用列表中的名称而不是数字。我得到了以下情节,这是我正在寻找的类型。 在此处输入图片说明

ilj*_*lja 5

您可以使用symbol属性设置标记的形状,例如:

trace1 = Scatter(
    x=x1,           # x-coordinates of trace
    y=y1,          # y-coordinates of trace
    mode='markers + text',   # scatter mode (more in UG section 1)
    text = label1, textposition='top center',
    marker = dict(size = 15, color = color_3, symbol = 'cross'), # Add symbol here!
     textfont=dict(
        color='black',
        size=18,
        family='Times New Roman'
     )
Run Code Online (Sandbox Code Playgroud)

可以在文档中找到不同形状的概述

当然,您也可以按类传递不同形状的列表,就像您对颜色所做的那样。