• 多元统计分析 实验一、多元统计数据的图标表示法


    为了研究人体的心肺功能,对 31个成年男子测量了肺活量(OXY), 并且记录了他们的年龄(age)、体重( weight),以及简单训练后的测试数据:跑 1.5 英里的时间(time)、休息时的脉搏( pulse)、跑步时的脉搏 ( pulse)和跑步时记录的最大脉搏( pulse),共 7 项指标(数据见表 1.2)

    (1)分别绘制 OXY 与 time 和 age 的散布图,从图中可得出什么结论?

    (2)绘制 7 项指标的散布图矩阵,从这里能否直观看出一些结论

    (3)绘制序号为 1,2,21,22 的 4 个人的轮廓图和雷达图;

    (4)绘制序号为 1,2,21,2 的 4 个人的调和曲线图(放在同一张图上)

    1. import pandas as pd
    2. import numpy as np
    3. import matplotlib.pyplot as plt
    4. from pandas.plotting import andrews_curves
    5. plt.rcParams['font.family'] = 'Microsoft YaHei'
    6. plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    7. data = pd.read_csv(r"data/肺活量与其他指标的数据.txt", sep='\t')
    8. # (1) 绘制OXY与time和age的散布图
    9. plt.title("散布图")
    10. plt.scatter(data["OXY"], data["time"], label="OXY与time")
    11. plt.scatter(data["OXY"], data["age"], label="OXY与age")
    12. plt.legend()
    13. plt.grid(True)
    14. plt.show()
    15. # (2))绘制 7 项指标的散布图矩阵
    16. pd.plotting.scatter_matrix(data)
    17. plt.title("散布矩阵图")
    18. plt.show()
    19. # (3)绘制序号为 1,2,21,22 的 4 个人的轮廓图
    20. plt.figure()
    21. data1 = data.loc[[0, 1, 20, 21]]
    22. pd.plotting.parallel_coordinates(data1, "No")
    23. plt.title("轮廓图")
    24. plt.show()
    25. # (3)绘制序号为 1,2,21,22 的 4 个人的雷达图
    26. data1 = data1.set_index("No") # 数据处理
    27. labels = data1.columns.values # 特征值
    28. kinds = list(data1.index) # 成员变量
    29. data1 = pd.concat([data1, data1[[labels[0]]]], axis=1) # 再添加第一列,使雷达图闭合。
    30. contents = np.array(data1)
    31. nAttr = len(labels)
    32. angle = np.linspace(0, 2 * np.pi, nAttr, endpoint=False) # 平分雷达图
    33. angle = np.concatenate((angle, [angle[0]])) # 闭合
    34. labels = np.concatenate((labels, [labels[0]])) # 特征值闭合
    35. fig = plt.figure()
    36. ax = fig.add_subplot(111, polar=True)
    37. for i in range(len(kinds)):
    38. ax.plot(angle, contents[i], linewidth=1, label=kinds[i])
    39. ax.fill(angle, contents[i], alpha=0.2)
    40. ax.set_thetagrids(angle * 180 / np.pi, labels)
    41. plt.legend()
    42. plt.title("雷达图")
    43. plt.show()
    44. # (4)绘制序号为 1,2,21,2 的 4 个人的调和曲线图(放在同一张图上)
    45. pd.plotting.andrews_curves(data.loc[[0, 1, 20, 21]], "No")
    46. plt.title("调和曲线图")
    47. plt.show()
  • 相关阅读:
    【图像去噪】基于隐马尔可夫模型实现图像去噪处理附matlab代码
    NaN 的 注意点
    字节的一个小问题 npm 和 yarn不一样吗?
    el-Switch 开关二次确认
    python中装饰器的使用教程详解
    h5键盘弹出收起时引起的页面变化
    【软件测试】别人家的才是最优秀的,一位“屌丝”的逆袭......
    利用fiddler抓包工具测试APP及高级应用
    leetcode - 二分查找
    【paddle】Vision Transformer(attention)
  • 原文地址:https://blog.csdn.net/qq_55793988/article/details/124575705