实验4 Matplotlib数据可视化

1. 实验目的

①掌握Matplotlib绘图基础;
②运用Matplotlib,实现数据集的可视化;
③运用Pandas访问csv数据集。

2. 实验内容

①绘制散点图、直方图和折线图,对数据进行可视化;
②下载波士顿数房价据集,并绘制数据集中各个属性与房价之间的散点图,实现数据集可视化;
③使用Pandas访问鸢尾花数据集,对数据进行设置列标题、读取数据、显示统计信息、转化为Numpy数组等操作;并使用Matpoltlib对数据集进行可视化。

3. 实验过程

题目一:
这是一个商品房销售记录表,请根据表中的数据,按下列要求绘制散点图。其中横坐标为商品房面积,纵坐标为商品房价格。
在这里插入图片描述
要求:
(1)绘制散点图,数据点为红色圆点;
(2)标题为:“商品房销售记录”,字体颜色为蓝色,大小为16;
(3)横坐标标签为:“面积(平方米)”,纵坐标标签为“价格(万元)”,字体大小为14。

源代码

import numpy as np
import matplotlib.pyplot as plt

#设置rc参数
plt.rcParams["font.family"] = "SimHei"#设置默认字体为中文黑体
plt.rcParams['axes.unicode_minus'] = False #坐标轴上负号的显示可能会出错
area = np.array([137.97,104.50,100.00,124.32,79.20,99.00,124.00,114.00,106.69,138.05,53.75,46.91,68.00,63.02,81.26,86.21])
price = np.array([145.00,110.00,93.00,116.00,65.32,104.00,118.00,91.00,62.00,133.00,51.00,45.00,78.50,69.65,75.69,95.30])

plt.scatter(area,price,color = 'red')
plt.title("商品房销售记录",fontsize = "16",color = "blue")
plt.xlabel("面积(平方米)",fontsize = '14')
plt.ylabel("价格(万元)",fontsize = '14')

plt.show()

在这里插入图片描述
题目二:
按下列要求完成程序。
(1)下载波士顿数据集,读取全部506条数据,放在NumPy数组x、y中(x:属性,y:标记);
(2)使用全部506条数据,实现波士顿房价数据集可视化,如图1所示;
(3)要求用户选择属性,如图2所示,根据用户的选择,输出对应属性的散点图,如图3所示
在这里插入图片描述

图1 波士顿房价数据集可视化图

请用户输入属性:
在这里插入图片描述

图2 属性选择图

运行结果:
在这里插入图片描述

图3 运行结果图
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

boston_housing = tf.keras.datasets.boston_housing
(train_x, train_y), (test_x, test_y) = boston_housing.load_data(test_split=0)

plt.rcParams['font.sans-serif'] = "SimHei"
plt.rcParams['axes.unicode_minus'] = False

titles = [
    "CRIM", "ZN", "INDUS", "CHAS", "NOX", "RM", "AGE", "DIS", "RAD", "TAX",
    "PTRATIO", "B-1000", "LSTAT", "MEDV"
]

plt.figure(figsize=(14, 14))

for i in range(13):
    plt.subplot(4, 4, i + 1)
    plt.scatter(train_x[:, i], train_y)

    plt.xlabel(titles[i])
    plt.ylabel("Price($1000's)")
    plt.title(str(i + 1) + "." + titles[i] + " - Price")

plt.tight_layout(rect=[0, 0, 1, 0.95])
plt.suptitle("各个属性与房价的关系", x=0.5, y=0.98, fontsize=20)
plt.show()


plt.close()

print("请输入所选择的属性")
print( "1--CRIM\n", "2--ZN\n", "3--INDUS\n", "4--CHAS\n", "5--NOX\n", "6--RM\n", 
      "7--AGE\n", "8--DIS\n", "9--RAD\n", "10--TAX\n",
    "11--PTRATIO\n", "12--B-1000\n", "13--LSTAT\n", "14--MEDV")
n = int(input())
sc = titles[i - 1] + "Price($1000's)"
plt.figure(figsize=(5,5))
plt.scatter(train_x[:,i-1],train_y)
plt.xlabel(titles[i - 1])
plt.ylabel("Price($1000's)")
plt.title(sc)
plt.show()

在这里插入图片描述
在这里插入图片描述

题目三:
使用鸢尾花数据集,绘制如下图形,其中对角线为属性的直方图。
在这里插入图片描述

