10数据可视化基础 (7)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据可视化技术 第五章
关系数据可视化
03
数据的分布性
数据的分布性
反映一组数据的平均水平与波动大小数的据数的字特相征,可以用平均数、方差等, 它们从 某一项侧面反映了一组数据的情况,但是在关实关际系生活中,有时只知道这些情况还不够, 还需要知道数据在整体上的分布情况。这就是我们研究数据分布性的目的所在。
运行截图
上述代码呈现出的效果如图所示。
密度图
密度图表现与数据 值对应的边界或域对象 的一种理论图形表示方 法。一般用于呈现连续 变量。密度图的基本架 构如图所示。
数据的相 关关系
基于Python的密度图实现
1. import numpy as np 2. import pandas as pd 3. import matplotlib.pyplot as plt 4. import matplotlib.mlab as mlab 5. plt.rcParams['font.sans-serif'] = ['Microsoft YaHei’] 6. plt.rcParams['axes.unicode_minus'] = False 7. titanic = pd.read_csv('../data/birth-rate.csv’) 8. titanic.dropna(subset=['2008'], inplace=True) 9. kde = mlab.GaussianKDE(titanic['2008’]) 10. x2 = np.linspace(titanic['2008'].min(), titanic['2008'].max(), 1000) 11. line2 = plt.plot(x2, kde(x2), 'g-', linewidth=2) 12. plt.show()
5. dirt = {}
6. data = list(round(birth['2008'], 1))
7. range_num = []
8. for k, g in groupby(sorted(data), key=lambda x: int(x)):
9. lst = map(str, list(map(lambda y: divmod(int(y * 10), 10)[1], list(g))))
10. dirt[k] = ' '.join(lst)
11. range_num.append(k)
12. num = list(range(range_num[0], range_num[-1], 2))
13. for i in num:
14. a = ‘’
15. for k in sorted(dirt.keys()):
运行截图
上述代码呈现出的效果如图所示。
基于Python的直方图结合密度图的实现
import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.mlab as mlab plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文不能正常显示的问题 titanic = pd.read_csv('../data/birth-rate.csv') titanic.dropna(subset=['2008'], inplace=True) plt.style.use('ggplot') plt.hist(titanic['2008'], bins=np.arange(titanic['2008'].min(), titanic['2008'].max(), 3), normed=True, color= 'steelblue', edgecolor='k') plt.title(' 2008出生直方图和密度图') plt.xlabel('出生率') plt.ylabel('频率') kde = mlab.GaussianKDE(titanic['2008']) x2 = np.linspace(titanic['2008'].min(), titanic['2008'].max(), 1000) line2 = plt.plot(x2, kde(x2), 'g-', linewidth=2) plt.tick_params(top='off', right='off') plt.show()
数据分布(频率分布),是指在统计分组的基础上,将总体中各单位按组归类整理, 按一定顺序排列,形成的总体中各单位在各组间的分布。其实质是,在各组按顺序排列 的基础上,列出每个组的总体单位数,形成一个数列,称次数分布数列,简称分配数列, 各组的总体单位数叫次数或频数。
茎叶图
茎叶图的基本思想是将数组或序列中数的据变的化不相大 或不变的位作为茎(主干),将变化大的数关作关为系叶 (分枝)排在茎的后面,读者就可以直观地看到茎后 面有多少叶,并且每个数的数值是多少,其基本框架 如图所示。
直方图,又称质量分布 图,是一种统ຫໍສະໝຸດ Baidu报告图,由 一系列高度不等的纵向条纹 或线段表示数据分布的情况。 一般用横轴表示数据类型, 纵轴表示分布情况。直方图 的基本架构如图所示。
数据的相 关关系
基于Python的直方图实现
1. import pandas as pd 2. import matplotlib.pyplot as plt 3. plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文不能正常显示的问题 4. titanic = pd.read_csv('../data/birth-rate.csv’) 5. titanic.dropna(subset=['2008'], inplace=True) 6. plt.style.use('ggplot’) 7. plt.hist(titanic['2008'], bins=10, color='steelblue', edgecolor='k', label="直方图") 8. plt.tick_params(top='off', right='off’) 9. plt.legend() 10. plt.show()
基于Python的茎叶图图实现
1. from itertools import groupby
2. import pandas as pd
3. birth = pd.read_csv("../data/birth-rate.csv")
4. birth.dropna(subset=['2008'], inplace=True)
16. if 0 <= k - i <= 1:
17.
a = a + ' ' + dirt[k]
18. elif k- i > 1:
19.
break
20. print(str(i).rjust(5), '|', a)
运行截图
程序运行结果截图,注意 这是在控制台中打印输出的结 果。
数据的相 关关系
直方图
关系数据可视化
03
数据的分布性
数据的分布性
反映一组数据的平均水平与波动大小数的据数的字特相征,可以用平均数、方差等, 它们从 某一项侧面反映了一组数据的情况,但是在关实关际系生活中,有时只知道这些情况还不够, 还需要知道数据在整体上的分布情况。这就是我们研究数据分布性的目的所在。
运行截图
上述代码呈现出的效果如图所示。
密度图
密度图表现与数据 值对应的边界或域对象 的一种理论图形表示方 法。一般用于呈现连续 变量。密度图的基本架 构如图所示。
数据的相 关关系
基于Python的密度图实现
1. import numpy as np 2. import pandas as pd 3. import matplotlib.pyplot as plt 4. import matplotlib.mlab as mlab 5. plt.rcParams['font.sans-serif'] = ['Microsoft YaHei’] 6. plt.rcParams['axes.unicode_minus'] = False 7. titanic = pd.read_csv('../data/birth-rate.csv’) 8. titanic.dropna(subset=['2008'], inplace=True) 9. kde = mlab.GaussianKDE(titanic['2008’]) 10. x2 = np.linspace(titanic['2008'].min(), titanic['2008'].max(), 1000) 11. line2 = plt.plot(x2, kde(x2), 'g-', linewidth=2) 12. plt.show()
5. dirt = {}
6. data = list(round(birth['2008'], 1))
7. range_num = []
8. for k, g in groupby(sorted(data), key=lambda x: int(x)):
9. lst = map(str, list(map(lambda y: divmod(int(y * 10), 10)[1], list(g))))
10. dirt[k] = ' '.join(lst)
11. range_num.append(k)
12. num = list(range(range_num[0], range_num[-1], 2))
13. for i in num:
14. a = ‘’
15. for k in sorted(dirt.keys()):
运行截图
上述代码呈现出的效果如图所示。
基于Python的直方图结合密度图的实现
import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.mlab as mlab plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文不能正常显示的问题 titanic = pd.read_csv('../data/birth-rate.csv') titanic.dropna(subset=['2008'], inplace=True) plt.style.use('ggplot') plt.hist(titanic['2008'], bins=np.arange(titanic['2008'].min(), titanic['2008'].max(), 3), normed=True, color= 'steelblue', edgecolor='k') plt.title(' 2008出生直方图和密度图') plt.xlabel('出生率') plt.ylabel('频率') kde = mlab.GaussianKDE(titanic['2008']) x2 = np.linspace(titanic['2008'].min(), titanic['2008'].max(), 1000) line2 = plt.plot(x2, kde(x2), 'g-', linewidth=2) plt.tick_params(top='off', right='off') plt.show()
数据分布(频率分布),是指在统计分组的基础上,将总体中各单位按组归类整理, 按一定顺序排列,形成的总体中各单位在各组间的分布。其实质是,在各组按顺序排列 的基础上,列出每个组的总体单位数,形成一个数列,称次数分布数列,简称分配数列, 各组的总体单位数叫次数或频数。
茎叶图
茎叶图的基本思想是将数组或序列中数的据变的化不相大 或不变的位作为茎(主干),将变化大的数关作关为系叶 (分枝)排在茎的后面,读者就可以直观地看到茎后 面有多少叶,并且每个数的数值是多少,其基本框架 如图所示。
直方图,又称质量分布 图,是一种统ຫໍສະໝຸດ Baidu报告图,由 一系列高度不等的纵向条纹 或线段表示数据分布的情况。 一般用横轴表示数据类型, 纵轴表示分布情况。直方图 的基本架构如图所示。
数据的相 关关系
基于Python的直方图实现
1. import pandas as pd 2. import matplotlib.pyplot as plt 3. plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文不能正常显示的问题 4. titanic = pd.read_csv('../data/birth-rate.csv’) 5. titanic.dropna(subset=['2008'], inplace=True) 6. plt.style.use('ggplot’) 7. plt.hist(titanic['2008'], bins=10, color='steelblue', edgecolor='k', label="直方图") 8. plt.tick_params(top='off', right='off’) 9. plt.legend() 10. plt.show()
基于Python的茎叶图图实现
1. from itertools import groupby
2. import pandas as pd
3. birth = pd.read_csv("../data/birth-rate.csv")
4. birth.dropna(subset=['2008'], inplace=True)
16. if 0 <= k - i <= 1:
17.
a = a + ' ' + dirt[k]
18. elif k- i > 1:
19.
break
20. print(str(i).rjust(5), '|', a)
运行截图
程序运行结果截图,注意 这是在控制台中打印输出的结 果。
数据的相 关关系
直方图