I am not sure what do you mean by combining the graphs? In my case I just generated the curves one by one and then copied/pasted them into a single graph.
The reason for the different length in the case of the LDPC code is due to the dimensions of the used parity check matrix. Naturally, the length of the output codeword needs to be a multiple of the parity check matrix dimensions. Since we did not want to apply puncturing, we chose the length multiplier that was the closest to the length of the Turbo code (for fair comparison). By the way, in that paper, the LDPC code used was based on the WiMAX standard. In the current version of the simulator (v1.1), we are using the 5G-NR codes.
The codes are constructed differently, and also the rate adaptation is different.
For the WiMAX codes, they are constructed for fixed code rates: 1/2, 2/3, 3/4, and 5/6. The codes use a structure similar to Repeat-Accumulate codes, in which a double diagonal structure is employed. This allows for low-complexity encoding via back-substitution.
For the 5G-NR codes, the target was to have a fine control over the code rate, and this is achieved by puncturing. To allow for that, the structure consists of the core code, which has a double diagonal structure (similar to the WiMAX codes), together with an extended part having a diagonal structure. Most of the puncturing takes place over the extension part, and thus the performance of the core code is unaffected. Also, they define two codes (base graphs) for 5G-NR; one targets high throughput, and the other is more focused on short and low rate transmission.
To see the difference in details, you have to look into how/why they were/are implemented in the standard.