簡體   English   中英

在 plotly python 中的 3d 表面 plot 上設置自定義工具提示

[英]Setting custom tooltip on 3d surface plot in plotly python

我一直在嘗試在 3d 表面 plot 上設置自定義工具提示,但無法弄清楚。 我可以做一些非常簡單的事情,比如使每個點的工具提示相同,但是當沒有繪制字段時,我無法在工具提示中為每個點放置不同的值。

在我的示例中,我在 3d 表面 plot 上繪制了一個包含 53 行(周)和 7 列(一周中的天)的數據集,方法是在 Z6A8064B5DF479450550DZ5534 中傳遞 Z6A8064B5DF479450550D5534 參數。 這是一年的數據,所以每一天都有自己的數字值被繪制出來。 我正在嘗試 label 每個點與實際日期(因此自定義工具提示,因為我沒有將日期本身傳遞給圖表),但似乎無法正確對齊工具提示值。

我嘗試了一個簡單的示例來創建一個與 dataframe 形狀相同的“工具提示數組”,但是當我測試我是否得到正確的形狀時,通過使用重復的單詞,我得到了一個更奇怪的錯誤,它使用了字符單詞中的值作為工具提示(例如,c 或 _)。 有沒有人有任何想法或建議? 我可以發布更多代碼,但嘗試用一個更簡單的示例來復制我的錯誤。

在此處輸入圖像描述

 labels=np.array([['test_label']*7]*53) fig = go.Figure(data=[ go.Surface(z=Z, text=labels, hoverinfo='text' )],) fig.show()

工具提示正在將標簽分解為字符

我們創建了類似於圖像中提供的數據的示例數據。 我為連續一年的日期創建了一個隨機生成值的數據框,添加了周數和天數,並將其形成為 Z 數據。 我還添加了一個僅限日期的數據列。 因此,您的代碼將使 hover 文本顯示日期。

import numpy as np
import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({'date':pd.to_datetime(pd.date_range('2021-01-01','2021-12-31',freq='1d')),'value':np.random.rand(365)})

df['day_of_week'] = df['date'].dt.weekday
df['week'] = df['date'].dt.isocalendar().week
df['date2'] = df['date'].dt.date
Z = df[['week','day_of_week','value']].pivot(index='week', columns='day_of_week')
labels = df[['week','day_of_week','date2']].pivot(index='week', columns='day_of_week').fillna('')

fig = go.Figure(data=[
    go.Surface(z=Z,
               text=labels,
               hoverinfo='text'
              )]
               )
fig.update_layout(autosize=False, width=800, height=600)
fig.show()

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM