在我的直方图上添加数据标签 Python/Matplotlib
Adding data labels ontop of my histogram Python/Matplotlib
我正在尝试在我的直方图顶部添加数据标签值,以尝试明显地显示频率。
现在这是我的代码,但不确定如何编写代码以将值置于顶部:
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')
我想知道是否有人知道执行此操作的代码:
plt.ylabel() 带有一个名为 loc
的参数,可用于定义标签的位置:
plt.ylabel("Age", loc="top")
如果要手动控制,可以使用**kwargs
参数传入Text
对象(documentation),可以接受x
和[=16] =] 放置文本的坐标值。
plt.ylabel("Age", text(x=100, y=200, rotation='horizontal'))
您可以使用 plt.hist()
返回的柱状图来使用新的 bar_label()
函数。
这是一个例子:
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 boundaries,例如plt.hist(df['Age'], bins=np.arange(19.999, 60, 5))
.
我正在尝试在我的直方图顶部添加数据标签值,以尝试明显地显示频率。
现在这是我的代码,但不确定如何编写代码以将值置于顶部:
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')
我想知道是否有人知道执行此操作的代码:
plt.ylabel() 带有一个名为 loc
的参数,可用于定义标签的位置:
plt.ylabel("Age", loc="top")
如果要手动控制,可以使用**kwargs
参数传入Text
对象(documentation),可以接受x
和[=16] =] 放置文本的坐标值。
plt.ylabel("Age", text(x=100, y=200, rotation='horizontal'))
您可以使用 plt.hist()
返回的柱状图来使用新的 bar_label()
函数。
这是一个例子:
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 boundaries,例如plt.hist(df['Age'], bins=np.arange(19.999, 60, 5))
.