图表中的悬停小数

2024-04-30 00:55:14 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将数字舍入以在绘图仪中显示?我在下面包括了一个MRE。基本上,我希望当用户将鼠标悬停在工具栏上时,四舍五入的数字出现

import plotly.express as px
import pandas as pd
df = pd.DataFrame({'num': [1, 2, 3],
                   'sqrt': pd.Series([1, 2, 3]) ** 0.5})
fig = px.bar(df, x='num', y='sqrt', title='Square root')
fig.show()

Tags: 用户importdfasfig数字sqrtplotly
2条回答

对于plotly express,标题为“禁用或自定义plotly express中的列悬停”的部分(https://plotly.com/python/hover-text-and-formatting/)中的悬停格式文档介绍了这一点

请注意,格式字符串是d3格式字符串,而不是python f-string格式

您可以通过以下两种方式完成:

方法1:使用pd.series.round函数

import plotly.express as px
import pandas as pd
df = pd.DataFrame({'num': [1, 2, 3],
                   'sqrt': (pd.Series([1, 2, 3]) ** 0.5).round(2)})
fig = px.bar(df, x='num', y='sqrt', title='Square root')
fig.show()

方法2:使用python内置的round函数。为了让它起作用,我必须使用list comprehension而不是pandas series。As系列不直接支持它

import plotly.express as px
import pandas as pd
df = pd.DataFrame({'num': [1, 2, 3],
                   'sqrt': [round(x**(1/2),2) for x in [1,2,3]]})
fig = px.bar(df, x='num', y='sqrt', title='Square root')
fig.show()

编辑

方法3:正如下面@M.Forsythe所回答的,您也可以使用plotly的hover_data参数来完成

import plotly.express as px
import pandas as pd
df = pd.DataFrame({'num': [1, 2, 3],
                   'sqrt': pd.Series([1, 2, 3]) ** 0.5})
fig = px.bar(df, x='num', y='sqrt', title='Square root',hover_data={'sqrt':':.2f'})
fig.show()

相关问题 更多 >