您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

59 行
1.7KB

  1. #!/usr/bin/env python3
  2. from argparse import ArgumentParser
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5. if __name__ == "__main__":
  6. parser = ArgumentParser()
  7. parser.add_argument("-f", "--file", required=True, help="Serial CSV")
  8. parser.add_argument("--save", default=None, help="Location to save pdf file.")
  9. args = parser.parse_args()
  10. df = pd.read_csv(args.file)
  11. df["time_rel"] = df["time"] - df["time"].iloc[0]
  12. df.index = df["time_rel"] / 60
  13. for i in range(1, 5):
  14. df["LTE_SCC{}_effective_bw".format(i)] = df["LTE_SCC{}_bw".format(i)]
  15. mask = df["LTE_SCC{}_state".format(i)].isin(["ACTIVE"])
  16. df["LTE_SCC{}_effective_bw".format(i)] = df[
  17. "LTE_SCC{}_effective_bw".format(i)
  18. ].where(mask, other=0)
  19. df["SCC1_NR5G_effective_bw"] = df["SCC1_NR5G_bw"].fillna(0)
  20. df["effective_bw_sum"] = (
  21. df["SCC1_NR5G_effective_bw"]
  22. + df["LTE_SCC1_effective_bw"]
  23. + df["LTE_SCC2_effective_bw"]
  24. + df["LTE_SCC3_effective_bw"]
  25. + df["LTE_SCC4_effective_bw"]
  26. + df["LTE_bw"]
  27. )
  28. bw_cols = [
  29. "SCC1_NR5G_effective_bw",
  30. "LTE_bw",
  31. "LTE_SCC1_effective_bw",
  32. "LTE_SCC2_effective_bw",
  33. "LTE_SCC3_effective_bw",
  34. "LTE_SCC4_effective_bw",
  35. ]
  36. ax = df[bw_cols].plot.area(stacked=True)
  37. ax.set_ylabel("bandwidth [MHz]")
  38. ax.set_xlabel("time [minutes]")
  39. L = plt.legend()
  40. L.get_texts()[0].set_text("5G main")
  41. L.get_texts()[1].set_text("4G main")
  42. L.get_texts()[2].set_text("4G SCC 1")
  43. L.get_texts()[3].set_text("4G SCC 2")
  44. L.get_texts()[4].set_text("4G SCC 3")
  45. L.get_texts()[5].set_text("4G SCC 4")
  46. plt.show()