【问题标题】:How to plot day and month如何绘制日期和月份
【发布时间】:2018-10-03 04:36:26
【问题描述】:

我有一张随时间变化的每日趋势图表。

年份与此处无关,我只想显示日期和月份。我知道您可以显示年份和月份,但事实并非如此。

我尝试创建一个名为“Day_Month”的新变量:

import datetime as dt
df['Day'] =  df['date'].dt.day
df['Month'] =  df['date'].dt.month
df['Day_Month'] = df['Day'].astype(str) + "-" + 

但不能将其绘制为字符串,也不能将其转换为日期类型。

最后,我希望我的图表看起来像这样:

【问题讨论】:

标签: python date dataframe matplotlib


【解决方案1】:

我找到的答案是:

import matplotlib.dates as mdates
import matplotlib.pyplot as plt 

fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(date, price , label="Price")
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%d'))

【讨论】:

    【解决方案2】:
    import numpy as np
    import matplotlib.pyplot as plt
    import datetime
    
    x = [0, 1, 2, 3, 4, 5, 6]
    y = [0, 5, 20, 35, 40, 20, 15]
    
    now = datetime.datetime.now()
    m = now.month
    d = now.day
    
    d1 = str(d) + "-" + str(m)
    d2 = d1[:len(d1)-1] + "5"
    d3 = d1[:len(d1)-1] + "6"
    d4 = d1[:len(d1)-1] + "7"
    d5 = d1[:len(d1)-1] + "8"
    d6 = d1[:len(d1)-1] + "9"
    
    Day_Month = ["0", d1, d2, d3, d4, d5, d6]
    
    X = np.array(x)
    Y = np.array(y)
    
    plt.scatter(X, Y)
    plt.plot(y, color='g', linestyle='--', label="--Price")
    plt.xlabel("days")
    plt.ylabel("Price")
    plt.xticks(X, Day_Month)
    plt.show()
    

    【讨论】:

    • 要在 matplotlib 的 x 轴上显示 day_month。我已将所有标签放在一个列表中,即 day_month 和 plt.xticks(X, Day_Month) 它在 x 轴上显示标签。 Day_month 列表包含您要在 x 轴上使用的所有日期,例如 d1、d2...,它们是使用日期时间和字符串连接创建的。
    猜你喜欢
    • 2020-07-18
    • 1970-01-01
    • 2019-02-19
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多