Python 虫散点图
我定义了以下数组:Python 虫散点图,python,plotly,scatter-plot,Python,Plotly,Scatter Plot,我定义了以下数组: aa=np.random.randn(10) bb=np.random.randn(10) cc=['Mean1','Mean2','Mean3','Random1','Random2','Random3','Market1','Market2','Market3','Market4'] srvar=(aa-0.0002)/bb 然后绘制以下散点图: scaplot=go.Figure( layout=go.Layout( template='plotly_dark
aa=np.random.randn(10)
bb=np.random.randn(10)
cc=['Mean1','Mean2','Mean3','Random1','Random2','Random3','Market1','Market2','Market3','Market4']
srvar=(aa-0.0002)/bb
然后绘制以下散点图:
scaplot=go.Figure(
layout=go.Layout(
template='plotly_dark',title_text='Returns (Values in %)',
title_font_family='Droid Sarif',title_font_size=35,title_xref='paper',title_xanchor='center',
title_x=0.5,
xaxis=dict(color='white',title_text='Std. Deviation',title_font_family='Droid Sarif',title_font_size=22
),
yaxis=dict(color='white',title_text='Weekly Returns',
title_font_family='Droid Sarif',title_font_size=22
)
)
)
scaplot.add_trace(go.Scatter(
showlegend=False,mode='markers+text',
x=bb*100,
y=aa*100,
hovertext=['{}'.format(round(i*100,2)) for i in srvar],
textfont_size=11,
hovertemplate=
'<i>Return:</i> %{y:.2f}'+
'<br><i>Std. Dev.:</i> %{x:.2f}</br>'+
'<i>Sharpe R.:</i> %{hovertext} <extra></extra>',
texttemplate=
'<i><b>%{text}</b></i>',
text=['{}{}'.format('' if i[:2] in ['Me','Ma'] else 'Sec: ',i if i[0:2]!='Me' else '') for i in cc],
textposition='bottom center',
marker=dict(
symbol=104,size=13,color=srvar,cmin=np.amin(srvar),cmax=np.amax(srvar),cmid=np.median(srvar),
colorscale='jet',showscale=True,line_width=3,
colorbar=dict(
tickmode='linear',tick0=np.amin(srvar),dtick=(np.amax(srvar)-np.amin(srvar))/5,ticks='outside',
tickfont_family='Droid Serif',tickfont_size=15,tickfont_color='white',
title=dict(
text=
'<i>Sharpe Ratio</i>'
'<br><i>CB</i></br>',
font_family='Droid Sarif',font_size=27,font_color='white'
)
)
)
)
)
pio.show(scaplot)
scaplot=go.Figure(
布局=go.layout(
template='plotly''u dark',title''text='Returns(值单位为%)',
title_font_family='Droid Sarif',title_font_size=35,title_xref='paper',title_xanchor='center',
标题x=0.5,
xaxis=dict(颜色为白色),标题文字为标准偏差,标题字体系列为Droid Sarif,标题字体大小为22
),
yaxis=dict(颜色为白色),标题为“每周返回”,
title\u font\u family='Droid Sarif',title\u font\u size=22
)
)
)
scaplot.添加跟踪(go.Scatter(
showlegend=False,mode='markers+text',
x=bb*100,
y=aa*100,
hovertext=['{}'。srvar中i的格式(四舍五入(i*100,2)),
textfont_size=11,
悬停模板=
'返回:%{y:.2f}'+
“
标准开发:%{x:.2f}”+
'Sharpe R.:%{hovertext}',
文本模板=
“%{text}”,
text=['{}{}'。格式('if i[:2]in['Me','Ma']else'Sec:',i if i[0:2]!='Me'else'),用于cc中的i],
textposition='bottom center',
记号笔(
symbol=104,size=13,color=srvar,cmin=np.amin(srvar),cmax=np.amax(srvar),cmid=np.MEDIANT(srvar),
colorscale='jet',showscale=True,线宽=3,
色条(
tickmode='linear',tick0=np.amin(srvar),dtick=(np.amax(srvar)-np.amin(srvar))/5,ticks='out',
tickfont\u family='Droid Serif',tickfont\u size=15,tickfont\u color='white',
标题=口述(
正文=
“夏普比率”
“
CB”,
font\u family='Droid Sarif',font\u size=27,font\u color='white'
)
)
)
)
)
pio.show(scaplot)
正如您在下面的图片中所看到的,一切都非常完美:
到目前为止没有投诉,但当我运行以下代码时:
scatter_plot.add_trace(go.Scatter(
showlegend=False,mode='markers+text',
x=_sd_*100 if (method=='lp' or method=='bootlp') else sd*100,
y=temp*100 if (method=='lp' or method=='bootlp') else mean*100,
hovertext=['{}'.format(round(i*100,2)) for i in sr_var],
textfont_size=11,
hovertemplate=
'<i>Return:</i> %{y:.2f}'+
'<br><i>Std. Dev.:</i> %{x:.2f}</br>'+
'<i>Sharpe R.:</i> %{hovertext} <extra></extra>',
texttemplate=
'<i><b>%{text}</b></i>',
text=['{}{}'.format('' if i[:2] in ['Me','Ma'] else 'Sec: ',i if i[0:2]!='Me' else '') for i in dfc] if (method=='lp' or method=='bootlp') else [''],
textposition='bottom center',
marker=dict(
symbol=104,size=13,color=sr_var,
cmin=np.amin(sr_var),cmax=np.amax(sr_var),cmid=np.median(sr_var),
colorscale='jet',showscale=True,
colorbar=dict(
tickmode='linear',tick0=np.amin(sr_var),dtick=(np.amax(sr_var)-np.amin(sr_var))/5,ticks='outside',
tickfont_family='Droid Serif',tickfont_size=15,tickfont_color='white',
title=dict(
text=
'<i>Sharpe Ratio</i>'
'<br><i>CB</i></br>'
,font_family='Droid Sarif',font_size=27,font_color='white'
)
)
)
)
)
pio.show(scatter_plot)
scatter\u plot.添加跟踪(go.scatter(
showlegend=False,mode='markers+text',
如果(方法=='lp'或方法=='bootlp')else sd*100,
y=temp*100,如果(方法=='lp'或方法=='bootlp'),则表示*100,
hovertext=['{}'。sr_var中i的格式(四舍五入(i*100,2)),
textfont_size=11,
悬停模板=
'返回:%{y:.2f}'+
“
标准开发:%{x:.2f}”+
'Sharpe R.:%{hovertext}',
文本模板=
“%{text}”,
text=['{}{}.格式(''if i[:2]in['Me','Ma']else'Sec:',i if i[0:2]!='Me'else'')for i in dfc]if(method=='lp'或method=='bootlp')else['],
textposition='bottom center',
记号笔(
符号=104,尺寸=13,颜色=sr_var,
cmin=np.amin(sr_-var),cmax=np.amax(sr_-var),cmid=np.median(sr_-var),
colorscale='jet',showscale=True,
色条(
tickmode='linear',tick0=np.amin(sr_var),dtick=(np.amax(sr_var)-np.amin(sr_var))/5,ticks='out',
tickfont\u family='Droid Serif',tickfont\u size=15,tickfont\u color='white',
标题=口述(
正文=
“夏普比率”
“
CB”
,font\u family='Droid Sarif',font\u size=27,font\u color='white'
)
)
)
)
)
pio.show(散点图)
(method只是一个str变量,它是一个输入,并指定如果lp bootlp或others…,用户需要哪种方法)
我弄得一团糟:
正如您所看到的,hovertext不起作用,一些文本起作用,但是重写了%{text}变量,所有标记的颜色都是黑色的,尽管颜色栏显示比例。。。所以我不知道为什么会这样。谁能解释一下我错过了什么?我尝试了很多不同的事情,结果总是一样的。我将感谢你的时间和奉献精神