在直方图上添加数据标签Python/Matplotlib

66bbxpm5  于 2023-08-06  发布在  Python
关注(0)|答案(2)|浏览(177)

我正试图添加数据标签的值上我的直方图,试图显示频率明显。
这是我现在的代码,但不确定如何将值放在顶部:

plt.figure(figsize=(15,10))
plt.hist(df['Age'], edgecolor='white', label='d')
plt.xlabel("Age")
plt.ylabel("Number of Patients")
plt.title = ('Age Distrubtion')

字符串
我想知道是否有人知道这样做的代码:


的数据

6ojccjat

6ojccjat1#

您可以使用新的bar_label()函数来使用plt.hist()返回的条形图。
下面是一个例子:

from matplotlib import pyplot as plt
import pandas as pd
import numpy as np

df = pd.DataFrame({'Age': np.random.randint(20, 60, 200)})

plt.figure(figsize=(15, 10))
values, bins, bars = plt.hist(df['Age'], edgecolor='white')
plt.xlabel("Age")
plt.ylabel("Number of Patients")
plt.title('Age Distrubtion')
plt.bar_label(bars, fontsize=20, color='navy')
plt.margins(x=0.01, y=0.1)
plt.show()

字符串


的数据
PS:由于年龄是离散分布,建议明确设置bin边界,例如plt.hist(df['Age'], bins=np.arange(19.999, 60, 5))的值。

3wabscal

3wabscal2#

plt.ylabel()带有一个名为loc的参数,可用于定义标签的位置:

plt.ylabel("Age", loc="top")

字符串
如果你想手动控制,你可以使用**kwargs参数传入Text对象(文档),它可以接受xy坐标值来放置文本。

plt.ylabel("Age", text(x=100, y=200, rotation='horizontal'))

相关问题