Skip to main content
1 of 4
Carl Woll
  • 131.7k
  • 6
  • 246
  • 359

You're most of the way there. Here are a couple tweaks:

makeInset[i_]:=Inset[Graphics[barcode[i]],Scaled[{-0.02,0},{0,i}],{0,0},Scaled[.1]];

Framed[
    BarChart[
        data,
        ChartLabels->None,
        ChartStyle->LightGray,
        BarOrigin->Left,
        PlotRangePadding->{{Scaled[.12],0},{0,0}},
        ImageSize->250,
        Epilog->Table[makeInset[i],{i,Length[data]}]
    ],
    FrameStyle->Thin
]

enter image description here

The basic idea is to use Scaled[.1] as the size of the inset, and then increase the PlotRangePadding to accommodate the addition of the barcodes. I use a PlotRangePadding of Scaled[.12] to account for both the Scaled[{-.02, 0}, {0, i}] position of the inset, as well as the Scaled[.1] size of the inset.

Carl Woll
  • 131.7k
  • 6
  • 246
  • 359