我穿过了this example of matplotlib,他们的图有上限和下限,还有一条垂直线,当它们结束时显示出来:
但当我在Python3.7 vscode中使用完全相同的代码时,我得到如下结果:
为什么?我希望x和y极限上额外的腱前线始终显示。我该怎么做
教程中的代码:
"""
Demo of the errorbar function, including upper and lower limits
"""
import numpy as np
import matplotlib.pyplot as plt
# example data
x = np.arange(0.5, 5.5, 0.5)
y = np.exp(-x)
xerr = 0.1
yerr = 0.2
ls = 'dotted'
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
# standard error bars
plt.errorbar(x, y, xerr=xerr, yerr=yerr, ls=ls, color='blue')
# including upper limits
uplims = np.zeros(x.shape)
uplims[[1, 5, 9]] = True
plt.errorbar(x, y + 0.5, xerr=xerr, yerr=yerr, uplims=uplims, ls=ls,
color='green')
# including lower limits
lolims = np.zeros(x.shape)
lolims[[2, 4, 8]] = True
plt.errorbar(x, y + 1.0, xerr=xerr, yerr=yerr, lolims=lolims, ls=ls,
color='red')
# including upper and lower limits
plt.errorbar(x, y + 1.5, marker='o', ms=8, xerr=xerr, yerr=yerr,
lolims=lolims, uplims=uplims, ls=ls, color='magenta')
# including xlower and xupper limits
xerr = 0.2
yerr = np.zeros(x.shape) + 0.2
yerr[[3, 6]] = 0.3
xlolims = lolims
xuplims = uplims
lolims = np.zeros(x.shape)
uplims = np.zeros(x.shape)
lolims[[6]] = True
uplims[[3]] = True
plt.errorbar(x, y + 2.1, marker='o', ms=8, xerr=xerr, yerr=yerr,
xlolims=xlolims, xuplims=xuplims, uplims=uplims, lolims=lolims,
ls='none', mec='blue', capsize=0, color='cyan')
ax.set_xlim((0, 5.5))
ax.set_title('Errorbar upper and lower limits')
plt.show()
编辑:
现在,只有手动指定倾覆而不是全局倾覆,它才能工作…为什么
fig, (loss_ax1, acc_ax2) = plt.subplots(nrows=2, ncols=1, sharex=True)
loss_ax1.plot(episodes_train_x, train_loss_y, label='Train Loss', linestyle='-', marker='o', color='r', linewidth=1)
loss_ax1.errorbar(episodes_eval_x, eval_loss_y, yerr=eval_loss_std, label=f'{eval_label} Loss', linestyle='-', marker='o', color='m', linewidth=1, capsize=3)
loss_ax1.legend()
loss_ax1.set_title('Meta-Learnig & Evaluation Curves')
loss_ax1.set_ylabel('Meta-Loss')
loss_ax1.grid(grid)
acc_ax2.plot(episodes_train_x, train_acc_y, label='Accuracy', linestyle='-', marker='o', color='b', linewidth=1)
acc_ax2.errorbar(episodes_eval_x, eval_acc_y, yerr=eval_acc_std, label=f'{eval_label} Accuracy', linestyle='-', marker='o', color='c', linewidth=1, capsize=3)
acc_ax2.legend()
acc_ax2.set_xlabel('Episodes (Outer Epochs)')
acc_ax2.set_ylabel('Meta-Accuracy')
acc_ax2.grid(grid)
plt.tight_layout()
#plt.show() if show else None
使用
capsize
参数设置封口的长度,例如或为所有绘图设置一次选项:
示例代码:
相关问题 更多 >
编程相关推荐