I am using the following code to generate a barh plot with data stored in a pandas dataframe. Problem is that part of the first bar is not showing and I’m not sure how to address that. Here is the code:
fig = plt.figure(figsize = (10, 6)) ax = fig.add_subplot() ax2 = ax.twiny() import matplotlib.pyplot as plt import numpy as np import pandas as pd from io import StringIO s = StringIO("""name amount price A 40929 4066443 B 93904 9611272 C 188349 19360005 D 248438 24335536 E 205622 18888604 F 140173 12580900 G 76243 6751731 H 36859 3418329 I 29304 2758928 J 39768 3201269 K 30350 2867059""") df = pd.read_csv(s, delimiter=' ', skipinitialspace=True) df.plot(x = 'name', y = 'price', kind = 'barh', ax = ax, color = 'steelblue', width = 0.4, position = 0) df.plot(x = 'name', y = 'amount', kind = 'barh', ax = ax2, color = 'salmon', width = 0.4, position = 1)
and here is how the plot looks like:
as you can see, part of plot for name
K is not showing properly. How could I add some sort of a margin to create space between that axis and the plot itself?
One option is to adjust the upper y-limit:
ylim = ax.get_ylim() ax.set_ylim((ylim, ylim+0.4))