pandas - 使用 matplotlib 绘制 pandas 数据框的所有列
问题描述
我有一个带有日期时间索引和 65 列的数据框。
我想在它们之间绘制所有这些列,而不是在网格或一个图中。
df= test[['one', 'two', 'three','four']]
fig, ax = plt.subplots(figsize=(24, 5))
df.plot(ax=ax)
plt.show()
该示例全部在一个情节中,而不是全部在它们之间。
解决方案
您可以遍历 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()
推荐阅读
- ruby-on-rails - 我如何阻止 chartkick 显示 X 轴日期(ruby on rails)
- ubuntu - 如果 Apache 服务器或 DB 服务器停止,则触发电子邮件
- python - 如何加速 Google Appengine 并消除超时?
- c++ - Windows 10 下 CLion 中的“CMake 错误:找不到 CMAKE_ROOT”问题
- java - Spring Boot Hibernate @OneToMany 集合始终为空
- java - 尝试在 Maven 中测试 TextField
- javascript - 在 Promise.all 中保持 Promise 数组的顺序
- python - 在熊猫数据框中按浮点值过滤列,并向前填充
- r - Conda 使用 MKL 安装 r-essentials
- php - is there any way to test for encrypted string in laravel /PHP?