This is a bit easier to achieve with DiscretePlot
instead of BarChart
.
With
f[x_] := 3 - 1/2 x
Then
Show[
Plot[f[x], {x, 0, 14}],
DiscretePlot[f[x], {x, Range[2, 12, 2]},
PlotMarkers -> "Point",
ExtentSize -> Right,
PlotStyle -> Gray],
Epilog -> {
Inset[Row[{Inactivate[f[x]], "=", f[x]}, Spacer[1]],
Scaled[{.2, .2}],
FormatType -> TraditionalForm,
BaseStyle -> {FontSize -> Scaled[.04]}]
}
]

Hope this helps.
Update
Taking cues from this answer (19542) and applying to a custom ExtentElementFunction
can be created.
ClearAll[fillRandomDots];
fillRandomDots[{{xmin_, xmax_}, {ymin_, ymax_}}, ___] :=
Module[{rect = Rectangle[{xmin, ymin}, {xmax, ymax}], dots, texture},
If[ymax - ymin > 0,
dots = RandomPoint[rect, Area@rect 600];
texture =
Rasterize@
Graphics[{Opacity[.1, Gray], rect,
Opacity[.9, Lighter[Black, .3]], Disk[#, .05] & /@ dots},
PlotRange -> {{xmin, xmax}, {ymin, ymax}},
PlotRangePadding -> None,
ImagePadding -> None
];
,
texture = Graphics@{}
];
{
EdgeForm[{Thin, Black}],
Texture@texture,
Polygon[{{xmin, ymin}, {xmax, ymin}, {xmax, ymax}, {xmin, ymax}},
VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]
}
]
Then
Show[
DiscretePlot[f[x], {x, Range[2, 12, 2]},
PlotMarkers -> "Point",
ExtentSize -> Right,
ExtentElementFunction -> fillRandomDots],
Plot[f[x], {x, 0, 14},
PlotTheme -> "Monochrome"],
PlotRange -> {{0, 14}, {-4, 3}},
AxesOrigin -> {0, 0},
Epilog -> {
Inset[Row[{Inactivate[f[x]], "=", f[x]}, Spacer[1]],
Scaled[{.2, .2}],
FormatType -> TraditionalForm,
BaseStyle -> {FontSize -> Scaled[.04]}]
}
]

Cues can be taken from this answer (19542) to change the sides the axis ticks and labels appear.