提示:绘制直方图函数 plt.hist(x, align= ‘mid’, color, edgecolor)

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

TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1],TRAIN_URL)

#设置列标题
COLUMN_NAMES = [
    'SepalLEngth', 'SePalWidth', 'PetalLength', 'PetalWidth', 'Species'
]
#下载鸢尾花数据集,并设置列标题
dr_iris = pd.read_csv(train_path, names=COLUMN_NAMES, header=0)

iris = np.array(dr_iris)

fig = plt.figure(figsize=(15, 15))

fig.suptitle(
    "Anderson's Iris Data Set\n(Bule->Setosa | Red->Versicolor | Green->Virginica)"
)
for i in range(4):
    for j in range(4):
        plt.subplot(4, 4, 4 * i + (j + 1))
        if (i == j):
            plt.hist(iris[:, j], align='mid')
        else:
            plt.scatter(iris[:, j], iris[:, i], c=iris[:, 4], cmap='brg')

        plt.title(COLUMN_NAMES[j])  # 横坐标标签使用子图标题来实现
        plt.ylabel(COLUMN_NAMES[i])

plt.tight_layout(rect=[0, 0, 1, 0.93])

plt.show()

在这里插入图片描述

4.实验小结&讨论题

① 实验过程中遇到了哪些问题,你是如何解决的?
没有熟悉使用pycharm,询问了同学。

② 根据题目二的数据进行可视化结果,分析波士顿数据集中各个属性对房价的影响。
占地面积与房价大致呈线性相关。

③ Numpy和Pandas各有什么特点和优势?在应用中应如何选择?
Pandas拥有Numpy一些没有的方法,例如describe函数。其主要区别是:Numpy就像增强版的List,而Pandas就像列表和字典的合集,Pandas有索引。Pandas有两种结构,分别是Series和DataFrame。其中Series拥有Numpy的所有功能,可以认为是简单的一维数组;而DataFrame是将多个Series按列合并而成的二维数据结构,每一列单独取出来是一个Series。

