首页 > 解决方案 > 如何在 Ploty 动画滑块中设置小数位数 - Python

问题描述

我正在将 Dataframe 绘制到 Plotly Express 动画中。Slider 使用'shot' 数字,所有数字都是整数(没有小数位)。当 Slider 显示时,它有小数位,如何删除它们?来自数据框的样本。

shot    Easting Northing    Depth
1001    455951.7    7328194.4   2.5
1002    455301.6    7326908.9   2.5
1003    455327.8    7326897.2   2.5
1004    455880.7    7328069.7   2.5
1005    455875.3    7328058.5   2.5
1006    455869.8    7328047.2   2.5
1007    455864.3    7328036.0   2.5
1008    455858.8    7328024.8   2.5
1009    455853.3    7328013.6   2.5
1010    455847.8    7328002.3   2.6
1011    455842.3    7327991.1   2.6
1012    455836.8    7327979.9   2.6
1013    455831.3    7327968.7   2.6
1014    455825.8    7327957.4   2.6
1015    455820.3    7327946.2   2.6
1016    455814.8    7327935.0   2.6
1017    455809.3    7327923.8   2.6
1018    455803.8    7327912.6   2.6
1019    455798.3    7327901.4   2.6

编码。我已经将数据称为 dfAnime

        ## Animated plot
        import plotly.express as px
        fig = px.scatter(dfAnime, x="Easting", y="Northing", animation_frame="shot",
            color='Depth',range_x=[np.min(dfAnime['Easting']),np.max(dfAnime['Easting'])],
            range_y=[np.min(dfAnime['Northing']),np.max(dfAnime['Northing'])])
            
        fig.layout.updatemenus[0].buttons[0].args[1]["frame"]["duration"]=100 # Sets speed. Comment out to turn off play/stop button
        fig.update_yaxes(
            scaleanchor="x",
            scaleratio=1,
            exponentformat='none')
        fig.update_xaxes(
            scaleanchor="x",
            scaleratio=1,
            exponentformat='none')
        fig.update_layout(template="plotly_dark")           
        #fig.show()

在此处输入图像描述

标签: pythonanimationsliderplotly

解决方案


答案是数据类型,它应该是 Int 而不是 float(来自父数据帧的结转)。
以下内容来自 Plotly 社区论坛上发布的相同问题。

如果镜头列是同一数据帧中的整数,则标签确实应该是整数。

您可以使用检查列的数据类型dfAnime.dtypes吗?

如果不是int64,那么您可以将列更改为int64使用此命令dfAnime.shot = dfAnime.shot.astype(int)

我认为数据类型不是int64,可能是object或者float64 可能导致此错误。


推荐阅读