自定义破折号的悬停信息
Customizing hover info of dash plotly
我正在使用来自 dash bio 的簇图,想知道是否有一种方法可以将悬停键从 'x,y,z'
更改为所需的标签,这在 plotly 中是可行的吗?
通过更改 hover_info
,可以 select 选择悬停时显示的内容,但不允许更改按键。这是我测试的代码。
import pandas as pd
import dash_core_components as dcc
import dash_bio as dashbio
df = pd.read_csv("https://git.io/clustergram_brain_cancer.csv").set_index("ID_REF")
columns = list(df.columns.values)
rows = list(df.index)
clustergram = dashbio.Clustergram(
data=df.loc[rows].values,
row_labels=rows,
column_labels=columns,
# color_threshold={
# 'row': 250,
# 'col': 700
# },
color_list={
'row': 'black',
'col': 'black',
'bg': 'black'
},
color_map= [
[0.0, "#339AF0"],
[0.5, "#FFFFFF"],
[1.0, "#E64980"]],
height=800,
width=700,
display_ratio=[0.7, 0.3]
)
#clustergram
res=dcc.Graph(figure=clustergram)
for i in res.to_plotly_json()['props']['figure']['data']:
i.update({'hoverinfo':['x','y','z']})
clustergram
- 所有例子return一个情节图
- 因此可以使用正常的技术来操纵图形
clustergram.for_each_trace(
lambda t: t.update(hovertemplate="custom x: %{x}<br>y %{y}<br>z %{z}")
if isinstance(t, go.Heatmap)
else t
)
完整代码
import pandas as pd
import dash_core_components as dcc
import dash_bio as dashbio
import plotly.graph_objects as go
df = pd.read_csv("https://git.io/clustergram_brain_cancer.csv").set_index("ID_REF")
columns = list(df.columns.values)
rows = list(df.index)
clustergram = dashbio.Clustergram(
data=df.loc[rows].values,
row_labels=rows,
column_labels=columns,
color_threshold={"row": 250, "col": 700},
height=800,
width=700,
color_map=[
[0.0, "#636EFA"],
[0.25, "#AB63FA"],
[0.5, "#FFFFFF"],
[0.75, "#E763FA"],
[1.0, "#EF553B"],
],
)
clustergram.for_each_trace(
lambda t: t.update(hovertemplate="custom x: %{x}<br>y %{y}<br>z %{z}")
if isinstance(t, go.Heatmap)
else t
)
我正在使用来自 dash bio 的簇图,想知道是否有一种方法可以将悬停键从 'x,y,z'
更改为所需的标签,这在 plotly 中是可行的吗?
通过更改 hover_info
,可以 select 选择悬停时显示的内容,但不允许更改按键。这是我测试的代码。
import pandas as pd
import dash_core_components as dcc
import dash_bio as dashbio
df = pd.read_csv("https://git.io/clustergram_brain_cancer.csv").set_index("ID_REF")
columns = list(df.columns.values)
rows = list(df.index)
clustergram = dashbio.Clustergram(
data=df.loc[rows].values,
row_labels=rows,
column_labels=columns,
# color_threshold={
# 'row': 250,
# 'col': 700
# },
color_list={
'row': 'black',
'col': 'black',
'bg': 'black'
},
color_map= [
[0.0, "#339AF0"],
[0.5, "#FFFFFF"],
[1.0, "#E64980"]],
height=800,
width=700,
display_ratio=[0.7, 0.3]
)
#clustergram
res=dcc.Graph(figure=clustergram)
for i in res.to_plotly_json()['props']['figure']['data']:
i.update({'hoverinfo':['x','y','z']})
clustergram
- 所有例子return一个情节图
- 因此可以使用正常的技术来操纵图形
clustergram.for_each_trace(
lambda t: t.update(hovertemplate="custom x: %{x}<br>y %{y}<br>z %{z}")
if isinstance(t, go.Heatmap)
else t
)
完整代码
import pandas as pd
import dash_core_components as dcc
import dash_bio as dashbio
import plotly.graph_objects as go
df = pd.read_csv("https://git.io/clustergram_brain_cancer.csv").set_index("ID_REF")
columns = list(df.columns.values)
rows = list(df.index)
clustergram = dashbio.Clustergram(
data=df.loc[rows].values,
row_labels=rows,
column_labels=columns,
color_threshold={"row": 250, "col": 700},
height=800,
width=700,
color_map=[
[0.0, "#636EFA"],
[0.25, "#AB63FA"],
[0.5, "#FFFFFF"],
[0.75, "#E763FA"],
[1.0, "#EF553B"],
],
)
clustergram.for_each_trace(
lambda t: t.update(hovertemplate="custom x: %{x}<br>y %{y}<br>z %{z}")
if isinstance(t, go.Heatmap)
else t
)