【问题标题】:Seaborn line plot - only part of date displaying for repetitive CSV dataSeaborn 线图 - 仅显示重复 CSV 数据的部分日期
【发布时间】:2020-10-23 19:29:42
【问题描述】:

我想将 -MayCSV.csv 中的数据显示为 seaborn 线图,作为 x 轴上的日期并在 y 轴上加载。 CSV 包含每个日期的 500 个加载数据。我写了以下代码行:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

emp=pd.read_csv("E:\\22_October\\MayCSV.csv")
emp['Date'] = pd.to_datetime(emp['Date'],infer_datetime_format=True)

fig, ax = plt.subplots(figsize = (12,6))    
fig = sns.lineplot(x = "Date", y = "Load", data = emp, ax=ax)

x_dates = emp['Date'].dt.strftime('%d-%m-%Y').sort_values().unique()
plt.grid(True, alpha=1)
ax.set_xticklabels(labels=x_dates, rotation=45, ha='right')

这给了我这个情节

可以看出问题,它仅显示截至 5 月 9 日的日期。怎样才能显示完整图表的所有日期?

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

    使用格式化程序。 fig.autofmt_xdate 在这里也很有帮助(尽管从 fig = sns.lineplot... 中删除了 fig =)。

    import matplotlib.dates as mdates
    
    ...
    
    fig, ax = plt.subplots(figsize = (12,6))    
    sns.lineplot(x = "Date", y = "Load", data = emp, ax=ax)
    
    myFmt = mdates.DateFormatter("%d-%m-%Y")
    ax.xaxis.set_major_formatter(myFmt)
    
    plt.grid(True, alpha=1)
    fig.autofmt_xdate(rotation=45)
    

    输出:

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 2021-07-24
      • 2015-03-14
      相关资源
      最近更新 更多