Matplotlib茎图

时间:2016-02-12 23:16:58

标签: matplotlib stem

使用词干,我想要显示(x,y)值,所有y值都使用红色高于公差,所有其余值使用绿色。确切地说,我希望使用红色从容差显示到最大值,使用绿色从容差显示到零。在最后的显示屏上,我想看到所有图表的公差为绿色,并且高于公差红色。

1 个答案:

答案 0 :(得分:0)

这有点像工作的黑客。我为x和y创建了任意数据,容差为2.0:

import numpy as np
import matplotlib.pyplot as plt
plt.ion()

x = np.arange(1., 10.)
y = x**.5
tolerance = 2.

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.stem(x[y<=tolerance], y[y<=tolerance], 'g', zorder=10)
if len(x[y>tolerance]) > 0:
    ax.stem(x[y>tolerance], y[y>tolerance], 'r', zorder=10)
    ax.vlines(x[y>tolerance], 0, tolerance, 'g', zorder=20)

ax.axhline(tolerance)

ax.axhline不是必需的,但我添加它以显示容差的值。此代码的结果如下所示:

output of code