提问者:小点点

图表中的标圆悬停小数


如何将数字四舍五入以显示在绘图画中? 我在下面包括了一个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()

共2个答案

匿名用户

你可以这样做两种方式:

方法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 Compression而不是Pandas Series。 因为系列不直接支持它。

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()

匿名用户

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

注意,格式字符串是d3格式字符串,而不是python F-字符串格式。