我正在尝试在交互式绘图中为不同的颜色分配不同的标记。通过使用以下脚本,我可以获得交互式绘图,可以更改标记“ o”的大小,可以注释文本。附上我的情节情节。我想更改标记,如所附PCA图所示。
#SCRIPT
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')
我手动更改了散点的颜色,我有一个颜色列表(color_3)。我可以为每种颜色分配一个标记,例如marker_list。但是,如何在图上使用此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')
我可以在上述脚本中的某处使用相同的标记列表来获得交互式的绘图吗?任何帮助,将不胜感激。预先感谢。
答案 0 :(得分:2)
您可以使用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'
)
docs内有不同形状的概述
当然,您也可以按类别传递不同形状的列表,就像您对颜色所做的一样。