我真的很喜欢大熊猫来处理和分析大数据集。到目前为止,我主要使用matplotlib进行绘图,但现在想要使用pandas自己的绘图功能(基于matplotlib),因为它需要更少的代码,并且在大多数情况下似乎对我来说足够了。特别是在下面的例子中对大数据帧进行了一瞥的子图。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Generate random data
df = pd.DataFrame(np.random.randn(96,12),
columns=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L'])
# Plotting
df.plot(kind='line', subplots=True, grid=True, title="Sample Data (Unit)",
layout=(4, 3), sharex=True, sharey=False, legend=True,
style=['r', 'r', 'r', 'g', 'g', 'g', 'b', 'b', 'b', 'r', 'r', 'r'],
xticks=np.arange(0, len(df), 16))
..这让我想到了我的问题:
1.。)如何将所有图例放在子图中的同一个地方(例如居中,外面,顶部)?
2。)我可以以某种方式使用matplotlibs" Tight Layout" (http://matplotlib.org/users/tight_layout_guide.html)为情节?
提前致谢!
答案 0 :(得分:12)
您可以将所有图例放在同一个位置,但您必须在单独的步骤中创建它们。
# Plotting
df.plot(kind='line', subplots=True, grid=True, title="Sample Data (Unit)",
layout=(4, 3), sharex=True, sharey=False, legend=False,
style=['r', 'r', 'r', 'g', 'g', 'g', 'b', 'b', 'b', 'r', 'r', 'r'],
xticks=np.arange(0, len(df), 16))
[ax.legend(loc=1) for ax in plt.gcf().axes]
不确定。只需在plt.tight_layout()
或show
之前使用savefig
。比较使用和不使用tight_layout
创建的以下两个示例。
没有tight_layout()
:
使用tight_layout()
: