第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

散景中的交互式散點(diǎn)高光

散景中的交互式散點(diǎn)高光

素胚勾勒不出你 2022-05-11 15:11:59
我正在嘗試可視化與其路徑相關(guān)的傳感器輸出。我在一個(gè)圖中將路徑繪制為散點(diǎn)圖,在第二個(gè)圖中繪制一定范圍的信號(hào)幅度。我需要可視化(突出顯示)獲取特定讀數(shù)的路徑點(diǎn)。我開(kāi)始使用散景作為后端,總的來(lái)說(shuō),我需要的可視化效果非常好。但我被困在這種特殊的互動(dòng)上。我想要一些標(biāo)記,例如錨定在圖形中間的垂直線(xiàn)。當(dāng)我移動(dòng)/滾動(dòng)幅度圖(底部)時(shí),我想突出顯示路徑圖上最接近標(biāo)記線(xiàn)的讀數(shù)的點(diǎn)。示例代碼:(我想錨定標(biāo)記線(xiàn)并在紅點(diǎn)和垂直線(xiàn)之間添加交互,獲取信號(hào)的索引,未實(shí)現(xiàn)。)import numpy as npimport pandas as pdfrom bokeh.io import output_filefrom bokeh.models import ColumnDataSource, HoverTool, Spanfrom bokeh.plotting import figure, showfrom bokeh.layouts import gridplotoutput_file('interactive_path_sig.html', title="interactive path")class InteractivePath():    def __init__(self):        x = np.arange(0, 1000, 0.5)        self.df = pd.DataFrame({"x": x,                                "y": np.sin(x),                                "z": np.cos(x)})        self.source = ColumnDataSource(self.df)    def plot_path(self):        plt = figure(title = "Sensor Path")        plt.scatter(x="x", y="y",source=self.source,                     line_color=None, size = 6)        # TODO implement interaction instead of hard coded index        index=500    # this is where I think I need to create working callback        print("x={}, y={}".format(self.df['x'][index], self.df['y'][index]))        plt.circle(x=self.df['x'][index], y=self.df['y'][index],                    fill_color="red", size=15)        hover = HoverTool()        hover.tooltips=[("index", "@index"), ("senosr","@z")]        plt.add_tools(hover)        return plt    def plot_signal(self):        plt = figure(x_range=(450, 550), title="Signal Amplitude")        plt.line(x="index", y="z", source=self.source, line_color="black", line_width=2)        # TODO implement interaction instead of hard coded index        index = 500  # I think this needs emit some singal to other plot        vline = Span(location=index, dimension='height', line_color='red', line_width=3)        plt.renderers.extend([vline])        return plt
查看完整描述

1 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

所以有幾點(diǎn)建議:

  • 我認(rèn)為您會(huì)希望這兩個(gè)圖都使用相同的方法,因?yàn)樗鼈冎g的 columndatasource 是通用的,并且如果它們?cè)谕环秶鷥?nèi),您可以在它們之間設(shè)置 CustomJS 行為。

  • index您正在使用的 已經(jīng)存在于您的self.df繪圖中,一旦它出現(xiàn)在您的繪圖中,將更容易與之交互,因?yàn)槟梢允褂?JS 繪圖行為來(lái)處理它,而不是返回到 python 變量并重新加載數(shù)據(jù)。

  • 不要為“突出顯示”點(diǎn)繪制新字形,而是考慮使用內(nèi)置的“懸?!被颉斑x定”功能。hover_color='red'例如,可以替換繪制和移動(dòng)另一類(lèi)字形。如果您想保持靜態(tài)選中狀態(tài),以便在屏幕截圖中無(wú)需鼠標(biāo)即可生成漂亮的報(bào)告,請(qǐng)使用的內(nèi)置selected屬性定義回調(diào)ColumnDataSource

我可以發(fā)布一些帶有更具體示例的實(shí)際代碼塊,但如果這些點(diǎn)中的任何一點(diǎn)對(duì)于您的實(shí)際用例來(lái)說(shuō)是一個(gè)硬停止,它將推動(dòng)解決方案。


編輯:

所以我使用一個(gè)類(lèi)方法非常接近 - 問(wèn)題是能夠從第一個(gè)方法編輯第二個(gè)圖,而不是對(duì)它ColumnDataSource本身的實(shí)際更改。

def plot_it(self):

    self.plot_signal = figure(x_range=(450, 550), y_range=(-1, 1), title='signal')

    self.plot_signal.line(x='index', y='z', source=self.source)

    self.plot_signal.segment(x0=500, y0=-2, x1=500, y1=2, source=self.source)


    self.plot_path = figure(title='sensor')

    self.plot_path.scatter(x='x', y='y', source=self.source, hover_color='red')


    jscode='''

    var data = source.data;

    var plot_signal = plot_signal;

    var index = cb_data.index['1d'].indices;

    var xmin = 0;

    var xmax = 0;

    if (index > 0) {

        xmin = index[0] - 50;

        xmax = index[0] + 50;

        plot_signal.x_range.end = xmax;

        plot_signal.x_range.start = xmin;

        plot_signal.change.emit();

    }


    hover_callback = CustomJS(args=dict(source=self.source, plot_signal=self.plot_signal), code=jscode)

    hover.tooltips = [('index', '@index'), ('sensor', '@z')]

    self.plot_path.add_tools(hover)


def get_grid(self):

    self.plot_it()

    grid = gridplot([[self.plot_path], [self.plot_signal]])

    return grid

除了移動(dòng)線(xiàn)段之外,這應(yīng)該做所有事情。我找不到要添加的段命名約定plot_signal.SOMEOBJECT.x0,.x1但它只會(huì)if (index > 0)像使用index[0]. 我去掉了一些樣式選項(xiàng),因?yàn)槲艺趶牧硪慌_(tái)計(jì)算機(jī)轉(zhuǎn)錄。


這個(gè)關(guān)于移動(dòng)線(xiàn)段的問(wèn)題可能會(huì)為您提供段 JSON 對(duì)象的語(yǔ)法。


查看完整回答
反對(duì) 回復(fù) 2022-05-11
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)