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


    为了研究人体的心肺功能,对 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()
  • 相关阅读:
    租赁系统开发|沈阳租赁系统|免押房屋租赁功能展示
    WebRTC系列--track的set_enabled详解
    【数据结构与算法】深度剖析“八大排序”(上)_ 探寻一些不为人知的细节
    猿创征文|HCIE-Security Day50:网络攻击介绍
    如何上传服务器代码到GitHub上,并更新
    el-cascader组件根据最后一级向上找到父级并设置默认值
    切面编程@Aspect 获取 url参数 + requestBody参数
    Java---SSM---SpringMVC(1)
    公司内部传文件怎么安全——「用绿盾透明加密软件」
    页错误异常处理(page fault)的实现
  • 原文地址:https://blog.csdn.net/qq_55793988/article/details/124575705