Python数据可视化绘图怎样做,有哪些方法
Admin 2022-09-03 群英技术资讯 305 次浏览
数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质, 以及数据间或属性间的关系,可以轻易地让人看图释义。用户通过探索图(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(color='green',title="Demo",style='--') ax.set(xlabel="index", ylabel="length") plt.show()
2.散布图
散布图(Scatter Chart)用于检视不同栏位离散数据之间的关系。绘制散布图使用的是 df.plot.scatter(),如图8.5所示。
df = df_iris df.plot.scatter(x='sepal length (cm)', y='sepal width (cm)') from matplotlib import cm cmap = cm.get_cmap('Spectral') df.plot.scatter(x='sepal length (cm)', y='sepal width (cm)', s=df[['petal length (cm)']]*20, c=df['target'], cmap=cmap, title='different 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(legend=True) df.boxplot(column=['target'],figsize=(10,5))
本节利用两个真实的数据集实际展示数据探索的几种手法。
在美国社区调查(American Community Survey)中,每年约有 350 万个家庭被问到关于他们是谁及他们如何生活的详细问题。调查的内容涵盖了许多主题,包括祖先、教育、工作、交通、互联网使用和居住。
数据来源
数据名称: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],axis=0)
依据学历对数据进行分群,观察不同学历的数量比例,接着计算他们的平均收入。
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 个特征维度。
数据来源
数据名称: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(x='MEDV', y='RM') . 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 与房价关联度偏向白色,为没有关系。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
django聚合函数的用法是什么?很多新手对于django聚合函数不是很了解,因此这篇文章就主要介绍django聚合函数的用法,有这方面学习需求的朋友可以参考。
python的input函数怎样用?input函数是python中比较实用的一个函数,对此,这篇文章就主要给大家分享input函数的使用,具有一定的借鉴价值,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下。
这篇文章主要介绍了聊聊PyTorch中eval和no_grad的关系,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Note: 本解决方案在window10 + anaconda3 +pycharm2020.1.1 + scrapy安装亲测可用
这篇文章介绍了python的单元测试框架pytest,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008