目录
Python数据分析的特点
1.易于学习和使用
Python语言的语法简单易懂,相对于其他编程语言而言,容易上手和掌握。此外,Python拥有丰富的第三方库,如Numpy、Pandas、Matplotlib等,这些工具都是专门为数据分析而设计的,能够大大提升代码的编写效率和数据分析速度。
2.数据处理能力强
在数据分析过程中,首要的工作就是对数据进行清洗和处理。Python拥有方便、简单、高效的数据处理工具,包括但不限于Numpy和Pandas。Numpy提供了处理大量数值数据的高性能矩阵运算工具,而Pandas则更适用于处理表格数据,提供了数据读取、清洗、操作和可视化等功能,为数据分析带来了非常大的方便。
3.数据可视化能力强
数据可视化是数据分析过程中不可缺少的环节,而Python也提供了多种实用的数据可视化工具,如Matplotlib、Seaborn、Plotly等。这些工具都可以非常方便地绘制各种图表和可视化元素,帮助数据分析人员更好地理解数据,进而做出更优秀的数据分析和决策。
一丶可视化绘图案例
Matplotlib将数据绘制在Figure(图形)对象上,每个Figure对象可以包含一个或多个Axes(坐标轴),多个Axes会将Figure切分成多个区域展示不同的Subplots(子图)。每个坐标轴都可以设置标题,x轴标签,y轴标签等属性。
pyplot是Matplotlib的关键模块,提供了很多构建图表的函数接口,pyplot提供的绘图方式类似于Matlab,主要适用于交互式绘制图形。
1.曲线图
这是一个基于Matplotlib库的绘制曲线图的代码。代码中首先通过numpy库生成一个从0到1,步长为0.01的等差数列,并将其赋值给变量data。接着,使用plt库中的函数进行图像的设置。plt.title函数用于添加图表总标题,plt.xlabel和plt.ylabel函数用于添加x轴和y轴的标签,plt.xlim和plt.ylim函数用于设定x轴和y轴的范围,plt.xticks和plt.yticks函数则用于设置刻度。可以看到,这些函数都相当于为图表添加了各种元素,增强了数据可视化的性质。
代码中使用plt.plot函数分别绘制了y=x^2和y=x^4的曲线,并通过plt.legend函数添加了图例。最后,调用plt.savefig函数保存图片到指定位置,使用plt.show函数输出图形。通过曲线图,可以直观地看到这两个函数在区间[0,1]内的图像,有助于数据分析人员进行快速判断和决策。
import numpy as np
import matplotlib.pyplot as plt
# %matplotlib inline表示在行中显示图片
data = np.arange(0, 1.1, 0.01)
plt.title('lines')#添加标题
plt.xlabel('x')#添加×轴的标签
plt.ylabel('y')#添加y轴的标签
plt.xlim((0, 1))#确定×轴范围
plt.ylim((0, 1))#确定y轴范围
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1])#规正X拙反
plt.yticks([0, 0.2, 0.4 ,0.6, 0.8, 1])#确定y轴刻度
plt.plot(data, data ** 2)#添加y=x^2曲线
plt.plot(data, data**4)#添加y=x^4曲线
plt.legend(['y=x^2','y=x^4'])#添加图例
plt.savefig('E:/Python数据分析/y=x^2.jpg')
plt.show()
2.柱形图
这是一个基于Matplotlib库的绘制柱形图的代码。数据结构类似于Excel表格,通过data[‘arr_0’]和data[‘arr_1’]来分别提取数据的标签和存在位。接下来,代码使用plt.bar函数绘制柱形图。其中,range(2)用于生成一组长度为2的数字序列,作为横坐标,labels数组则是保存了城镇和乡村就业人员分类的名称。通过values[-1, 3:5]选取了最后一行(即2019年)中的城镇就业人数和乡村就业人数,并将其作为柱形图的高度。plt.xticks函数将横坐标数字序列替换为了对应的文本名称信息,plt.xlabel和plt.ylabel函数则用于添加横坐标和纵坐标的标签。最后使用plt.title函数添加图表总标题,并通过plt.show函数输出图形。通过比较两组数据的柱高,可以更加清晰地了解城乡就业人数的分布和状况,帮助数据分析人员做出更合理的决策。
columns = data['arr_0']#提取其中的columns数组,视为数据的标签
values = data['arr_1']#提取其中的values数组,视为数据的存在位童
#绘制柱形图
labels = (['城镇就业人员','乡村就业人员']) #设置图例
p = plt.figure(figsize=(6, 6),dpi=1080)#设置画布
plt.bar (range(2), values[-1, 3:5], width=0.5)
plt.xlabel('类别')
plt.ylabel('人数(万人)')
plt.xticks (range(2), labels)
plt.title('2019年城乡就业人数柱形图')
plt.show()
3.点线图
代码中的plt.figure函数用于设定画布的大小和分辨率,plt.plot函数则用于绘制点线图。其中,values[:, 0]代表数据中的年份,values[:, 3]代表城镇就业人员数量,values[:, 4]代表乡村就业人员数量。通过设置颜色和样式,最终得到了一张直观的城乡就业人数时间走势图。值得注意的是,plt.xticks函数用于设定x轴坐标刻度,通过range函数设定每年的坐标点。同时,通过plt.ylim函数设置y轴显示的范围,确保数据能够在坐标系内完整显示并突显其差异性。
p = plt.figure(figsize=(12, 6),dpi=1080)#设置画布
plt.plot(values[:, 0],values[:, 3], 'bs-',
values[:, 0],values[:, 4], 'ro-.')
plt.xlabel('年份(年)')
plt.ylabel('人数(万人)')
plt.ylim (20000, 60000)#设置y轴范围
plt.xticks (range(2001, 2020, 1))
plt.legend(['城镇就业人员','乡村就业人员']) #设置图例
plt.title('2001年-2019年城乡就业人数点线图')
plt.show()
4.3D散点图
这段代码是用于绘制最大携氧量、体重和运动后心率之间的3D散点图。下面是对代码的解释:
1. `import pandas as pd`:导入Pandas库,用于数据处理和读取Excel文件。
2. `import numpy as np`:导入NumPy库,用于数据转换和处理。
3. `from pyecharts import options as opts`:从pyecharts库中导入options模块,用于设置图表选项。
4. `from pyecharts.charts import Scatter3D`:从pyecharts库中导入Scatter3D模块,用于创建3D散点图。
接下来的代码块是对数据的处理和绘图过程:
1. `player_data = pd.read_excel(r'./运动员的最大携氧能力、体重和运动后心率数据.xlsx')`:使用`pd.read_excel()`函数读取Excel文件中的数据,并将数据存储在`player_data`变量中。
2. `player_data = [player_data['体重(kg)'],player_data['运动后心率(次/分钟)'],player_data['最大携氧能力(ml/min)']]`:从`player_data`中提取出体重、运动后心率和最大携氧能力的列数据,并将它们存储在一个列表中。
3. `player_data = np.array(player_data).T.tolist()`:使用NumPy将列表转换为NumPy数组,并通过`.T`转置操作将行和列交换,最后再将数组转换回列表形式。
4. `(Scatter3D().add('',player_data,xaxis3d_opts=opts.Axis3DOpts(name='体重(kg)'), ...))`:创建一个Scatter3D对象,并使用`.add()`方法将数据添加到图表中。通过`xaxis3d_opts`、`yaxis3d_opts`和`zaxis3d_opts`