我正在使用Matplotlib绘制条形图。我的大多数数据值都在-10到+30的范围内。但是,我有两个数据值约为-300。
当我绘制数据时,-300数据值栏看起来太大,它隐藏了其他栏的见解。有没有办法可以在-10到+30范围内绘制所有条形图,在-30处剪切-300条,然后写一个标签" -300"?
答案 0 :(得分:3)
使用ax.set_ylim()
设置ylimits,使用ax.annotate
来编写标签(如果愿意,还可以使用箭头)。
例如:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1)
y = [-5, 10, 25, -10, 30, -300, 20, 30, -10, -300, 0, 4]
x = range(len(y))
ax.bar(x, y, width=1, alpha=0.5)
ymin, ymax = -15, 35
ax.set_ylim(ymin, ymax)
for xbar,ybar in zip(x,y):
if ybar < ymin:
ax.annotate(
ybar,
xy=(xbar+0.5, -14),
xytext=(xbar+0.5, -8),
rotation=90, ha='center', va='center',
arrowprops=dict(arrowstyle="->"))
plt.show()