为 pandas hist plots 集合添加标题
Posted
技术标签:
【中文标题】为 pandas hist plots 集合添加标题【英文标题】:add title to collection of pandas hist plots 【发布时间】:2013-11-06 00:30:48 【问题描述】:我正在寻找有关如何在由 pandas df.hist() 命令生成的直方图集合顶部显示标题的建议。例如,在下面代码生成的直方图块中,我想在图的顶部放置一个通用标题(例如“我的直方图集合”):
data = DataFrame(np.random.randn(500).reshape(100,5), columns=list('abcde'))
axes = data.hist(sharey=True, sharex=True)
我尝试在 hist 命令中使用 title 关键字(即 title='My collection of histogram plots'),但没有成功。
以下代码确实通过向其中一个轴添加文本来工作(在 ipython 笔记本中),但有点杂乱无章。
axes[0,1].text(0.5, 1.4,'My collection of histogram plots', horizontalalignment='center',
verticalalignment='center', transform=axes[0,1].transAxes)
有没有更好的办法?
【问题讨论】:
【参考方案1】:如果您想快速遍历所有列并获取带有标题的历史图,请尝试这个。
import matplotlib.pyplot as plt
fig, axs = plt.subplots(len(data.columns), figsize=(4,10))
for n, col in enumerate(data.columns):
data[col].hist(ax=axs[n],legend=True)
【讨论】:
【参考方案2】:对于matplotlib.pyplot
,您可以使用:
import matplotlib.pyplot as plt
# ...
plt.suptitle("your title")
或者如果您直接使用Figure
对象,
import matplotlib.pyplot as plt
fig, axs = plt.subplots(...)
# ...
fig.suptitle("your title")
见this example。
【讨论】:
【参考方案3】:对于较新的 Pandas 版本,如果有人感兴趣,这里有一个稍微不同的解决方案,仅适用于 Pandas:
ax = data.plot(kind='hist',subplots=True,sharex=True,sharey=True,title='My title')
【讨论】:
【参考方案4】:我找到了更好的方法:
plt.subplot(2,3,1) # if use subplot
df = pd.read_csv('documents',low_memory=False)
df['column'].hist()
plt.title('your title')
这很简单,在顶部显示得很好,而且不会弄乱你的子图。
【讨论】:
【参考方案5】:你可以使用suptitle()
:
import pylab as pl
from pandas import *
data = DataFrame(np.random.randn(500).reshape(100,5), columns=list('abcde'))
axes = data.hist(sharey=True, sharex=True)
pl.suptitle("This is Figure title")
【讨论】:
hist()
不能有命名的title
参数是否有任何技术原因?以上是关于为 pandas hist plots 集合添加标题的主要内容,如果未能解决你的问题,请参考以下文章
没有使用 pandas 在 plot() 函数中获取图表中的标签 [重复]
R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状使用geom_text函数为pch形状添加标(plot characters)