深圳 网站 设计,大型公司网站制作,网站怎么做营销,开发一个游戏的过程利用可视化探索图表
一、数据可视化与探索图
数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质#xff0c; 以及数据间或属性间的关系#xff0c;可以轻易地让人看图释义。用户通过探索图#xff08;Exploratory Graph#xff09;可以了解数据的…利用可视化探索图表
一、数据可视化与探索图
数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质 以及数据间或属性间的关系可以轻易地让人看图释义。用户通过探索图Exploratory Graph可以了解数据的特性、寻找数据的趋势、降低数据的理解门槛。
二、常见的图表实例
本章主要采用 Pandas 的方式来画图而不是使用 Matplotlib 模块。其实 Pandas 已经把 Matplotlib 的画图方法整合到 DataFrame 中因此在实际应用中用户不需要直接引用 Matplotlib 也可以完成画图的工作。
1.折线图
折线图line chart是最基本的图表可以用来呈现不同栏位连续数据之间的关系。绘制折线图使用的是 plot.line() 的方法可以设置颜色、形状等参数。在使用上拆线图绘制方法完全继承了 Matplotlib 的用法所以程序最后也必须调用 plt.show() 产生图如图8.4 所示。
df_iris[[sepal length (cm)]].plot.line()
plt.show()
ax df[[sepal length (cm)]].plot.line(colorgreen,titleDemo,style--)
ax.set(xlabelindex, ylabellength)
plt.show()2.散布图
散布图Scatter Chart用于检视不同栏位离散数据之间的关系。绘制散布图使用的是 df.plot.scatter()如图8.5所示。
df df_iris
df.plot.scatter(xsepal length (cm), ysepal width (cm)) from matplotlib import cm
cmap cm.get_cmap(Spectral)
df.plot.scatter(xsepal length (cm), ysepal width (cm), sdf[[petal length (cm)]]*20, cdf[target], cmapcmap, titledifferent circle size by petal length (cm))3.直方图、长条图 直方图Histogram Chart通常用于同一栏位呈现连续数据的分布状况与直方图类似的另一种图是长条图Bar Chart用于检视同一栏位如图 8.6 所示。df[[sepal length (cm), sepal width (cm), petal length (cm),petal width (cm)]].plot.hist()
2 df.target.value_counts().plot.bar()4. 圆饼图、箱形图
圆饼图Pie Chart可以用于检视同一栏位各类别所占的比例而箱形图Box Chart则用于检视同一栏位或比较不同栏位数据的分布差异如图 8.7 所示。
df.target.value_counts().plot.pie(legendTrue)
df.boxplot(column[target],figsize(10,5))数据探索实战分享
本节利用两个真实的数据集实际展示数据探索的几种手法。
一、2013年美国社区调查
在美国社区调查American Community Survey中每年约有 350 万个家庭被问到关于他们是谁及他们如何生活的详细问题。调查的内容涵盖了许多主题包括祖先、教育、工作、交通、互联网使用和居住。
数据来源https://www.kaggle.com/census/2013-american-community-survey。
数据名称2013 American Community Survey。
先观察数据的样子与特性以及每个栏位代表的意义、种类和范围。
# 读取数据
df pd.read_csv(./ss13husa.csv)
# 栏位种类数量
df.shape
# (756065,231) # 栏位数值范围
df.describe()先将两个 ss13pusa.csv 串连起来这份数据总共包含 30 万笔数据3 个栏位SCHL ( 学历School Level)、 PINCP ( 收入Income) 和 ESR ( 工作状态Work Status)。
pusa pd.read_csv(ss13pusa.csv) pusb pd.read_csv(ss13pusb.csv)
# 串接两份数据
col [SCHL,PINCP,ESR]
df[ac_survey] pd.concat([pusa[col],pusb[col],axis0)依据学历对数据进行分群观察不同学历的数量比例接着计算他们的平均收入。
group df[ac_survey].groupby(by[SCHL]) print(学历分布: group.size())
group ac_survey.groupby(by[SCHL]) print(平均收入: group.mean())二、波士顿房屋数据集
波士顿房屋数据集Boston House Price Dataset包含有关波士顿地区的房屋信息 包 506 个数据样本和 13 个特征维度。
数据来源https://archive.ics.uci.edu/ml/machine-learning-databases/housing/。
数据名称Boston House Price Dataset。
先观察数据的样子与特性以及每个栏位代表的意义、种类和范围。
可以用直方图的方式画出房价MEDV的分布如图 8.8 所示。
df pd.read_csv(./housing.data)
# 栏位种类数量
df.shape
# (506, 14) #栏位数值范围df.describe()
import matplotlib.pyplot as plt
df[[MEDV]].plot.hist()
plt.show()注图中英文对应笔者在代码中或数据中指定的名字实践中读者可将它们替换成自己需要的文字。
接下来需要知道的是哪些维度与“房价”关系明显。先用散布图的方式来观察如图8.9所示。
# draw scatter chart
df.plot.scatter(xMEDV, yRM) .
plt.show()最后计算相关系数并用聚类热图Heatmap来进行视觉呈现如图 8.10 所示。
# compute pearson correlation
corr df.corr()
# draw heatmap
import seaborn as sns
corr df.corr()
sns.heatmap(corr)
plt.show()颜色为红色表示正向关系颜色为蓝色表示负向关系颜色为白色表示没有关系。RM 与房价关联度偏向红色为正向关系LSTAT、PTRATIO 与房价关联度偏向深蓝 为负向关系CRIM、RAD、AGE 与房价关联度偏向白色为没有关系