【问题标题】:Python pandas scatterplot of year against month-day年份与月日的 Python 大熊猫散点图
【发布时间】:2021-07-08 09:58:19
【问题描述】:

所以我有一个带有日期列的数据框。

date
2021-06-17
2020-06-20

我想做的是做一个散点图,x 轴是年份,y 轴是月-日。所以我已经是这样了:

我希望 y 轴刻度是实际的月-日值,而不是月-日-年的天数。不确定这是否可行,但非常感谢任何帮助。

【问题讨论】:

  • 你的意思是01-01、02-01等等?
  • 是的,完全正确。很抱歉含糊不清。

标签: python pandas


【解决方案1】:

一些示例数据:

import pandas as pd
from matplotlib import pyplot as plt, dates as mdates

# Some Sample Data
df = pd.DataFrame({
    'date': pd.date_range(
        start='2000-01-01', end='2020-12-31', freq='D'
    )
}).sample(n=100, random_state=5).sort_values('date').reset_index(drop=True)

然后一种选择是将日期标准化为同一年。只要是闰年,任何年份都可以处理 2 月 29 日(闰日)的可能性。

这成为新的 y 轴。

# Create New Column with all dates normalized to same year
# Any year works as long as it's a leap year in case of a Feb-29
df['month-day'] = pd.to_datetime('2000-' + df['date'].dt.strftime('%m-%d'))

# Plot DataFrame
ax = df.plot(kind='scatter', x='date', y='month-day')
# Set Date Format On Axes
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))  # Year Only
ax.yaxis.set_major_formatter(mdates.DateFormatter('%m-%d'))  # No Year
plt.tight_layout()
plt.show()

【讨论】:

    猜你喜欢
    • 2020-11-16
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2016-06-24
    • 2023-04-08
    相关资源
    最近更新 更多