Pandas 直方图标签和标题
Posted
技术标签:
【中文标题】Pandas 直方图标签和标题【英文标题】:Pandas histogram Labels and Title 【发布时间】:2015-12-17 13:27:31 【问题描述】:我正在尝试将 x 轴和 y 轴标签以及标题放在我通过 Pandas 创建的三面板直方图上,但似乎无法正确放置。我得到的唯一结果是标题和三个图表中最后一个的 x 轴标签。我想要一个整体标题,xlabel 和 ylabel。制作情节的代码如下。有什么建议吗?
df1.hist(column='human_den',by='region',sharex=True,sharey=True,layout=(1,3))
【问题讨论】:
现在可以将plot()
函数与kind
、title
、xlabel
和ylabel
一起使用,只需将标题和轴标签添加到直方图即可。 plot(kind='hist', title='my Title', xlabel='x axis', ylabel='y axis')
【参考方案1】:
根据接受的答案here,使用subplots
创建Figure
和axis
对象实例。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# random data
df1 = pd.DataFrame(columns=['human_den','region'])
df1['human_den'] = np.random.rand(100)
df1['region'] = np.random.choice(['Northeast', 'South', 'Midwest'], size=100)
# set up figure & axes
fig, axes = plt.subplots(nrows=1, ncols=3, sharex=True, sharey=True)
# drop sharex, sharey, layout & add ax=axes
df1.hist(column='human_den',by='region', ax=axes)
# set title and axis labels
plt.suptitle('Your Title Here', x=0.5, y=1.05, ha='center', fontsize='xx-large')
fig.text(0.5, 0.04, 'common X', ha='center')
fig.text(0.04, 0.5, 'common Y', va='center', rotation='vertical')
注意,df1.hist()
中没有赋值关键字参数sharex
、sharey
和layout
,有利于在@987654338中设置sharex
、sharey
、nrows
和ncols
@ 实现类似的效果。重要的元素是将df.hist()
的关键字参数ax
分配给先前初始化的axes
对象。标题可以用suptitle设置。
【讨论】:
以上是关于Pandas 直方图标签和标题的主要内容,如果未能解决你的问题,请参考以下文章
Python中Pandas/Matplotlib中直方图和密度的叠加
使用 matplotlib 和 pandas 从 csv 文件中绘制直方图