图形标注
有时候我们画好了一幅图,比如柱状图,但是如何在每个柱子上面显示其具体的数据呢?简单的plot.bar()是无法解决这个问题的。今天就遇到了这个问题,发现annotate是一个提供标注的工具,可以解决此类问题。annotate的功能很强大,在图中加文本框,加箭头都可以。
实例
最近在做Titanic 数据分析,分类型变量的单变量分析一般需要画柱状图,在图上加上具体的数值再好不过了。
#定义柱状图显示函数:
def abs_rel_f(feature):
#生成频率的dataframe格式:
abs_frequency=feature.value_counts()
relative_frequency=feature.value_counts(normalize=True).round(3)*100
abs_rel_f=pd.DataFrame({'Absolute Frequency':abs_frequency,'Relative Frequency(%)':relative_frequency})
display(abs_rel_f)
#绘制柱状图
#绝对频率柱状图:
global ax,ax1 #声明全局变量,这样上面的绝对和相对频率注释函数才可以使用ax和ax1
ax=abs_frequency.plot.bar(figsize=(18,7))
abs_bar_labels() # Displays bar labels in abs scale.
plt.show()
#相对频率柱状图:
ax1=relative_frequency.plot.bar(figsize=(18,7))
pct_ba