【问题标题】:matplotlib: draw a box on axesmatplotlib:在轴上画一个框
【发布时间】:2019-03-20 21:06:49
【问题描述】:
import matplotlib.patches as patches

df2 = pd.melt(
    data2.query('worktype_id!=38')[['period','worktype', 'utilization_billable', 'utilization' ]], 
    id_vars=['period', 'worktype']).sort_values(['period', 'variable'], ascending=[True, True])
g = sns.relplot(x='period', y='value', 
            hue='variable', data=df2, col='worktype', kind='line', col_wrap=4, 
            )
for ax in g.axes:
    ax.axhline(y=75, color='g', linestyle='--')
    ax.axhline(y=90, color='r', linestyle='--')
    rect = plt.Rectangle((10,10),10,10,linewidth=3,edgecolor='r',facecolor='red', alpha=1)
    ax.add_patch(rect)

我想在 y=75 和 90 之间绘制方框(图表上的绿线和红线),但是当我执行 ax.add_patch

时没有显示任何内容

这是我得到的图像:

那么我如何填充红色和绿色水平线之间的区域?

【问题讨论】:

标签: python pandas matplotlib


【解决方案1】:

如果您想要填充一个固定区域并且想要在整个图表中进行填充,那么使用axvspan 可能会更好。例如

ax.axvspan(75, 90, facecolor='red')

【讨论】:

    【解决方案2】:
    plt.fill_between(plt.xlim(),[75,75],[90,90])
    
    • plt.xlim() : 返回 xaxis 的开始和结束
    • 从 x 轴开始填充颜色,从 75 开始,到 90 结束 y 轴
    • 从 75 开始,在 y 轴的 90 结束,继续填充到 x 轴的末尾

    你不需要绘制一个矩形

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多