④ 在题目基本要求的基础上,你对每个题目做了那些扩展和提升?或者你觉得在编程实现过程中,还有哪些地方可以进行优化?
完全按照题目的要求来做的。

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 安居客出租房(武汉为例)爬虫+数据分析+可视化 这个爬虫是我前段时间在淘宝上做单子的时候遇见的一个客户需求。本来以为就是一个简单的爬虫项目。但后面客户加了数据清洗和数据分析的要求。而后又加了要详细代码解释的需求等等。直到最后客户坦白说这是他们大专的毕设.......但是这个单子坐下来只有200左右,我想了一下,感觉好亏啊。在淘宝上随便找一个做毕设的都要好多钱的,而且客户本身的代码能力、数学、逻辑能力都很差,导致我每行都给注释以及看不懂,在我交付代码后又纠缠了我一个多礼拜。反正总体做下来的感觉就是烦躁。头一次感觉到了客户需求变更带来的巨大麻烦。 总之这是一次不是很愉快的爬虫经历。但是作为我写爬虫以来注释最详细的一次,以及第一次真正使用像matplotlib这种数据分析库的代码,我认为还是有必要分享出来给大家当个参考的(PS:大佬轻拍~)。爬虫本身几乎没有什么难度,写的也比较乱,敬请见谅。 **功能** 爬取安居客上的出租房信息(武汉地区的),并通过爬取的数据进行数据清洗以及数据分析。给出四个不同层面的可视化图。最终结果如下图所示: ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/1.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/2.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/3.png) ![Image text](https://raw.githubusercontent.com/srx-2000/git_spider/master/anjuke_room_rent_info/result/4.png) **环境** 1. Windows 10 2. python3.7 **使用方法** 首先声明该爬虫由于是特定情况下写的,所以本身的通用性特别差,仅可以对安居客网站上的武汉的出租房信息进行爬取,且需要自己手动更新cookie。同时在对数据进行分析及可视化的时候由于也是特别针对武汉出租房的进行的,所以针对性也比较强。如果别的需求需要自己进行更改。 1. 访问[安居客网址](https://wuhan.anjuke.com/),获取cookie。 > tip:获取cookie的方法可根据[此链接](https://jingyan.baidu.com/article/5d368d1ea6c6e33f60c057ef.html) 2. 在项目中找到`spider.py`的文件,将第12行的cookie换成你自己的cookie。 3. 运行`spider.py`,获取房源信息。运行后应会产生一个`武汉出租房源情况.csv`的文件。此文件为我们从安居客上爬取的房源信息,其中包含`房屋租住链接、房屋描述、房屋地址、房屋详情(户型)以及经纪人、房屋价格`五个属性。 4. 在获取了数据之后我们运行`matplotlib.py`文件。进行数据清洗,分析,可视化。运行后即可获得**功能**中展示四个图片。 **技术栈** 1. request 2. parsel 3. pandas 4. matplotlib **进步(相比之前)** 此次爬虫相比之前的技术上可以说有减无增。但其中注释相当详细,可谓是每行代码都有注释。所以对于初学者应该有一些用处。同时使用matplotlib进行了数据分析可视化等。对于数据处理的代码的注释也是几乎每行都有注释的。
### 回答1: 实验十六是关于使用matplotlib进行数据可视化实验。在这个实验中,我们学习了如何使用matplotlib库来绘制各种图表,如折线图、散点图、柱状图、饼图等。我们还学习了如何对图表进行美化,如添加标题、标签、网格线等。通过这个实验,我们可以更好地理解数据可视化的重要性,以及如何使用matplotlib库来实现数据可视化。 ### 回答2: 实验十六matplotlib数据可视化,是指使用Python中的matplotlib库对数据进行可视化处理的实践。matplotlibPython中一种专门用于绘制各种静态、动态、交互式图形的开源库,其功能强大、使用广泛,可以同时生成多种图形类型,如折线图、柱状图、饼图、热力图等等。 在实验中,首先需要导入matplotlib库,并通过调用相应的函数来绘制图形。通常来说,绘制图形的过程包括设置图形的样式、添加数据、绘制图形、显示图形等几个步骤。例如,我们可以通过以下代码片段绘制一个简单的折线图: ``` import matplotlib.pyplot as plt # 设置图形样式 plt.style.use('ggplot') # 添加数据 x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # 绘制折线图 plt.plot(x, y, linewidth=2, marker='o') # 添加标题和标签 plt.title('Sample Line Plot') plt.xlabel('X Axis') plt.ylabel('Y Axis') # 显示图形 plt.show() ``` 除了基本的折线图,matplotlib还支持许多其他类型的图形,如散点图、柱状图、饼图、热力图等等。不同的图形需要不同的函数和参数来绘制,但基本的绘图流程是相似的。 总之,实验十六matplotlib数据可视化是一次非常有意义和实用性的实践。通过学习和掌握matplotlib库的使用,可以有效地对数据进行可视化处理,让数据更加直观、清晰地展现出来。同时,也为后续的数据分析、建模和预测等任务提供了重要的支持和保障。 ### 回答3: 实验十六要求我们使用matplotlib来进行数据可视化matplotlib是一个开源的绘图库,它提供了广泛的绘制统计图表、交互式界面和动画的工具。通过matplotlib,我们可以轻松地绘制出各种统计图表,从而直观地展示数据。 在实验中,我们学习了如何使用matplotlib来绘制散点图、线形图、柱状图等多种图表。我们首先导入matplotlib库,并设置绘图风格。然后,我们可以在绘图前设置一些图表的属性,如图表的标题、x轴和y轴的标签、坐标轴的范围等。接着,我们可以使用各种函数来绘制图表,如plot()函数用于绘制线形图,scatter()函数用于绘制散点图,bar()函数用于绘制柱状图等。在绘制完成后,我们可以通过设置坐标轴的刻度标签来进一步美化图表。 实验十六还要求我们使用绘图工具来进行数据可视化。在实验中,我们使用了pyplot模块来绘制图表。pyplot提供了用户比较友好的界面,使得我们可以很方便地绘制图表、添加标签和图例等一系列操作。同时,我们还学习了如何对数据进行处理,如将数据转换为DataFrame格式、进行排序和分组等。这些数据处理技巧可以帮助我们更好地理解数据,进一步优化数据的可视化效果。 总的来说,实验十六通过使用matplotlib进行数据可视化,不仅让我们感受到了python在数据分析和可视化方面的优越性,而且加深了我们对数据处理和可视化的理解,增强了我们的数据分析能力和应用能力。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Next---YOLO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值