如何将数字四舍五入以显示在绘图画中? 我在下面包括了一个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()
你可以这样做两种方式:
方法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-字符串格式。