Plotly axis以相反的顺序(从最近到最早)显示日期

2024-10-01 02:37:16 发布

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

我利用Python中的plotly库创建了一个可视化。一切看起来都很好,只是轴心线从2020年开始,然后是2019年。轴应与显示的轴相反

以下是数据(df):

   date      percent   type
   3/1/2020  10        a
   3/1/2020  0         b
   4/1/2020  15        a
   4/1/2020  60        b
   1/1/2019  25        a
   1/1/2019  1         b
   2/1/2019  50        c 
   2/1/2019  20        d

这就是我正在做的

 import plotly.express as px
 px.scatter(df, x = "date", y = "percent", color = "type", facet_col = "type")

我该如何使日期从最早到最晚正确排序?日期是在原始数据中排序的,为什么它没有在图表上反映出来呢

如有任何建议,将不胜感激

结果如下:

enter image description here


Tags: 数据import利用dfdate排序可视化as
2条回答

它是按df的顺序绘制的。如果您需要日期顺序,则按日期顺序进行排序

df.sort_values('date', inplace=True)

许多其他绘图实用程序(Seaborn等)在打印时默认进行排序。生动地表达does not do this

您的日期列似乎是一个字符串。如果将其转换为日期时间,则不必对数据帧进行排序:plotly express将x轴设置为日期时间:

工作代码示例:

import pandas as pd
import plotly.express as px
from io import StringIO

text = """
date      percent   type
   3/1/2020  10        a
   3/1/2020  0         b
   4/1/2020  15        a
   4/1/2020  60        b
   1/1/2019  25        a
   1/1/2019  1         b
   2/1/2019  50        c 
   2/1/2019  20        d
"""

df = pd.read_csv(StringIO(text), sep='\s+', header=0)

px.scatter(df, x="date", y="percent", color="type", facet_col="type")

plotly express showing datetime axis

相关问题 更多 >