【问题标题】:Superimposing plot over errorbars in matplotlib在 matplotlib 中的误差条上叠加绘图
【发布时间】:2022-01-27 11:18:39
【问题描述】:

我试图在我的误差线上叠加一个图。我在网上搜索过,这似乎是执行此操作的方法。我希望情节看起来像它的样子,但是在粗色线之间有细黑线。

plt.figure(figsize=(15, 10), dpi=80)
plt.grid(True, linewidth=0.5, color='#ff0000', linestyle='-')

for i in range(len(B_arrays)):
    plt.errorbar(T_arrays[i], B_arrays[i], STD_arrays[i], linestyle='None', marker='^', label = labels[i])
    plt.plot(T_arrays[i], B_arrays[i], color = "k")
    
plt.ylabel("B")
plt.xlabel("Time")
plt.legend(loc="upper right", prop={'size': 8})
plt.show()

【问题讨论】:

    标签: python python-3.x matplotlib


    【解决方案1】:

    对黑线使用plt.plot,但只需调整zorder

    • zorder > 2 拉出上面的黑线

      for t, b, std, label in zip(T_arrays, B_arrays, STD_arrays, labels):
          plt.errorbar(t, b, std, linestyle='None', marker='^', label=label)
          plt.plot(t, b, color='k', zorder=3)
          #                         ^^^^^^^^
      
    • 或使用zorder 推动下面的错误栏

      for t, b, std, label in zip(T_arrays, B_arrays, STD_arrays, labels):
          plt.errorbar(t, b, std, linestyle='None', marker='^', label=label, zorder=1)
          plt.plot(t, b, color='k')
          #                                                                  ^^^^^^^^
      

    这里的键值为 2,因为所有行(包括误差线)的默认 zorder 为 2:

    Type Default zorder
    Images 0
    Patches 1
    Lines 2
    Major ticks 2.01
    Text 3
    Legend 5

    【讨论】:

      【解决方案2】:

      我找到了解决方案,但这不是最干净的方法。如果社区有其他方法,我愿意接受更好的方法来做到这一点。

      plt.figure(figsize=(15, 10), dpi=80)
      plt.grid(True, linewidth=0.5, color='#ff0000', linestyle='-')
      
      for i in range(len(B_arrays)):
          plt.errorbar(T_arrays[i], B_arrays[i], STD_arrays[i], linestyle='None', marker='^', label = labels[i])
          plt.errorbar(T_arrays[i], B_arrays[i], np.zeros(len(B_arrays[i])),color = "k")
          
      plt.ylabel("B")
      plt.xlabel("Time")
      plt.legend(loc="upper right", prop={'size': 8})
      plt.show()
      

      【讨论】:

        猜你喜欢
        • 2014-12-02
        • 2014-06-11
        • 1970-01-01
        • 1970-01-01
        • 2020-04-07
        • 2020-04-12
        • 1970-01-01
        • 2019-05-30
        • 2020-02-28
        相关资源
        最近更新 更多