plotly.express 画图遇到一个奇怪的现象。Y轴数值不是从小到大排列。

使用plotly.express y轴数值无法按要求有序排列。
数据源如截图所示,是一个提前准备好的dataframe

img

绘图代码部分如下:

fig = px.line(df, x='date', y='VIDYA_arr')
# 自定义图表标题和轴标签
fig.update_layout(
    title='Stock Closing Prices',
    xaxis_title='Date',
    yaxis_title='Closing Price')
    
fig.show()

绘制出来的图如下:

img

在绘制出来的图片上y轴的数值不是按照从小到大来排列的。怎么让画出的图上y轴数字是从小到大,画出来的图上也是能够反映出数据随时间推移的波动?

问题已经解决。原因是数据是从csv文件导入到的,数值其实都是str格式。把数据转化成浮点型以后,绘图就没有上面讲的异常了。

【以下回答由 GPT 生成】

首先,如果想让Y轴的数值按照从小到大的顺序排列,可以对数据源进行排序。

假设你的DataFrame中的列name为Y轴的数值列,可以使用pandas库对数据进行排序,代码如下:

import pandas as pd

df_sorted = df.sort_values(by='name')

然后,将排序后的DataFrame传入plotly.express绘图的函数中,代码如下:

fig = px.line(df_sorted, x='date', y='VIDYA_arr')

# 自定义图表标题和轴标签
fig.update_layout(
    title='Stock Closing Prices',
    xaxis_title='Date',
    yaxis_title='Closing Price'
)

fig.show()

这样绘制出来的图上的Y轴数字就会按照从小到大的顺序排列。

注意:你需要把代码中的'name'替换为你实际使用的Y轴数值列的名称。如果你的Y轴数值列是数值类型的话,在使用sort_values时会按照从小到大的顺序排列;如果是字符串类型的话,会按照字母顺序排列。如果你的Y轴数值列是日期类型的话,可能需要先进行转换成日期类型再排序。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^