我正在尝试在直方图上添加数据标签来展示频率。
以下是我的代码,但不确定如何编写代码将数值放置在顶部:
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.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.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()
提示:由于年龄是离散分布,建议显式设置分组边界,例如 plt.hist(df['Age'], bins=np.arange(19.999, 60, 5))
。
bar_label
仅在 matplotlib 版本 3.4 或更高版本中可用。 - Frumda Grayforcefig, ax = plt.subplots(); ax.set_title = ('年龄分布')
这样的东西。 - Julianplt.title = "..."
不仅不起作用,而且使得函数无法访问。正确的方式应该是像你所指示的那样使用 plt.title("...")
或者 ax.set_title("...")
。 - JohanCplt.ylabel() 是一个带有参数的函数,其中 loc
参数可以用于定义标签的位置:
plt.ylabel("Age", loc="top")
**kwargs
参数传递Text
对象(文档),该对象可接受x
和y
坐标值来放置文本。请注意保留HTML标签。plt.ylabel("Age", text(x=100, y=200, rotation='horizontal'))
plt.xlabel()
的代码,而不是 plt.ylabel()
的。 - Danyal Imranimport matplotlib.pyplot.text as text
导入模块 @RubenVellupillai - Danyal Imran