| transmission_df.index = pd.to_datetime(transmission_df.index) | transmission_df.index = pd.to_datetime(transmission_df.index) | ||||
| transmission_df = transmission_df.sort_index() | transmission_df = transmission_df.sort_index() | ||||
| #print("Calculate goodput...") | |||||
| #print(transmission_df) | |||||
| # srtt to [s] | |||||
| transmission_df["srtt"] = transmission_df["srtt"].apply(lambda x: x / 10**6) | |||||
| # key for columns and level for index | # key for columns and level for index | ||||
| transmission_df["goodput"] = transmission_df["payload_size"].groupby(pd.Grouper(level="datetime", freq="{}s".format(args.interval))).transform("sum") | transmission_df["goodput"] = transmission_df["payload_size"].groupby(pd.Grouper(level="datetime", freq="{}s".format(args.interval))).transform("sum") | ||||
| ax.axvspan(bounds.min(), bounds.max(), alpha=0.3, color=color_list[c]) | ax.axvspan(bounds.min(), bounds.max(), alpha=0.3, color=color_list[c]) | ||||
| p4, = twin3.plot(transmission_df["snd_cwnd"].dropna(), color="lime", linestyle="dashed", label="cwnd") | p4, = twin3.plot(transmission_df["snd_cwnd"].dropna(), color="lime", linestyle="dashed", label="cwnd") | ||||
| p3, = twin2.plot(transmission_df["ack_rtt"].dropna(), color="red", linestyle="dashdot", label="ACK RTT") | |||||
| p1, = ax.plot(transmission_df["goodput_rolling"], color="blue", linestyle="solid", label="goodput") | |||||
| p3, = twin2.plot(transmission_df["srtt"].dropna(), color="red", linestyle="dashdot", label="sRTT") | |||||
| p1, = ax.plot(transmission_df["arrival_time"], transmission_df["goodput_rolling"], color="blue", linestyle="solid", label="goodput") | |||||
| p2, = twin1.plot(transmission_df["downlink_cqi"].dropna(), color="magenta", linestyle="dotted", label="CQI") | p2, = twin1.plot(transmission_df["downlink_cqi"].dropna(), color="magenta", linestyle="dotted", label="CQI") | ||||
| ax.set_xlim(transmission_df["index"].min(), transmission_df["index"].max()) | ax.set_xlim(transmission_df["index"].min(), transmission_df["index"].max()) | ||||
| ax.set_xlabel("arrival time") | ax.set_xlabel("arrival time") | ||||
| ax.set_ylabel("Goodput [mbps]") | ax.set_ylabel("Goodput [mbps]") | ||||
| twin1.set_ylabel("CQI") | twin1.set_ylabel("CQI") | ||||
| twin2.set_ylabel("ACK RTT [s]") | |||||
| twin2.set_ylabel("sRTT [s]") | |||||
| twin3.set_ylabel("cwnd") | twin3.set_ylabel("cwnd") | ||||
| ax.yaxis.label.set_color(p1.get_color()) | ax.yaxis.label.set_color(p1.get_color()) |