一、实验目的

  1. 使用R软件对车辆重量与油耗之间关系的数据集mtcars,说明数据进行可视化的操作。
  2. 使用Python pandas程序包的函数pd.read_csv(),进行数据导入操作。
  3. 使用Python matplotlib.pyplot程序包的函数plot(),进行数据可视化操作。
  4. 数据可视化的进阶操作:合倂使用Python sklearn.linear_model 程序包的函数LinearRegression()进行绘图操作。
  5. 列出实验结果包含绘图或截图以及完整代码包含注解。

    二、实验内容

    说明 1: 举一个R软件对车辆重量与油耗之间关系的数据集mtcars进行可视化说明,共有32个车型,即32笔纪录,字段有mpg(油耗)、cyl(汽缸数)、disp、hp、drat、wt(质量)、qsec、vs、am、gear和 carb,内容如下:
    image.png
    说明 4: 使用R函数attach()将原始数据集mtcars,导入R工作空间。
    说明 5: 使用R函数write.table()将数据集mtcars 导出至工作目录。
    说明 6: 使用Python pandas程序包的函数pd.read_csv(),进行数据导入操作。
    说明 7: 使用Python matplotlib.pyplot程序包的函数plot(),进行数据可视化操作。
    说明 8: 使用Python sklearn.linear_model 程序包的函数LinearRegression()进行进阶的数据可视化操作,合倂绘图 操作。
    说明 9: 列出实验结果包含绘图以及完整代码包含注解。

扩展:(选做)
扩展说明 1: 增加变量cyl(汽缸数),将数据集mtcars依据汽缸数分三个子类,再依据说明6到9做一遍。参考Python代码如下:
carsdata1=carsdata[carsdata[‘cyl’]==4]
carsdata2=carsdata[carsdata[‘cyl’]==6]
carsdata3=carsdata[carsdata[‘cyl’]==8]

三、实验报告

1. 实验环境:

Win10

2. 实验内容与完成情况:

1)实验参考代码

参考R代码导出数据集mtcars如下:
attach(mtcars)
write.table(mtcars, “mtcars.txt”, quote=F, row.names=T)

参考Python代码
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
data_url = (“Add your working path/mtcars.txt”)
carsdata = pd.read_csv(data_url,delimiter=’ ‘)
print(carsdata.head(n=10))
print(carsdata.tail(n=10))
summary = carsdata.describe()
print(summary)
model = LinearRegression(fit_intercept=True)
x=carsdata[‘wt’]
y=carsdata[‘mpg’]
model.fit(x[:, np.newaxis], y)
xfit = np.linspace(1, 6, 32)
yfit = model.predict(xfit[:, np.newaxis])
plt.plot(x,y,”go”)
plt.plot(xfit,yfit,”r—“)
plt.title(‘The relationship between car weight and fuel consumption’)
plt.xlabel(‘wt’)
plt.ylabel(‘mpg’)
plt.savefig(‘mtcars.plot.png’)
plt.savefig(‘mtcars.plot.pdf’)
plt.show()

2)原始数据集的导出

使用函数attach()将原始数据集mtcars导出至R工作目录,并使用write.table()函数将数据集mtcars导入R工作目录下,完整代码及注释:
image.png
运行后R工作台显示数据集mtcars(截图部分数据):
image.png
转至R工作目录下,查看数据集mtcars是否成功导出:
image.png

3)实验完整代码及注释

python数据可视化完整代码及注释
image.png

4)原始数据集的导入

使用Python pandas程序包的函数pd.read_csv(),进行数据导入操作。源程序如下所示:
image.png
打印出前十列和后十列的数据集:
image.png

5)数据特征

查看数据特征(包含每一项数据最大值,最小值和均值等),源代码展示:
image.png
成功运行,显示数据特征:
image.png

6)数据可视化

使用Python matplotlib.pyplot程序包的函数plot(),进行数据可视化操作。源代码展示:
image.png
运行结果即对选取的数据集制作散点图,顺利运行如下所示:
image.png

7)数据可视化(进阶)

使用Python sklearn.linear_model 程序包的函数LinearRegression()进行进阶的数据可视化操作,并且与散点图进行合并。源代码展示:
image.png
绘制拟合曲线的同时与散点图进行合并,运行结果如下所示:
image.png

8)图片保存(.png和.pdf格式)

将所绘制的图片保存至工作目录下,分别保存为.png和.pdf格式。源代码展示:
image.png
保存成功如下所示:
image.png

拓展

以汽车的不同汽缸数进行分类,分为四缸,六缸和八钢。对不同缸数进行回归,并以不同的颜色呈现在同一个图框里。

1)数据集划分

数据读取等和上述实验相同,不同的在于绘制图形时数据的选取和划分部分,第一步需要划分新的数据集,主要代码展示及注释如下所示:
image.png
划分数据集结果显示(部分):
image.png

2)线性拟合

每一部分数据集进行线性拟合
image.png

3)图形注释

将三部分的数据集拟合在一个图中,用不同的颜色表示,并且设置图形注释:
image.png
进阶版线性拟合展示:
image.png

4)图片保存(.png和.pdf格式)

将进阶版拟合图保存起来,同样保存两种格式(.png和.pdf):
image.png
返回工作目录查看保存结果:
image.png

3. 出现的问题

1)在选取x轴和y轴数据时出现错误

4. 解决方案

1)检查语法,查看pandas文档,发现都没问题。最终发现是数据集出现错误,导入excel表格整理一下数据,程序顺利通过。