我想在pytohn 3.7中由matplotlib创建的直方图中用频率值标记出最高的条形。
数据是熊猫的数据框。
就像这个数字一样, How to automatically annotate maximum value in pyplot?
但是,我的图是直方图。我不想用其值标记每个条。
答案 0 :(得分:1)
这里是一种绘制频率图显示在最高条上的直方图的方法:
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(0)
# Generate data
data = np.random.normal(0,1,200)
# Plot histogram
plt.figure()
y, x, _ = plt.hist(data, histtype='bar', edgecolor='darkgray', bins=15)
# Compute the max value (plt.hist returns the x and y positions of the bars)
ymax = y.max()
idx = np.where(y == ymax)[0][0]
xval = x[idx]
# Annotate the highest value
plt.gca().text(xval, ymax, ymax, ha='left', va='bottom')