首页 > 解决方案 > 使用 matplotlib 绘制 pandas 数据框的所有列

问题描述

我有一个带有日期时间索引和 65 列的数据框。
我想在它们之间绘制所有这些列,而不是在网格或一个图中。

df= test[['one', 'two', 'three','four']]
fig, ax = plt.subplots(figsize=(24, 5))
df.plot(ax=ax)
plt.show()

该示例全部在一个情节中,而不是全部在它们之间。

标签: pandasmatplotlibsubplot

解决方案


您可以遍历 DataFrame 的列并为每列创建一个新图形。这将一次绘制它们。如果您希望在前一个关闭后显示下一个,则将调用plt.show()放入 for 循环中。

import pandas as pd 
import matplotlib.pyplot as plt 


df = pd.DataFrame({
        'one': [1, 3, 2, 5],
        'two': [9, 6, 4, 3],
        'three': [0, 1, 1, 0],
        'four': [-3, 2, -1, 0]})

for i, col in enumerate(df.columns):
    df[col].plot(fig=plt.figure(i))
    plt.title(col)

plt.show()

推荐阅读