This is the intended behavior. The y-axis values show the y-axis values for the 0th column. 0th row, 0th column contains a graph of probability density. The 0th row, 1st-3rd columns contain data used to create graphs on the diagonals.
the example in the Pandas documentation looks the same.
Demonstration:
from pandas.tools.plotting import scatter_matrix import pylab import numpy as np import pandas as pd def create_scatterplot_matix(X, name): pylab.figure() df = pd.DataFrame(X) axs = scatter_matrix(df, alpha=0.2, diagonal='kde') pylab.savefig(name + ".png") create_scatterplot_matix([[0,0,0,0] ,[1,1,1,1] ,[1,1,1,1] ,[2,2,2,2]],'test')
In this code example, I used an extremely simple dataset for demo purposes. I also deleted the code section that ticks y and x.
This is the result:

Each diagonal has a probability density graph. Each of the off-diagonals uses the data used to create graphs in the diagonals. The y axis of the 0th row shows the y axis of the probability density graph located at the 0.0th position. The y-axis of the 1st, 2nd and 3rd rows show the y-axis of the data at positions 0.1, 0.2 and 0.3, used to create diagonal probability density graphs.
In our example, you can see the following sketched points: [0,0] [1,1] [2,2]. The point in [1,1] is darker, because in this place there are more points than the rest.
What happens is that your dataset, all values are between 0 and 1, so 0.5 shows both axes perfectly in the center of the rows / columns. However, the data is strongly distorted with respect to the value 0, therefore, the probability density diagrams grow closer the closer to 0. The maximum value of the probability density graph in the 0th line looks like this: (eyeball test) about 8 -10.
What I personally would do is edit my left border code something like this:
autoscale = True # We want the 0,0th item y-axis to autoscale for ax in axs[:,0]: # the left boundary ax.grid('off', axis='both') if autoscale == True: ax.set_autoscale_on(True) autoscale = False else: ax.set_yticks([0, 0.5])
In our example dataset, using this method, we create the following diagram:
