当前位置:首页 >> 编程语言 >> 【Python语言速回顾】——数据可视化基础,摩托xt720(motor python)

【Python语言速回顾】——数据可视化基础,摩托xt720(motor python)

0evadmin 编程语言 1
文件名:【Python语言速回顾】——数据可视化基础,摩托xt720 【Python语言速回顾】——数据可视化基础

目录

引入

一、Matplotlib模块(常用)

1、绘图流程&常用图

​编辑

2、绘制子图&添加标注

​编辑

3、面向对象画图

4、Pylab模块应用

二、Seaborn模块(常用)

1、常用图

2、代码示例

​编辑

​编辑

​编辑

​编辑

三、Artist模块

四、Pandas绘图

1、数据框(dataframe)&系列(series)

2、pandas常用绘图函数


引入

Python中数据可视化有多种实现方式,下面以实战项目需求为导向介绍几种比较流行的数据可视化模块:Pyplot模块、Seaborn模块、Artist模块、Pandas模块。(个人经常用到pyplot和seaborn)

一、Matplotlib模块(常用)

Matplotlib提供了一整套和Matlab类似的命令API,适合交互式制图。可方便地作为绘图控件,嵌入GUI应用程序。文档完备https://matplotlib.org/3.1.1/gallery/index.html各种图打开都有源程序。

1、绘图流程&常用图 ①分别导入Matplotlib.pyplot和numpy②定义横轴标度并以横轴标度为自变量,定义纵轴功能函数③figure()函数指定图像长宽比④plot()函数绘制功能函数⑤plt的属性函数设置图像属性⑥show()函数显示图像

格式:

plt.plot(x,y,其他参数)

其他参数label、color、linewidth、b--(同时指定颜色和线型,点(.)实线(-)虚点线(-.)点线(:)虚线(--)无线条(‘"‘))

常用图类型:

折线图plt.plot演示:

import matplotlib.pyplot as pltimport numpy as npx = np.linspace(0,10,1000)y = np.sin(x)z = np.cos(x**2)plt.figure(figsize=(8,4))plt.plot(x,y,label = "$sin(x)$",color = "red",linewidth = 2) #绘图并指定了线的标签,颜色,粗细plt.plot(x,z,label = "$cos(x^2)$",color = "blue",linewidth = 1)plt.xlabel("Times")plt.ylabel("Volt")plt.title("PyplotTest")plt.ylim(-1.2,1.2) #y轴显示范围plt.legend() #显示图中左下角的提示信息,即提示标签(哪个线是哪个函数) 2、绘制子图&添加标注

Matplotlib中用轴表示一个绘图区域,一个绘图对象(figure)可包含多个轴(axis),可理解为子图。可用subplot函数快速绘制有多个轴的图表(子图):

subplot(numRows,numCols,plotNum)

将绘图区域分为numRows x numCols个子区域,从左到右从上到下依次编号,从编号1开始。三个参数都小于10时可省略之间逗号

标注即为图的注释: ①text()函数可将文本放置在轴域的任意位置,用来标注绘图的某些特征 ②annotate()方法提供辅助函数进行定位,使标注变得准确方便 文本位置及标注点位置均由元组(x,y)描述,参数x,y表示标注点位置,参数xytext表示文本位置

③...

#子图绘制演示(接着上面示例的构建的函数)fig = plt.figure(figsize=(8,4))ax = fig.add_subplot(211) #创建Axes对象plt.subplot(2,1,1) #两行一列个子区域,编号1位置plt.plot(x,y,label = "$sin(x)$",color = "red",linewidth = 2)plt.ylabel("y-Volt")plt.legend()plt.subplot(2,1,2) #两行一列个子区域,编号2位置plt.plot(x,z,label = "$cos(x^2)$",color = "blue",linewidth = 1)plt.ylabel("z-Volt")plt.xlabel("Times")ax.annotate("sin(x)",xy=(2,1),xytext=(3,1.5),arrowprops = dict(facecolor='black',shrink = 0.05)) #添加文字和黑色箭头(Artist模块的简单类型Artist)ax.set_ylim(-2,2)plt.show() 3、面向对象画图

4、Pylab模块应用

也是matplotlib里面的一个模块,提供可绘制二维、三维数据的工具模块,包含numpy和pyplot模块中的常见函数,方便快速计算和绘图。

二、Seaborn模块(常用)

它基于matplotlib,但提供了更高级的统计图形方法!

1、常用图

2、代码示例

下面选取逻辑回归算法(一种分类算法,titannic数据集)中特征工程(数据预处理)中的一段代码演示:

import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seabornimport sklearnfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn import preprocessingtitanic_data = pd.read_csv("titanic_data.csv") #泰坦尼克号幸存或遇难者信息titanic_data = titanic_data[['Survived', 'Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Embarked', 'Fare']] #选取需要的8列#1.特征工程titanic_data['Age'].fillna((titanic_data['Age'].mean()), inplace=True) #Age有177个空值,这里用平均值替代titanic_data.dropna(inplace=True) #Embarked只有2个空值,可放弃这两个值titanic_data_X = titanic_data[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Embarked', 'Fare']]titanic_data_Y = titanic_data[['Survived']] #分离自变量X和因变量Y(最后的分类结果为2个1或0,是否存活)X_train, X_test, Y_train, Y_test = train_test_split(titanic_data_X, titanic_data_Y,test_size=0.20) #将数据分成训练集和测试集 seaborn.countplot(x='Pclass', data = X_train) #检查Pclass(舱位等级)柱状图plt.show() seaborn.displot(X_train['Age']) #检查Age分布图(柱状图+核密度估计)plt.show() seaborn.displot(X_train['Fare']) #检查Fare(票价)分布图(柱状图+核密度估计)plt.show() age_scaler = StandardScaler() #创建Z-Score标准化对象,对Age进行分类特征标准化age_scaler.fit(pd.DataFrame(X_train['Age']))X_train.loc[:, 'Age'] = age_scaler.transform(X_train[['Age']]) #双[]fare_scaler = StandardScaler() #创建Z-Score标准化对象,对Fare(票价)进行分类特征标准化fare_scaler.fit(pd.DataFrame(X_train['Fare']))X_train.loc[:, 'Fare'] = fare_scaler.transform(X_train[['Fare']]) #双[]X_train.loc[:, 'Sex'] = X_train['Sex'].map({'female': 0, 'male': 1}) #将Sex映射为0,1embarked_encoder = preprocessing.LabelEncoder() #创建编码对象,对Embarked(登船口3个)编码embarked_encoder.fit(pd.DataFrame(X_train['Embarked']))X_train.loc[:, 'Embarked'] = embarked_encoder.transform(X_train[['Embarked']])#截至此,将所有数据的格式转换完成,用heatmap检查下特征之间的关联性seaborn.heatmap(X_train.corr())plt.show() 三、Artist模块

Matplotlib绘图库的API包含3个图层——画板、渲染、artist.Artist(如何渲染)。相比Pyplot和Pylab两个API,Artist用于处理所有的高级结构,如处理图表、文字、曲线等的绘制和布局,不需要关注底层的绘制细节。 Artist分简单类型、容器类型两种。简单类型的Artist为标准的绘图元件,如Line2D、Rectangle、Text、AxesTmage等;容器类型可以包含许多简单类型的Artist组成一个整体,如Axis、Axes、Figure等。

步骤:

①创建Figure对象②用Figure对象创建一个或多个Axes或者Subplot对象③调用Axes等对象的方法创建各种简单类型的Artist

Matplotlib所绘制的图表中的每一个元素都由Artist控制,而每一个Artist对象包含很多属性来控制显示效果,常见属性:

alpha透明值,0完全透明,1完全不透明animate布尔值,绘制动画效果是使用axes此Artist对象所在的Axes对象,可能为Nonefigure此Artist对象所在的Figure对象,可能为Nonelabel文本标签picker控制Artist对象选取zorder控制绘图顺序

所有属性都可通过相应的get_*和set_*函数读写,如将alpha设置为当前值的一半:

fig.set_alpha(0.5*fig.get_alpha())

若一句代码设置多个属性:

fig.set(alpha = 0.5,zorder = 2,label = '$sin(x)$') 四、Pandas绘图

pandas是python最强大的数据分析和探索工具,包含高级的数据结构和精巧的工具。它构建在numpy之上,使得以numpy为中心的应用更便捷;支持类似于SQL的数据操作,具有丰富的数据处理函数;它的作图依赖于matplotlib,通常两者一起使用。

1、数据框(dataframe)&系列(series)

pandas带两个重要数据结构:数据框(dataframe)、系列(series)①数据框

二维表,行列都有索引,面向行列的操作对称。创建数据框的方法很多,常用包含相等长度列表的字典或Numpy数组来创建数据库,行索引默认由0开始,列索引用户自定义(也可自定义行索引,列索引要与字典对应不然数据为空)

import pandas as pddata = {'name':['小明','小红','小刚','小强','大壮'],'age':[15,16,14,18,20],'score':[88,99,65,95,67]}dataframe1 = pd.DataFrame(data)dataframe2 = pd.DataFrame(data,columns=['name','age','score'],index=['one','two','three','four','five'])print(dataframe1)print(dataframe2)运行结果:name  age  score0   小明   15     881   小红   16     992   小刚   14     653   小强   18     954   大壮   20     67name  age  scoreone     小明   15     88two     小红   16     99three   小刚   14     65four    小强   18     95five    大壮   20     67

②系列

对具有同一属性的值的统称,可理解为一维数组(退化了的数据框)

print(dataframe2['name'])运行结果:one      小明two      小红three    小刚four     小强five     大壮Name: name, dtype: object 2、pandas常用绘图函数 plot():绘制线性二维图(matplotlib/pandas库都有)pie():绘制饼形图(matplotlib/pandas、库都有)hist():绘制二维条形直方图(matplotlib/pandas库都有)boxplot():绘制样本数据箱体图(pandas库)plot(logy = True):绘制y轴的对数图(pandas库)plot(yerr = error):绘制误差条形图(pandas库)

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接