数据处理及可视化——了解绘图基础语法与常用参数,掌握Matplotlib和Pandas库(项目3/3)

项目三

目录

【项目三描述】

1、项目功能基本要求

2、数据示例

项目三知识点

【项目三实现】

1、创建准备好的文件

2、查看文件的键

3、查看详细数据

4、获取需要的值

5、绘制散点图

6、代码

项目三总结


【项目三描述】

1、项目功能基本要求

(1)了解绘图基础语法与常用参数;

1、绘图是计算机图形学的重要应用之一,而常用的绘图基础语法主要用于二维图形绘制。下面是常用的绘图基础语法和参数:

绘图基础语法:

设置绘图区域:plt.figure()

绘制直线:plt.plot()

绘制散点图:plt.scatter()

绘制柱状图:plt.bar()

添加文本标注:plt.text()

添加标题:plt.title()

添加坐标轴标签:plt.xlabel()和plt.ylabel()

显示图形:plt.show()

2. 常用参数:

线条样式:linestyle=线条样式参数,如-、--、:等

线条粗细:linewidth=线条粗细参数

颜色设置:color=颜色参数,如red、blue、green等

标记点样式:marker=标记点样式参数,如o、*、^等

标记点大小:s=标记点大小参数

图例位置:loc=图例位置参数,如‘upper right’、‘lower left’等

柱状图颜色:color=颜色参数,如red、blue、green等

柱状图宽度:width=柱状图宽度参数

柱状图边框:edgecolor=边框颜色参数,如black、grey等

添加颜色映射:cmap=颜色映射参数,如‘Blues’、‘YlOrRd’等

绘图基础语法和常用参数,可以帮助我们快速地绘制出二维图形,让图像更加美观,易于展示和分析。同时,在使用过程中,还需要结合实际需求,不断尝试不同的参数组合,以达到更好的绘图效果。

(2)分析特征间的关系;

在Python中,我们可以使用多种库和工具来分析特征间的关系。下面是常见的一些,

Pandas

Pandas是一个强大的数据分析库,其中包括DataFrame和Series数据结构,以便于我们处理数据和可视化数据。我们可以使用Pandas来计算两个特征之间的相关系数、通过散点图和矩阵散点图来可视化分析特征之间的关系。

例如,我们可以使用以下代码计算数据集df中两个特征Sales和Profit之间的皮尔逊相关系数,并使用散点图和矩阵散点图可视化这两个特征之间的关系:

import pandas as pd

import matplotlib.pyplot as plt

# load dataset

df = pd.read_csv('data.csv')

# calculate pearson correlation coefficient

correlation = df['Sales'].corr(df['Profit'], method='pearson')

print('Pearson correlation coefficient:', correlation)

# plot scatter plot

plt.scatter(df['Sales'], df['Profit'])

plt.xlabel('Sales')

plt.ylabel('Profit')

plt.show()

# plot matrix scatter plot

pd.plotting.scatter_matrix(df[['Sales', 'Profit']])

plt.show()

Seaborn

Seaborn是一个流行的可视化库,提供了多种高级的绘图函数和美观的图形风格。我们可以使用Seaborn绘制热力图,快速查看数据集中多个特征之间的相关性。

例如,我们可以使用以下代码绘制数据集df中多个特征之间的热力图:

import seaborn as sns

# load dataset

df = sns.load_dataset('tips')

# plot correlation heatmap

sns.heatmap(df.corr(), annot=True, cmap='YlGnBu')

plt.show()

Scikit-learn

Scikit-learn是一个广泛使用的机器学习库,提供了多种特征选择和降维方法。我们可以使用Scikit-learn来选择最相关的特征集,以提高模型的预测性能。其中,SelectKBest和PCA是常用的特征选择和降维方法。

例如,我们可以使用以下代码选择数据集X中最相关的两个特征:

from sklearn.feature_selection import SelectKBest, f_regression

# load dataset

X, y = load_dataset()

# select top two features

selector = SelectKBest(score_func=f_regression, k=2)

X_new = selector.fit_transform(X, y)

print(X_new.shape)

总之,在Python中分析特征间的关系可以使用多种工具和库,选择合适的工具组合可以帮助我们更快地理解和分析数据,以优化模型的预测性能。

(3)分析特征内部数据分布与分散状况;

(4)根据老师提供的“国民经济核算季度数据.npz”,用散点图来展示数据中的两个属性:时间(横坐标)、国内生产总值_当季值(亿元)(纵坐标)。

(5)程序代码存为“学号姓名c.py”,这两列数据结果存为“学号姓名c.xls”;

(6)每个步骤需要运行结果截图,截图中需要加上水印,水印为自己的学号姓名。

2、数据示例

图2  数据示例

图3  散点图示例

项目三知识点

这段代码利用NumPy、Matplotlib和Pandas库进行了以下操作:

