【问题标题】:add horizontal limit line to time series plot in python在python中为时间序列图添加水平限制线
【发布时间】:2020-02-13 10:43:49
【问题描述】:

我想为温度时间序列图添加水平上限和下限线。假设上限线在 30,下限线在 10。

df3.plot(x="Date", y=["Temp.PM", "Temp.AM"],figsize=(20,8))

【问题讨论】:

  • plt.axhline(10, c='b', ls='--'); plt.axhline(30, c='r', ls=':').
  • 非常感谢。你能告诉我有没有办法在上面打印限制线标题。我尝试使用 label 参数在其上打印限制线名称。但它不起作用

标签: python dataframe time-series linechart


【解决方案1】:

我认为这个解决方案可以帮助你

import matplotlib.pyplot as plt
%matplotlib inline

df3.plot(x="Date", y=["Temp.PM", "Temp.AM"],figsize=(20,8))
plt.axhline(30)
plt.axhline(10)

【讨论】:

  • 非常感谢。你能告诉我有没有办法在上面打印限制线标题。我尝试使用 label 参数在其上打印限制线名称。但它不起作用
  • @johnson 您可以添加选项“标题”来限制行数并在绘图后运行 plt.legend()。
【解决方案2】:
plt.plot(df3['Date'], df3[["Temp.PM", "Temp.AM"]])
plt.axhline(30, color='r')
plt.axhline(10, color='b')
plt.show()

【讨论】:

    【解决方案3】:

    下面是一些开始和试验的代码:

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    
    dates = pd.date_range('20190822', '20191020', freq='D')
    df3 = pd.DataFrame({'Date': dates,
                        'Temp.AM': np.random.normal(22.5, 2, len(dates)),
                        'Temp.PM': np.random.normal(27.5, 2, len(dates))})
    df3.plot(x='Date', y=['Temp.PM', 'Temp.AM'], color=['dodgerblue','coral'], figsize=(20, 8))
    
    min_temp = df3['Temp.AM'].min()
    max_temp = df3['Temp.PM'].max()
    plt.axhline(min_temp, c='coral', ls='--')
    plt.axhline(max_temp, c='dodgerblue', ls='--')
    plt.text(df3['Date'][0], min_temp, f'\nMin: {min_temp:.1f}°C', ha='left', va='center', c='coral')
    plt.text(df3['Date'][0], max_temp, f'Max: {max_temp:.1f}°C\n', ha='left', va='center', c='dodgerblue')
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多