Python Numpy Matplotlib Set Y-Label inline -


i'm wondering how might set y label in following plot inline 1 another. misaligned since y values not of equal space.

enter image description here

in case, it's easier not use ylabel @ all. instead, use annotate place text @ constant offset left side of axes.

as example of problem:

import matplotlib.pyplot plt  fig, axes = plt.subplots(nrows=4, sharex=true) yranges = [(-1000, 100), (-0.001, 0.002), (0, 5), (0, 20)] labels = ['$p_{euc}[mm]$', '$p_z[mm]$', '$p_y[mm]$', '$p_x[mm]$']  ax, yrange, label in zip(axes, yranges, labels):     ax.set(ylim=yrange, ylabel=label)  plt.show() 

enter image description here

to solve this, it's easiest use annotate. trick position text @ y=0.5 in axes coordinates, , 5 points left hand edge of figure in x-direction. syntax bit verbose, relatively easy read. key in xycoords , textcoords kwargs control how xy , xytext interpreted:

import matplotlib.pyplot plt  fig, axes = plt.subplots(nrows=4, sharex=true) yranges = [(-1000, 100), (-0.001, 0.002), (0, 5), (0, 20)] labels = ['$p_{euc}[mm]$', '$p_z[mm]$', '$p_y[mm]$', '$p_x[mm]$']  ax, yrange, label in zip(axes, yranges, labels):     ax.set(ylim=yrange)     ax.annotate(label, xy=(0, 0.5), xytext=(5, 0), rotation=90,                 xycoords=('figure fraction', 'axes fraction'),                 textcoords='offset points', va='center', ha='left')  plt.show() 

enter image description here


Comments

Popular posts from this blog

php - Admin SDK -- get information about the group -

dns - How To Use Custom Nameserver On Free Cloudflare? -

Python Error - TypeError: input expected at most 1 arguments, got 3 -