我有一个具有以下结构的数据集:
<
<=
数据集是一个时间序列,其中包含1990年至2013年的数据。我想逐年直观地分析此时间序列,因此我试图生成一个每年具有多个子图的图形,问题是我还想在x轴上显示季度/月/日或日期,例如:
我需要为x轴上的多个聚合级别生成图,所以我尝试了几件事。
df = pd.read_csv('daily-minimum-values.csv', header=0, dtype={'Value':float})
df['Date'] = df['Date'].astype('datetime64[ns]')
df.head()
哪个会返回多个图,但是为了比较目的,一眼就能看到多个图很复杂:
我曾尝试在数据框中添加两列,每年和每月都期望这样比较容易绘制,但我不了解matplotlib的工作原理。
+------------+-------+
| Date | Value |
+------------+-------+
| 1990-01-01 | 20.7 |
+------------+-------+
| 1990-01-02 | 17.4 |
+------------+-------+
| 1990-01-03 | 18.1 |
+------------+-------+
| 1990-01-04 | 15.6 |
+------------+-------+
| 1990-01-05 | 12.4 |
+------------+-------+
哪个会产生以下错误:
ValueError:没有为对象类型命名月份的轴
谢谢。
答案 0 :(得分:0)
如果我的理解正确,您正在尝试创建Seaborn python模块支持的多图网格。
给定一个数据框df
,其时间戳类型为datetime64[ns]
,并且您希望可视化列values
中的某些值,则可以拆分时间戳信息,并将其放入名为{{1}的新列中},year
和month
,然后使用day
函数创建绘图网格。例如,以下python代码将为每个月创建一个折线图,并将其放入一系列行中。
FacetGrid
Seaborn建立在matplotlib之上。