There's two ways you can do it: the easy way, and the fancy way.
The easy way really is easy. Since the display can only display characters you just display characters - enough to represent a bar graph.
If you have a display with "Rom Code A00"* then character 255 is a solid block (▇) so you just print between 0 and 16 of them in a row. 0 is 0% and 16 is 100%. (If you have ROM Code A02 then you could just use #, or custom design a character - see below).
Force:▒▒▒▒▒▒▒▒▒▒
▇▇▇▇▇▇▇▇▇▒▒▒▒▒▒▒
Or with #:
Force:▒▒▒▒▒▒▒▒▒▒
#########▒▒▒▒▒▒▒
The fancy way is to use the programmable characters facility. You would create 4 new characters that partially fill a block. Each character is 5 pixels wide, so creating a character with 1 column of pixels set (▏), one with 2 set (▍), 3 set (▌) and 4 set (▋) (you already have all 5 set on in character 255 if you have ROM Code A00 - otherwise define a 5th with all 5 columns on). Now you can be clever and work out:
- How many full characters to print, and
- Which of the extra characters to print on the end.
That gives you effectively 16*5 (80) pixels of horizontal resolution (albeit with a small gap between each set of 5 pixels).
Exactly how you do whichever of those methods you choose is now up to you.
*: ROM Code A00 is the character ROM with Japanese characters in the characters 128-255. ROM Code A02 has European accented characters instead.