将自定义图例(标记颜色)添加到plotly python
我试着用plotly来形象化交易算法。我有两个数据帧:一个是接近价格的数据帧,另一个是我的算法执行的事务数据帧。绿点代表买入,红色代表卖出。我也希望有一个菜单,能够选择什么股票进行分析。就目前而言,一切都是通过在收盘价上画出动作来实现的 问题是:如何在特定位置添加关于点颜色(绿色表示购买,红色表示出售)的图例将自定义图例(标记颜色)添加到plotly python,python,plotly,legend,Python,Plotly,Legend,我试着用plotly来形象化交易算法。我有两个数据帧:一个是接近价格的数据帧,另一个是我的算法执行的事务数据帧。绿点代表买入,红色代表卖出。我也希望有一个菜单,能够选择什么股票进行分析。就目前而言,一切都是通过在收盘价上画出动作来实现的 问题是:如何在特定位置添加关于点颜色(绿色表示购买,红色表示出售)的图例 from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot import plotly.gr
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
import pandas as pd
init_notebook_mode(connected=True)
feed = pd.DataFrame({'AAPL': [100, 120, 130, 120, 150],
'MSFT': [80, 70, 90, 100, 99]}, index = pd.date_range('2018-01-01', '2018-01-05'))
trans = pd.DataFrame({'Symbol': ['AAPL', 'AAPL', 'MSFT', 'MSFT'],
'Amount': [2, 1, 3, 1],
'Action': ['buy', 'sell', 'buy', 'sell'],
'Price': [120, 150, 70, 100],
'Date': [pd.to_datetime(i) for i in ['2018-01-02', '2018-01-05', '2018-01-02', '2018-01-04']]
})
data = []
all_but = dict(label = 'All',
method = 'update',
args = [{'visible': [True] * len(feed.columns.tolist())},
{'title': 'all'}
])
buttonlist = [all_but]
for col in feed.columns.tolist():
stock = go.Scatter(x=feed.index,
y=feed.loc[:, col],
name=col
)
#actions
success = trans.loc[trans.Symbol == col]
actions = go.Scatter(x=success.Date,
y=success.Price,
name='',
mode = 'markers',
text = ['Amount ' + str(amount) for amount in success.Amount],
hoverinfo = 'text',
showlegend=False,
marker = dict(
size=10,
color = ['green' if i == 'buy' else 'red' for i in success.Action]
)
)
data.append(stock)
data.append(actions)
button = dict(label = col,
method = 'update',
args = [{'visible': [col == i for i in feed.columns.tolist() for _ in range(2)]},
{'title': 'title' + col}
])
buttonlist.append(button)
updatemenus = list([
dict(active=-1,
buttons=buttonlist,
)
])
layout = dict(title='Feed', showlegend=True,
updatemenus=updatemenus)
fig = dict(data=data, layout=layout)
iplot(fig)
附言:我将非常感谢您给我一些简单方法的建议,因为我是plotly新手。请在plotly论坛上回答,并提供代码改进: