【问题标题】:Plotly axis is showing dates in reverse order (recent to earliest) -PythonPlotly 轴以相反的顺序显示日期(最近到最早)-Python
【发布时间】:2021-02-17 10:52:37
【问题描述】:

我利用 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")

如何才能使日期正确排序,从最早到最晚?日期在原始数据中排序,为什么它没有反映在图表上?

任何建议将不胜感激。

结果如下:

【问题讨论】:

    标签: python pandas numpy plotly scatter-plot


    【解决方案1】:

    它是按照你的 df 顺序绘制的。如果您想要日期顺序,请按日期顺序排序。

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

    许多其他绘图实用程序(Seaborn 等)在绘图时默认排序。情节表达does not do this

    【讨论】:

    • 感谢您的洞察力,让我试试这个!
    【解决方案2】:

    您的日期列似乎是一个字符串。如果将其转换为日期时间,则不必对数据框进行排序: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")
    

    【讨论】:

      猜你喜欢
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      相关资源
      最近更新 更多