ClearAll[rectangleFilling] rectangleFilling[w_ : 12, op_ : .8, ef_ : Automatic] := ReplaceAll[ GraphicsComplex[c_, p_] :> GraphicsComplex[c, p /. Line[{a_, b_}, ___] :> Dynamic @ {Opacity[1], Blend[{CurrentValue["Color"], White}, op], EdgeForm[{AbsoluteThickness[2], ef /. Automatic -> CurrentValue["Color"]}], Rectangle[Offset[{-w, 0}, c[[b]]], Offset[{w, 0}, c[[a]]]]}]] ***Examples:*** rectangleFilling[]@ ListPlot[{1, 2, 3, 6, 4, 4}, Filling -> Bottom, FillingStyle -> Directive[CapForm["Butt"], AbsoluteThickness[5]], Frame -> True, GridLines -> Automatic, PlotRangePadding -> {{-0.5, 0.5}, {0.5, 0.5}}] [![enter image description here][1]][1] rectangleFilling[20]@ ListPlot[MapIndexed[{{#2[[1]], #}} &]@{1, 2, 3, 6, 4, 4}, PlotStyle -> "Rainbow", Filling -> 2.5, FillingStyle -> Directive[CapForm["Butt"], AbsoluteThickness[5]], Frame -> True, GridLines -> Automatic, PlotRangePadding -> {{-0.5, 0.5}, {0.5, 0.5}}] [![enter image description here][2]][2] Replace `Filling -> 2.5} above with `Filling -> {1 -> Top, 2 -> 5, 4 -> Bottom, 6 -> 2}` to get [![enter image description here][3]][3] [1]: https://i.sstatic.net/97bMb.png [2]: https://i.sstatic.net/SyNhh.png [3]: https://i.sstatic.net/zoTnG.png