In the simplest case, let's assume we have distance 2 surface code. The X stabilizers will be: X1X2X3 and X3X4X5 which is shown by the red lines.
So the parity check matrix will be: $$ \begin{bmatrix} 1 & 1 & 1 &0 &0 \\ 0 & 0 & 1 &1 & 1 \end{bmatrix} $$ Now when I run the code scripts with pymatching to see how it works,
m =Matching()
m.load_from_check_matrix([[1, 1,1,0,0],[0,0,1,1,1]])
plt.show()
I get the following image as a result. I actually did not understand what this plot means. The empty circle is the boundary. Is it the boundary qubit? Filled circles (in this case 0 and 1) are the stabilizers. But I have just 2 filled circles. Does this mean that one of the filled circle is X1X2X3 and the other filled circle X3X4X5? I also did not understand the weights, for example why do we have 0 between boundary and the circle-0 and why do we have 3 between boundary and the circle-1? Can someone explain me what this plot represents?


