Following this I have managed to rotate the labels as I want them.
axes = pd.plotting.scatter_matrix(df_plot, alpha=0.1, figsize=[10, 10])
n = len(df_plot.columns) - 1
for x in range(n):
for y in range(n):
# to get the axis of subplots
ax = axes[x, y]
# to make x axis name vertical
ax.xaxis.label.set_rotation(90)
# to make y axis name horizontal
ax.yaxis.label.set_rotation(0)
# to make sure y axis names are outside the plot area
ax.yaxis.labelpad = 25
The problem is now that (1) I need to adjust the labelpad manually (which is not an option as I have many such plot created from a loop) and (2) that longer labels are cut-off by the edge of the figure (this can partly be addressed with plt.tight_layout() but this also increases the space between the scatter plot which I don't want). How can I fix this? I guess there must be simple "auto adjust"?