我想绘制一个带有x和y误差条的系列,然后绘制第二个系列,其中第二个y轴上的x和y误差条都在同一个子图上。可以用matplotlib完成吗?
import matplotlib.pyplot as plt
plt.figure()
ax1 = plt.errorbar(voltage, dP, xerr=voltageU, yerr=dPU)
ax2 = plt.errorbar(voltage, current, xerr=voltageU, yerr=currentU)
plt.show()
基本上,我想将ax2放在第二个轴上,并在右侧放置刻度。
谢谢!
答案 0 :(得分:2)
twinx()
是您添加辅助y轴的朋友,例如:
import matplotlib.pyplot as pl
import numpy as np
pl.figure()
ax1 = pl.gca()
ax1.errorbar(np.arange(10), np.arange(10), xerr=np.random.random(10), yerr=np.random.random(10), color='g')
ax2 = ax1.twinx()
ax2.errorbar(np.arange(10), np.arange(10)+5, xerr=np.random.random(10), yerr=np.random.random(10), color='r')
除了:{/ p>之外,没有很多documentation
matplotlib.pyplot.twinx(AX =无) 制作共享x轴的第二个轴。新轴将覆盖ax(如果ax为None,则覆盖当前轴)。 ax2的刻度将放在右侧,并返回ax2实例。
答案 1 :(得分:0)
我正在努力分享x轴,但谢谢你@Bart你救了我!
简单的解决方案是使用twiny
而不是twinx
ax1.errorbar(layers, scores_means[str(epoch)][h,:],np.array(scores_stds[str(epoch)][h,:]))
# Make the y-axis label, ticks and tick labels match the line color.
ax1.set_xlabel('depth', color='b')
ax1.tick_params('x', colors='b')
ax2 = ax1.twiny()
ax2.errorbar(hidden_dim, scores_means[str(epoch)][:,l], np.array(scores_stds[str(epoch)][:,l]))
ax2.set_xlabel('width', color='r')
ax2.tick_params('x', colors='r')
fig.tight_layout()
plt.show()