One can create subplots easily from a dataframe using pandas:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({\'A\': [0.3, 0.2, 0.5, 0.2]
X and y labels are bound to an axes in matplotlib. So it makes little sense to use xlabel
or ylabel
commands for the purpose of labeling several subplots.
What is possible though, is to create a simple text and place it at the desired position. fig.text(x,y, text)
places some text at coordinates x
and y
in figure coordinates, i.e. the lower left corner of the figure has coordinates (0,0)
the upper right one (1,1)
.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'A': [0.3, 0.2, 0.5, 0.2], 'B': [0.1, 0.0, 0.3, 0.1], 'C': [0.2, 0.5, 0.0, 0.7], 'D': [0.6, 0.3, 0.4, 0.6]}, index=list('abcd'))
axes = df.plot(kind="bar", subplots=True, layout=(2,2), sharey=True, sharex=True)
fig=axes[0,0].figure
fig.text(0.5,0.04, "Some very long and even longer xlabel", ha="center", va="center")
fig.text(0.05,0.5, "Some quite extensive ylabel", ha="center", va="center", rotation=90)
plt.show()
The drawback of this solution is that the coordinates of where to place the text need to be set manually and may depend on the figure size.