微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 plotly 或任何其他方法将 seaborn 散点图转换为交互式散点图?

如何解决如何使用 plotly 或任何其他方法将 seaborn 散点图转换为交互式散点图?

我需要制作一个散点图,它与下图所附的图片完全一样,但具有交互式。意思是,当我将鼠标悬停在该点上时,它应该至少显示描述(“是”/“否”、X 轴值、Y 轴值)。它必须有一条穿过原点的“虚线”对角线。图例应该在情节之外。如果我也可以放大和缩小就更好了。

使用什么库或函数并不重要。正确的输出很重要。

我想转换为交互式的情节图像:

original static image

这个代码

def add_identity(axes,*line_args,**line_kwargs):
    identity,= axes.plot([],[],**line_kwargs)
    def callback(axes):
        low_x,high_x = axes.get_xlim()
        low_y,high_y = axes.get_ylim()
        low = max(low_x,low_y)
        high = min(high_x,high_y)
        identity.set_data([low,high],[low,high])
    callback(axes)
    axes.callbacks.connect('xlim_changed',callback)
    axes.callbacks.connect('ylim_changed',callback)
    return axes


sns.set_context("talk",font_scale=0.8)
plt.figure(figsize=(6,6))

ax = sns.scatterplot(x = [1,2,3,7,2.3,5.3,-1,-2,-3,2.5],y = [1,4,-1.5,1.5,5,2.1],hue = ['yes','no','yes','no'])

plt.xlabel("X-axis")
plt.ylabel("Y-axis")

plt.legend(bBox_to_anchor=(1.01,1),borderaxespad=0,prop={'family': 'Times New Roman','size': 12})

plt.title("Seaborn Plot with Legend Outside",fontname='Times New Roman',fontsize = 20)

plt.tight_layout()
    
add_identity(ax,color='gray',ls='--')

plt.axvline(0,c='black',ls='-')
plt.axhline(0,ls='-')
plt.xlim(-10,10)
plt.ylim(-10,10)
plt.grid()

plt.show()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。