没有“.axvspan()
等价于轴”。此外,".axvline()
" 不是"for ticks"。而且也没有用于标记 .axvspan()
的内容。
那么让我们来回答如何在图下方生成一些红色括号(括号)的问题。您基本上可以只绘制一条括号形式的线并根据 xaxis 变换定位它。下面是执行此操作的函数。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.bar(range(-1,5),range(3,9), width=1, align="edge", ec="k", alpha=1)
ax.set_xticks(range(1,6))
def bracket(ax, pos=[0,0], scalex=1, scaley=1, text="",textkw = {}, linekw = {}):
x = np.array([0, 0.05, 0.45,0.5])
y = np.array([0,-0.01,-0.01,-0.02])
x = np.concatenate((x,x+0.5))
y = np.concatenate((y,y[::-1]))
ax.plot(x*scalex+pos[0], y*scaley+pos[1], clip_on=False,
transform=ax.get_xaxis_transform(), **linekw)
ax.text(pos[0]+0.5*scalex, (y.min()-0.01)*scaley+pos[1], text,
transform=ax.get_xaxis_transform(),
ha="center", va="top", **textkw)
bracket(ax, text="0", pos=[-1,-0.01], linekw=dict(color="crimson", lw=2) )
plt.show()
我是一名优秀的程序员,十分优秀!