如何使用带有Pandas图的Gridspec

时间:2015-06-21 19:20:48

标签: pandas matplotlib

我想使用Gridspec配置子图大小,如本问题中所述。 Python/Matplotlib - Change the relative size of a subplot

如果我想使用Pandas Dataframe的情节功能呢?它有可能吗?

2 个答案:

答案 0 :(得分:6)

你可以这样做。

import pandas as pd
import pandas.io.data as web
import matplotlib.pyplot as plt

aapl = web.DataReader('AAPL', 'yahoo', '2014-01-01', '2015-05-31')
# 3 x 1 grid, position at (1st row, 1st col), take two rows
ax1 = plt.subplot2grid((3, 1), (0, 0), rowspan=2) 
# plot something on this ax1
aapl['Adj Close'].plot(style='r-', ax=ax1)
# plot moving average again on this ax1
pd.ewma(aapl['Adj Close'], span=20).plot(style='k--', ax=ax1)
# get the other ax
ax2 = plt.subplot2grid((3, 1), (2, 0), rowspan=1) 
ax2.bar(aapl.index, aapl.Volume)

enter image description here

答案 1 :(得分:1)

我不认为你可以使用gridspec和pandas plot。 pandas plot module是matplotlib pyplot的包装器,并不一定能实现所有功能。

如果您在github上检查pandas源并在gridspec上搜索,您会注意到plot没有提供配置gridspec的选项

https://github.com/pydata/pandas