Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫+;bokeh-如何获取悬停工具的数据框列名_Python_Python 3.x_Pandas_Bokeh - Fatal编程技术网

Python 熊猫+;bokeh-如何获取悬停工具的数据框列名

Python 熊猫+;bokeh-如何获取悬停工具的数据框列名,python,python-3.x,pandas,bokeh,Python,Python 3.x,Pandas,Bokeh,我从数据框的某些列中绘制线。我希望悬停工具显示生成该数据的列的名称,以及未打印的其他列的一些信息 例如,在下面的代码中,当鼠标位于A行的中心点上时,我希望悬停工具显示“Name=A;Aux=0.1”。该值存储在A1列中。相反,当超过线B上的中心点时,工具应显示“Name=B;Aux=0.3” 谢谢 最近有一个功能支持这一点。使用Bokeh0.13.0或更新版本,您可以在字形上设置名称,并在工具提示中使用$name引用该名称。此外,您可以使用@$name引用具有该名称的列。但是,“间接”列必须是n

我从数据框的某些列中绘制线。我希望悬停工具显示生成该数据的列的名称,以及未打印的其他列的一些信息

例如,在下面的代码中,当鼠标位于A行的中心点上时,我希望悬停工具显示“Name=A;Aux=0.1”。该值存储在A1列中。相反,当超过线B上的中心点时,工具应显示“Name=B;Aux=0.3”


谢谢

最近有一个功能支持这一点。使用Bokeh
0.13.0
或更新版本,您可以在字形上设置
名称
,并在工具提示中使用
$name
引用该名称。此外,您可以使用
@$name
引用具有该名称的列。但是,“间接”列必须是
name
中指定的列,因此您必须将列名重新排列为该期望值:

from bokeh.io import show
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
import pandas as pd

df = pd.DataFrame({'x': [1, 2, 3], 'A_y' : [1, 5, 3], 'A': [0.2, 0.1, 0.2],
                  'B_y' : [2, 4, 3], 'B':[0.1, 0.3, 0.2]})

tools_to_show = 'box_zoom,save,hover,reset'
p = figure(plot_height =300, plot_width = 1200,
           toolbar_location='above', tools=tools_to_show,

           # "easy" tooltips in Bokeh 0.13.0 or newer
           tooltips=[("Name","$name"), ("Aux", "@$name")])

columns = ['A', 'B']
source = ColumnDataSource(df)
for col in columns:

    # have to use different colnames for y-coords so tooltip can refer to @$name
    p.line('x', col + "_y", source=source, name=col)

show(p)

最近有一项功能支持此功能。使用Bokeh
0.13.0
或更新版本,您可以在字形上设置
名称
,并在工具提示中使用
$name
引用该名称。此外,您可以使用
@$name
引用具有该名称的列。但是,“间接”列必须是
name
中指定的列,因此您必须将列名重新排列为该期望值:

from bokeh.io import show
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
import pandas as pd

df = pd.DataFrame({'x': [1, 2, 3], 'A_y' : [1, 5, 3], 'A': [0.2, 0.1, 0.2],
                  'B_y' : [2, 4, 3], 'B':[0.1, 0.3, 0.2]})

tools_to_show = 'box_zoom,save,hover,reset'
p = figure(plot_height =300, plot_width = 1200,
           toolbar_location='above', tools=tools_to_show,

           # "easy" tooltips in Bokeh 0.13.0 or newer
           tooltips=[("Name","$name"), ("Aux", "@$name")])

columns = ['A', 'B']
source = ColumnDataSource(df)
for col in columns:

    # have to use different colnames for y-coords so tooltip can refer to @$name
    p.line('x', col + "_y", source=source, name=col)

show(p)

嗨!几乎完美!但是我想在悬停中引用两列,比如A1和A2。我不知道该怎么做。你知道吗?用这种方法是不可能的,如果字形有
名称
值“foo”和“bar”,那么
@$name
将根据悬停在哪个字形上查找名为“foo”和“bar”的列。您需要围绕这一需求安排您的列名。唯一的另一种可能性可能是以某种方式使用a。嗨!几乎完美!但是我想在悬停中引用两列,比如A1和A2。我不知道该怎么做。你知道吗?用这种方法是不可能的,如果字形有
名称
值“foo”和“bar”,那么
@$name
将根据悬停在哪个字形上查找名为“foo”和“bar”的列。您需要围绕这一需求安排您的列名。唯一的另一种可能是以某种方式使用。