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

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

Altair 折線圖中的工具提示

Altair 折線圖中的工具提示

侃侃爾雅 2021-08-17 10:29:52
為折線圖指定工具提示時(shí),工具提示僅在沿線懸停在點(diǎn)上時(shí)出現(xiàn),而不會(huì)在沿線懸停在任何其他位置時(shí)出現(xiàn)。這在使用非線性插值時(shí)尤其成問題......有沒有辦法在線條本身上顯式設(shè)置工具提示?import altair as altfrom vega_datasets import datasource = data.jobs.urlalt.Chart(source).mark_line(interpolate="basis").encode(    alt.X('year:O'),    alt.Y('perc:Q', axis=alt.Axis(format='%')),    color='sex:N',    tooltip='sex:N').properties(    title='Percent of work-force working as Welders').transform_filter(    alt.datum.job == 'Welder')
查看完整描述

2 回答

?
慕村9548890

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

從@Philipp_Kats 的回答和@dominik 的評(píng)論(以及偶然發(fā)現(xiàn)此線程并希望查看 Altair 代碼示例的其他任何人)擴(kuò)展,當(dāng)前實(shí)現(xiàn)“工具提示”效果的方法是:

  1. 創(chuàng)建線 ( mark_line())

  2. 創(chuàng)建一個(gè)選擇最近的點(diǎn)并根據(jù) x 值進(jìn)行選擇的選擇

  3. 跨行捕捉一些透明選擇器,通知跨行不同位置的 x 值

  4. mark_text()上面 1 - 3層的 ( )層

一個(gè)真實(shí)的例子是我制作的一個(gè)簡單 Flask 應(yīng)用程序上的折線圖。唯一的區(qū)別是我沒有將選擇器設(shè)置為透明 ( opacity=alt.value(0)),否則它是一個(gè)折線圖,上面有工具提示。

這是一個(gè)使用 OP 原始數(shù)據(jù)集的可重現(xiàn)示例:

# Step 1: create the line

line = alt.Chart().mark_line(interpolate="basis").encode(

    x=alt.X("year:O"),

    y=alt.Y("perc:Q", axis=alt.Axis(format='%')),

    color='sex:N'

).transform_filter(

    alt.datum.job == 'Welder'

)


# Step 2: Selection that chooses nearest point based on value on x-axis

nearest = alt.selection(type='single', nearest=True, on='mouseover',

                            fields=['year'])



# Step 3: Transparent selectors across the chart. This is what tells us

# the x-value of the cursor

selectors = alt.Chart().mark_point().encode(

    x="year:O",

    opacity=alt.value(0),

).add_selection(

    nearest

)


# Step 4: Add text, show values in Sex column when it's the nearest point to 

# mouseover, else show blank

text = line.mark_text(align='left', dx=3, dy=-3).encode(

    text=alt.condition(nearest, 'sex:N', alt.value(' '))

)


# Layer them all together

chart = alt.layer(line, selectors, text, data=source, width=300)


chart

結(jié)果圖:

http://img1.sycdn.imooc.com//611b1f4b0001c46409850850.jpg

查看完整回答
反對(duì) 回復(fù) 2021-08-17
?
慕哥6287543

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

我懷疑目前是否有直接的技術(shù)解決方案:-(

一種解決方法是在線條頂部顯式添加點(diǎn),以便更容易懸停。我通常使它們相對(duì)較大,但是直到懸停事件發(fā)生時(shí)才隱藏,就像這里作為頂部的櫻桃,可以使用 Voronoi 顯示任何給定點(diǎn)的最近點(diǎn),就像他們在本教程中所做的那樣

如果您需要 Altair 代碼示例,請(qǐng)告訴我,我使用的是原始 vega,但實(shí)現(xiàn) Altair 版本應(yīng)該相對(duì)簡單


查看完整回答
反對(duì) 回復(fù) 2021-08-17
  • 2 回答
  • 0 關(guān)注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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