| ax00 = ax[1] | ax00 = ax[1] | ||||
| ax01 = ax00.twinx() | ax01 = ax00.twinx() | ||||
| ax02 = ax00.twinx() | ax02 = ax00.twinx() | ||||
| ax02.spines.right.set_position(("axes", 1.22)) | |||||
| # Plot vertical lines | # Plot vertical lines | ||||
| first = True | |||||
| lte_handovers = transmission_df["Cell_ID"].diff().dropna() | lte_handovers = transmission_df["Cell_ID"].diff().dropna() | ||||
| for index, value in lte_handovers.items(): | for index, value in lte_handovers.items(): | ||||
| if value > 0: | if value > 0: | ||||
| ax00.axvline(index, ymin=0, ymax=1, color="skyblue", label="4G Handover") | |||||
| if first: | |||||
| ax00.axvline(index, ymin=0, ymax=1, color="skyblue", label="4G Handover") | |||||
| first = False | |||||
| else: | |||||
| ax00.axvline(index, ymin=0, ymax=1, color="skyblue") | |||||
| first = True | |||||
| nr_handovers = transmission_df["NR5G_Cell_ID"].diff().dropna() | nr_handovers = transmission_df["NR5G_Cell_ID"].diff().dropna() | ||||
| for index, value in nr_handovers.items(): | for index, value in nr_handovers.items(): | ||||
| if value > 0: | if value > 0: | ||||
| ax00.axvline(index, ymin=0, ymax=1, color="greenyellow", label="5G Handover") | |||||
| if first: | |||||
| ax00.axvline(index, ymin=0, ymax=1, color="greenyellow", label="5G Handover") | |||||
| first = False | |||||
| else: | |||||
| ax00.axvline(index, ymin=0, ymax=1, color="greenyellow") | |||||
| ax0.plot(transmission_df["snd_cwnd"].dropna(), color="lime", linestyle="dashed", label="cwnd") | ax0.plot(transmission_df["snd_cwnd"].dropna(), color="lime", linestyle="dashed", label="cwnd") | ||||
| ax1.plot(transmission_df["srtt"].dropna(), color="red", linestyle="dashdot", label="sRTT") | ax1.plot(transmission_df["srtt"].dropna(), color="red", linestyle="dashdot", label="sRTT") | ||||
| ax2.plot(transmission_df["goodput_rolling"], color="blue", linestyle="solid", label="goodput") | ax2.plot(transmission_df["goodput_rolling"], color="blue", linestyle="solid", label="goodput") | ||||
| ax00.plot(transmission_df["NR5G_RSRQ_(dB)"].dropna(), color="magenta", linestyle="dotted", label="NR RSRQ") | ax00.plot(transmission_df["NR5G_RSRQ_(dB)"].dropna(), color="magenta", linestyle="dotted", label="NR RSRQ") | ||||
| ax01.plot(transmission_df["bw_sum"].dropna(), color="peru", linestyle="dotted", label="bandwidth") | ax01.plot(transmission_df["bw_sum"].dropna(), color="peru", linestyle="dotted", label="bandwidth") | ||||
| ax02.plot(transmission_df["RSRQ_(dB)"].dropna(), color="magenta", linestyle="dotted", label="LTE RSRQ") | |||||
| ax02.plot(transmission_df["RSRQ_(dB)"].dropna(), color="purple", linestyle="dotted", label="LTE RSRQ") | |||||
| ax2.spines.right.set_position(("axes", 1.1)) | ax2.spines.right.set_position(("axes", 1.1)) | ||||
| ax1.set_ylim(0, 0.3) | ax1.set_ylim(0, 0.3) | ||||
| ax2.set_ylim(0, 500) | ax2.set_ylim(0, 500) | ||||
| ax00.set_ylim(-25, -5) | ax00.set_ylim(-25, -5) | ||||
| ax01.set_ylim(0, 200) | |||||
| ax01.set_ylim(0, 400) | |||||
| ax02.set_ylim(-25, -5) | ax02.set_ylim(-25, -5) | ||||
| ax00.set_xlabel("arrival time [s]") | ax00.set_xlabel("arrival time [s]") |