1. NumPy库的使用:

使用np.load()函数读取NPZ文件,将文件中的数据加载到一个NumPy数组中。使用索引获取数组中的特定数据。

2. Matplotlib库的使用:

          使用plt.rcParams['font.sans-serif']设置图表的字体为黑体。

          使用plt.scatter()创建散点图,传入时间和不同产业的生产总值数据。

          使用plt.xlabel()和plt.ylabel()设置坐标轴的标签。

          使用plt.title()设置图表的标题。

          使用plt.xticks()设置x轴刻度的旋转角度和字体大小。

          使用plt.legend()添加图例。

          使用plt.savefig()保存散点图为图片文件。

          使用plt.show()显示散点图。

3. Pandas库的使用:

使用pd.DataFrame()创建DataFrame对象,将时间和产业生产总值数据组合为一个数据表格。

使用df.to_excel()将DataFrame保存为Excel文件。

4. 主要操作:

读取NPZ文件,获取其中的时间和产业生产总值数据。

创建散点图,以时间为x轴,不同产业的生产总值为y轴,绘制三个产业的散点图,并添加标题、坐标轴标签和图例。

保存散点图为图片文件。

创建DataFrame对象,并将时间和产业生产总值数据组合为数据表格。

将DataFrame保存为Excel文件。

这段代码涵盖了读取和处理NPZ文件、绘制散点图、保存图表和数据为文件等方面的知识点。它展示了如何使用NumPy读取和处理数据,Matplotlib绘制散点图,并使用Pandas处理和保存数据。

【项目三实现】

1、创建准备好的文件

准备好的国民经济核算季度数据.npz添加到文件里面,然后单击右键选择新建python文件2022231538陈鹏c.py。如图3.1

图3.1

2、查看文件的键

读取NPZ文件data = np.load('国民经济核算季度数据.npz', )

图3.2

3、查看详细数据

输出print(data['columns'])和print(data['values'])查看详细数据

图3.3

4、获取需要的值

获取时间和第一到第三产业生成总值当季值数据

图3.4

5、绘制散点图

创建散点图,添加图例左上角小图,保存散点图,创建DataFrame并保存为Excel文件命名为2022231538陈鹏c.xlsx',显示散点图

图3.5

图3.6

6、代码

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# 读取NPZ文件
data = np.load('国民经济核算季度数据.npz', allow_pickle=True)

# 获取时间和第一到第三产业生成总值当季值数据
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置为黑体字体
time = data['values'][:, 1]
gdp1 = data['values'][:, 3].astype(float)
gdp2 = data['values'][:, 4].astype(float)
gdp3 = data['values'][:, 5].astype(float)

# 创建散点图
plt.scatter(time, gdp1, label='第一产业生产总值')
plt.scatter(time, gdp2, label='第二产业生产总值')
plt.scatter(time, gdp3, label='第三产业生产总值')
plt.xlabel('时间')
plt.ylabel('生产总值(亿元)')
plt.title('2000-2017年各产业生产总值散点图')
plt.xticks(rotation=45, fontsize=4)

# 添加图例 左上角小图
plt.legend(loc='upper left')

# 保存散点图
plt.savefig('2022231538陈鹏c.png')

# 创建DataFrame并保存为Excel文件
df = pd.DataFrame({'时间': time, '第一产业生产总值': gdp1, '第二产业生产总值': gdp2, '第三产业生产总值': gdp3})
df.to_excel('2022231538陈鹏c.xlsx', index=False)

# 显示散点图
plt.show()

项目三总结

问题:

1.NPZ文件是什么?它包含了什么样的数据?

2.代码中的`allow_pickle=True`参数的作用是什么?

3.为什么在绘制散点图之前要设置Matplotlib的字体为黑体字体?

4.代码中使用`plt.scatter()`绘制了散点图,是否还有其他绘图函数可供选择?

5.为什么需要设置x轴刻度的旋转角度和字体大小?

6.图表中的图例是什么?为什么要添加图例?

7.DataFrame是什么?为什么要将数据保存为DataFrame对象?

8.代码中使用的`df.to_excel()`函数可以将DataFrame保存为Excel文件,是否还有其他保存数据的方式可供选择?

感受:

1.该代码使用了NumPy、Matplotlib和Pandas库进行数据处理、可视化和保存。

2.使用NumPy的`np.load()`函数读取了一个NPZ文件,并将数据加载到NumPy数组中。

3.使用Matplotlib绘制了散点图,展示了不同产业的生产总值随时间变化的趋势。

4.使用Pandas创建了一个DataFrame对象,将时间和产业生产总值数据组合成一个数据表格。

5.最后,将散点图保存为图片文件,并将DataFrame保存为Excel文件。

问题情况请看如下图片

图3.7

图3.8

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值