【问题标题】:mpld3 simple example to adaptmpld3简单示例适配
【发布时间】:2017-03-03 14:02:03
【问题描述】:

我经常使用Python,但对js一无所知。

我想画一个图,左边是散点图,右边是几条曲线。

右边的每条曲线对应左边的一个点。

当我“鼠标悬停”一行时,我希望相应的点突出显示。

这可能吗?

谁能给我一个我可以适应的例子吗?

非常感谢!

拉斐尔

编辑:

你说得对

但是我对 mpld3 还一无所知!

所以这里是一个例子,纯python。

from pylab import *

#3 Scattered points
x=[1,3,7]
y=[2,6,4]

#3 Curves (each one associated with a point)
xx=linspace(0,4*pi,100)
yy1=sin(xx)
yy2=cos(xx)
yy3=linspace(0,1,100)

#Left panel
f=figure()
f.add_subplot(121)
scatter(x,y)

#Right panel
f.add_subplot(122)
plot(xx,yy1)
plot(xx,yy2)
plot(xx,yy3)

show()

看到图片了吗? 当我将鼠标移到右侧的曲线上时,我希望左侧的对应点突出显示。

现在我认为问题很清楚了。很抱歉,我(还)不能提出任何代码供您更正,但我想知道如何使用 mpld3 的人可能能够为我提供一个我可以适应的模板……

谢谢大家!

【问题讨论】:

  • 请发布您需要帮助的特定 sn-ps 代码。你会得到更好的回应,“我试过了,但没有用,为什么?”而不是“给我模糊 X 的代码”。

标签: python matplotlib mpld3


【解决方案1】:

首先要记住的是,mpld3(几乎)将您在 matplotlib 中所做的任何事情都翻译成 javascript,因此鼠标悬停突出显示并不是开箱即用的东西。

从 mpld3 开始,将您的 sn-p 中的 show() 替换为:

htmlFig = str(mpld3.fig_to_html(f))

将输出保存为 .html 文件,您可以在浏览器上打开绘图。 (如果您愿意,也有一个 mpld3.show(),但我的意思是向您展示 javascript 输出)。

好吧,在那之后您必须搜索和测试 mpld3 插件,这实质上会修改此 html/js 输出以放置 d3 功能。比如这里的这个插件https://mpld3.github.io/examples/random_walk.html,用鼠标悬停高亮曲线,很接近你需要的。因此,如果您没有找到完全符合您要求的插件,您必须在输出的 html/javascript 文件中进行一些调整。

对不起,部分答案。我希望它能让你走上正轨。

干杯!

【讨论】:

    猜你喜欢
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多