Python数据可视化绘图实例详解

 更新时间:2022年05月07日 10:47:19   作者:菜J学Python  
数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质, 以及数据间或属性间的关系。本文为大家分享了几个Python数据可视化绘图的实例,感兴趣的可以了解一下

利用可视化探索图表

1.数据可视化与探索图

数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质, 以及数据间或属性间的关系,可以轻易地让人看图释义。用户通过探索图(Exploratory Graph)可以了解数据的特性、寻找数据的趋势、降低数据的理解门槛。

2.常见的图表实例

本章主要采用 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))

图片

数据探索实战分享

本节利用两个真实的数据集实际展示数据探索的几种手法。

1.2013年美国社区调查

在美国社区调查(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())

2.波士顿房屋数据集

波士顿房屋数据集(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 与房价关联度偏向白色,为没有关系。

以上就是Python数据可视化绘图实例详解的详细内容,更多关于Python数据可视化的资料请关注脚本之家其它相关文章!

相关文章

  • python微元法计算函数曲线长度的方法

    python微元法计算函数曲线长度的方法

    今天小编就为大家分享一篇python微元法计算函数曲线长度的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python实现将MySQL数据库查询结果导出到Excel

    Python实现将MySQL数据库查询结果导出到Excel

    在实际工作中,我们经常需要将数据库中的数据导出到Excel表格中进行进一步的分析和处理,Python中的pymysql和xlsxwriter库提供了很好的解决方案,下面我们就来看看具体操作方法吧
    2023-11-11
  • python实现水印生成器

    python实现水印生成器

    这篇文章主要为大家详细介绍了python实现水印生成器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 查看python下OpenCV版本的方法

    查看python下OpenCV版本的方法

    今天小编就为大家分享一篇查看python下OpenCV版本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 一篇超级全面的Python功能图谱(推荐)

    一篇超级全面的Python功能图谱(推荐)

    Python作为一种广受欢迎的高级编程语言,不仅在基本语法上易于学习,还拥有强大的标准库和活跃的开发社区,本文详细介绍了Python从基础语法到高级应用的全面功能,并通过实际案例和代码示例展示了其在科学计算、Web开发、机器学习等多个领域的应用,需要的朋友可以参考下
    2024-09-09
  • 解读NumPy数组与Python列表的比较

    解读NumPy数组与Python列表的比较

    在Python中处理数值数据时,可以选择使用Python列表或NumPy数组,Python列表灵活,可存储不同类型元素,但在大数据处理上可能较慢,NumPy数组固定类型,内存连续存储,执行数组操作如加法、乘法等更高效,尤其在大数据集处理上具有明显的性能和内存使用优势
    2024-10-10
  • 一文详解NumPy数组迭代与合并

    一文详解NumPy数组迭代与合并

    NumPy 数组迭代是访问和处理数组元素的重要方法,它允许您逐个或成组地遍历数组元素,NumPy 提供了多种函数来合并数组,用于将多个数组的内容连接成一个新数组,本文给大家详细介绍了NumPy数组迭代与合并,需要的朋友可以参考下
    2024-05-05
  • Python socket模块ftp传输文件过程解析

    Python socket模块ftp传输文件过程解析

    这篇文章主要介绍了Python socket模块ftp传输文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Pytorch结合PyG实现MLP过程详解

    Pytorch结合PyG实现MLP过程详解

    这篇文章主要为大家介绍了Pytorch结合PyG实现MLP过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 使用PDB模式调试Python程序介绍

    使用PDB模式调试Python程序介绍

    这篇文章主要介绍了使用PDB模式调试Python程序介绍,本文讲解了PDB模式的使用语法,着重讲解PDB模式下的常用命令,需要的朋友可以参考下
    2015-04-04

最新评论