人工智能开发实战matplotlib库应用基础
内容导读
- matplotlib简介
- 绘制直方图
- 绘制撒点图
一、matplotlib简介
matplotlib是一个Python 2D绘图库,它以多种硬拷贝格式和跨平台的交互式环境生成高质量的图形。
matplotlib 尝试使容易的事情变得更容易,使困难的事情变得可能。
我们只需几行代码就可以生成图表、直方图、功率谱、条形图、误差图、散点图等,为大数据的可视化和人工智能的图形化分析提供了大量绘图函数。
二、绘制直方图
Python的第三方库matplotlib提供了丰富的绘图功能,在正式绘图之前,需要在cmd命令窗口中执行如下命令:
pip3 install matplotlib
安装完matplotlib后,就可以在notebook中来使用它强大的绘图功能进行数据的可视化操作。
在数据的可视化过程中,要根据具体的数据可视化分析要求,选用不同的绘图函数来分析数据特征间的关系、查看变量的变化趋势、了解数据的整体分布情况等,去真正读懂数据,为数据深度分析和数据决策提供图形化的信息。
下面,就以绘制直方图为例,来进一步了解此类图形能为我们带来哪些数据解读信息。
案例:用直方图描述2017年到2018年间各季度第一产业的生产总值情况。
1、案例描述
第一产业的生产总值保存在GDP.csv文件中,用matplotlib绘制第一产业生产总值的直方图,并进行对比分析。
2、案例分析
首先利用numpy库将文件数据读入到二维数组中,作为绘图函数的数据源来使用,然后用matplotlib的直方图绘图函数bar()将数组中“第一产业”列的数据以柱状图进行展现。
3、案例实现
# 实现代码
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'# 将全局的字体设置为黑体
GDP_data=np.loadtxt("./data/GDP.csv",delimiter=",",skiprows=1)
quarter=GDP_data[0:8,0].astype(int)
plt.bar(height=GDP_data[0:8,1],x=range(len(GDP_data[0:8,1])),
label='第一产业GDP',tick_label=quarter)
plt.legend()
plt.show()
代码行3将全局的字体设置为黑体,代码行5将数组值转换成整数,代码行6绘制柱状图,其高度用参数height来指定,即二维数组中第1列的值。
柱状图x坐标用第1产业的数据个数来表示,参数lable是图例标签,参数tick_label是x轴标签。代码行7显示图例,代码行8是显示图形。
程序的运行结果如下图所示:
由上图可以直观看出,在前8个季度中,2018年第4季度的GDP最大,最小值在2017年的第1季度,最大值将近是最小值的3倍多。
另外,每年4个季度的GDP都趋于不断增长的势头,且不同年份对应的各季度的GDP也同样呈现出上升的趋势。
由此可见,通过图形的方式对数据进行可视化,能直观解读数据内隐含的变化趋势,为数据统计和分析提供了一种便捷手段。
三、绘制撒点图
散点图是利用一系列的散点将两个变量的联合分布描绘出来,让我们从图形分布中推断一些信息,如两变量间是否存在某种有意义的关系。
散点图是统计分析中常用的一种手段,特别是在分类统计图形中,它可以算得上是中流砥柱,当数据以恰当的方式在图形中展示出来时,我们就可以非常直观地观察到某些趋势或者模式,也就揭示了变量之间的关系。
1、seaborn是在matplotlib基础上面的封装,方便直接传参数调用
让我们能做出更加吸引人注意的图表,并有助于更好分析数据。
2、使用pip3 install seaborn命令安装完seaborn库后才能使用其绘图功能
用散点图分析鸢尾花的花瓣的宽度和长度之间的相关性。
(1)引例描述
鸢尾花有关花瓣和花蕊的数据保存在iris.csv文件中,我们试图从花瓣的宽度和长度的视角去探索鸢尾花的品种类别是否与花瓣有关。
(2)引例分析
首先利用Pandas库将文件数据读入到数据框中,然后利用seaborn的关系图函数relplot绘制散点图。为便于观察,利用数据框中的种类列Species来区分颜色和散点样式。
(3)引例实现
# 实现代码如下所示。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
iris=pd.read_csv("./data/iris.csv")
sns.set(style="whitegrid",font="simhei",font_scale=0.9)
sns.relplot(x="Petal.Length", y="Petal.Width", hue="Species", palette=["r","b","g"],
style="Species", data=iris);
plt.show()
代码中的pandas库是人工智能学习中处理数据的高效工具,pandas 是基于NumPy来创建的,它纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
以上代码中,relplot函数的参数hue和style分别表示使用不同的颜色和样式区分Species维的数据,以便观察不同品种鸢尾花在花瓣维度的分布情况。
更多内容请持续关注本站!