Python案例|Matplotlib库实现的数据分析

图片

数据展示是数据分析和挖掘中的重要环节,通过图形的形式可以直观、清晰地呈现数据内在的规律。

本文所用数据采用上一篇案例实现后的数据表,数据存储在newbj_lianJia.csv文件中,具体代码如下。

import pandas as pd  #导入库
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 调整字体设置
plt.rcParams 'axes.unicode minus False
df=pd.read csv('newbj lianJia.csv',encoding='gbk') # 读取文件

本文主要任务是展示并分析每一属性的数据分布情况,具体包括以下几个方面。

(1) 绘制各楼层平均租金分布的条形图。

(2) 绘制各城区房屋平均租金的折线图。

(3) 绘制平均租金前20名的街道房屋数量的柱状图及其平均租金分布折线图。

(4) 绘制房屋户型前10名的占比情况。

01、案例实现

(1) 绘制各楼层平均租金分布的条形图。代码如下。

# 按照楼层分组
g=df.groupby('floor')
# 计算各楼层的房屋数量
df floor=g.count()['ID
floor=df floor.index.tolist()
# 计算各楼层的平均租金
df floor rent=g.mean() 'rent;
rent=df floor rent.values.tolist ()
rent= round(x,2) for x in rent
# 绘制条形图
plt.barh(y=floor,width=rent)
plt.ylabel('楼层')
plt.xlabel('租金/元)
plt.title('各楼层平均租金条形图',fontproperties='stkaiti',fontsize=14)
plt.tight layout(pad=2)
plt.show()

运行结果如图1所示。

图片

■图1 各楼层平均租金的条形图

可以看出,对租金影响最大的依次是:地下室、低楼层、中楼层、高楼层。

(2) 绘制各城区房屋平均租金的折线图。

代码如下。

# 按照城区进行分组,统计租金的平均值
dfl=df.groupby('district')['rent'].mean()
# 获取城区名
region=df1.index.tolist()
# 获取各城区的平均租金
rent=_round(x,2) for x in dfl.values.tolist()
# 绘制各城区房屋租金折线图
plt.figure(figsize=(12,6))
plt.plot(region,rent,c='r',marker='o',linestyle='--')
for x,y in zip(region,rent):
plt.text(x,Y,' .0f' y,ha='center',fontsize=11)
# 设置坐标轴标签文本
plt.ylabel('租金/元,fontproperties='simhei')
plt.xlabel('城区',fontproperties='simhei')
#设置图形标题
plt.title(各城区房屋平均租金折线图,fontproperties='stkaiti'
fontsize=14)
# 设置横坐标字体倾斜角度
plt.xticks(rotation=15)# 显示图形
plt.show()

 运行结果如图1所示。

图片

■图1 各城区房屋平均租金的折线图

可以看出,城区对房租的影响很大,平均租金最高的是朝阳区,13976元,最低的是密云区,3480元。当然,这与城区所在的地理位置有着直接的关系,距离市中心越近,租金越高,距离市中心越远,租金越低。

(3) 绘制平均租金前20名的街道房屋数量的柱状图及其平均租金分布折线图。

代码如下。

# 按照街道进行分组
g=df.groupby('street')
# 对街道按照平均租金进行升序排序,并取前 20 名
df region=g.mean() 'rent
top_street rentdf region.sort values(axis=0,ascending=False)[:20]
# 获取排名前 20 名的街道名称
region=top street rent .index.tolist ()
# 统计各个街道出租房屋数量
count=[g.count()['ID'][s] for s in region]
# 获取排名前 20 名的街道的平均租金
rent= round(x,2) for x in top street rent.values.tolist()#绘图
fig,axs=plt.subplots(1,1,figsize=(12,6))axs.bar(region,height=count)
plt.ylabel("数量")
plt.xlabel("街道")
axs1=axs.twinx()
axsl.plot(region,rent,c='r',marker='o',linestyle='--')for x,y in zip(region,count):
axs.text(x,y,.Of' y, ha='center',fontsize=12)
for x,y in zip(region,rent):axs1.text(x,y,.Of' yha='center',fontsize=12)axs.set title(租金前 20 名的街道出租房屋数量及其租金分布图fontsize= 14)
plt.ylabel("租金/元")
fig.autofmt xdate(rotation=15)
plt.tight layout(pad=1)
plt.show()

 运行结果如图2所示。

图片

■图2 租金前20名的街道出租房屋数量及租金分布图

可以看出,租金最贵的街道为官园、安定门、宣武门、西山、白石桥。除了租金最高的官园,其余街道的租金相差不是很多,所以街道属性与租金没有很强的相关性。

(4) 绘制房屋户型前10名的占比情况,代码如下。

# 根据房屋户型分组
dfl=df .groupby('model')
#计算房屋户型数量,排序并取前 10 名
df model=dfl.count()['ID'].sort values(axis=0,ascending=False)[:10]
model=df model.index.tolist ()
# 计算房屋数量
count=df model.values.tolist()#绘制房屋户型占比饼图
plt.pie(count,labels=model,autopct='%1.2f%')# 设置图形标题
plt.title('房屋户型前 10 名的占比情况,fontproperties='stkaiti'fontsize=14)
plt.show()

 运行结果如图3所示。

图片

可以看出,大部分房屋的户型为2室1厅1卫、1室1厅1卫、3室1厅1卫、3室2厅2卫。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/90093.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电脑显示“Operating System not found”该怎么办?

“Operating System not found”是一种常见的电脑错误提示,这类错误会导致你无法成功启动Windows。那么电脑显示“Operating System not found”该怎么办呢? 方法1. 检查硬盘 首先,您可以测试硬盘是否存在问题。为此,您可以采取以…

【学习FreeRTOS】第19章——FreeRTOS低功耗模式Tickless

1.低功耗模式简介 很多应用场合对于功耗的要求很严格,比如可穿戴低功耗产品、物联网低功耗产品等一般MCU都有相应的低功耗模式,裸机开发时可以使用MCU的低功耗模式。FreeRTOS也提供了一个叫Tickless的低功耗模式,方便带FreeRTOS操作系统的应…

【局部活动轮廓】使用水平集方法实现局部活动轮廓方法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Spark大数据分析与实战笔记(第一章 Scala语言基础-2)

文章目录 章节概要1.2 Scala的基础语法1.2.1 声明值和变量1.2.2 数据类型1.2.3 算术和操作符重载1.2.4 控制结构语句1.2.5 方法和函数 章节概要 Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术&#xf…

滚珠螺杆导程对精度有影响吗?

滚珠螺杆的导程也称螺距,即螺杆每旋转一周螺母直线运动的距离,导程与直线速度有关,在输入转速一定的情况下,导程越大速度越快。正常来说,选择导程时,尽量选5和10最好。 很多人一直觉得导程会影响滚珠螺杆的…

docker使用harbor进行镜像仓库管理演示以及部分报错解决

目录 一.安装harbor和docker-compose 1.下载 2.将该文件修改为这样,修改好自己的hostname和port,后文的用户和密码可以不改也可以改,用于登录 3.安装 二.修改daemon.json文件和/etc/hosts文件 三.使用powershell作windows端域名映射 四…

Matlab高光谱遥感数据处理与混合像元分解实践技术

光谱和图像是人们观察世界的两种方式,高光谱遥感通过“图谱合一”的技术创新将两者结合起来,大大提高了人们对客观世界的认知能力,本来在宽波段遥感中不可探测的物质,在高光谱遥感中能被探测。以高光谱遥感为核心,构建…

M1 Pro 利用docker 搭建pytho2的开发环境,以vscode连接开发为例

使用 M1 Pro (不支持python2的安装)开发,需要使用 Python 2.7 的环境,在使用 pyenv 安装 Python 2 时遇到了各种奇怪的问题。最终,我决定使用 Docker 搭建开发环境,并使用 VS Code 连接到本地容器。以下是详…

从0开始实现一个三维绘图系统

文章目录 将图像嵌入tkinter简单的绘图系统导入数据三维绘图源代码 将图像嵌入tkinter tkinter是Python标准库中自带的GUI工具,使用十分方便,如能将matplotlib嵌入到tkinter中,就可以做出相对专业的数据展示系统,很有竞争力。 在…

【keepalived双机热备与 lvs(DR)】

目录 一、概述 1.简介 2.原理 3.作用 二、安装 1.配置文件 2.配置项 三、功能模块 1.core 2.vrrp 3.check 四、配置双机热备 1.master 2.backup 五、验证 1.ping验证 2.服务验证 六、双机热备的脑裂现象 七、keepalivedlvs(DR) 1.作…

Linux学习之Ubuntu 20.04在github下载源码安装Openresty 1.19.3.1

参考的博文:《在 Ubuntu 上使用源码安装 OpenResty》 《OpenResty 安装安装详解-Ubuntu》 《Linux学习之CentOS 7源码安装openresty》 https://openresty.org/en/download.html是官网下载网址,页面往下拉有下载的链接。 https://github.com/openresty…

CSS实现内凹圆角,从而实现圆角边框

1、代码 <!DOCTYPE html> <html><head><style>.uu {position: relative;width: 400px;height: 300px;}img {width: 100%;height: 100%;z-index: 1;}.box_right_top {background-image: radial-gradient(circle at left bottom, transparent 50px, whi…

论文阅读_模型结构_LoRA

name_en: LoRA: Low-Rank Adaptation of Large Language Models name_ch: LORA&#xff1a;大语言模型的低阶自适应 paper_addr: http://arxiv.org/abs/2106.09685 date_read: 2023-08-17 date_publish: 2021-10-16 tags: [‘深度学习’,‘大模型’] author: Edward J. Hu cita…

每天一道leetcode:542. 01 矩阵(图论中等广度优先遍历)

今日份题目&#xff1a; 给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例1 输入&#xff1a;mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff…

MATLAB图论合集(二)计算最小生成树

今天来介绍第二部分&#xff0c;图论中非常重要的知识点——最小生成树。作为数据结构的理论知识&#xff0c;Prim算法和克鲁斯卡尔算法的思想此处博主不详细介绍&#xff0c;建议在阅读本帖前熟练掌握。 对于无向带权图&#xff0c;在MATLAB中可以直接以邻接矩阵的方式创建出来…

直播小程序源码有用的协议知识:MQTT协议

MQTT协议分析&#xff1a; MQTT协议中文全称为消息队列遥测传输协议&#xff0c;是一种实时通信协议&#xff0c;适用于物联网场景中。MQTT协议被应用到直播小程序源码平台中&#xff0c;确保了直播小程序源码平台音视频流的传输高效、低延迟&#xff0c;为直播小程序源码平台…

打家劫舍00

题目链接 打家劫舍 题目描述 注意点 如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警0 < nums[i] < 400 解答思路 最初想的是使用深度优先遍历&#xff0c;到达任意一个位置时&#xff0c;小偷想要偷窃最高金额&#xff0c;一定要选择后面第2个房…

【java】【idea2023版】Springboot模块没有.iml文件的问题

目录 方法一&#xff1a; 1、首先鼠标选中对应的对应的模块 &#xff0c;按两下Ctrl键 2、project中选择对应的模块 3、运行mvn idea:module 命令​编辑 方法二&#xff1a; 1、可以右键点击open Terminal 2、然后在打开的Terminal里输入 方法一&#xff1a; 1、首先鼠…

【负载均衡】Nacos简单入门

Nacos简单入门 快速安装 在Nacos的GitHub页面&#xff0c;提供有下载链接&#xff0c;可以下载编译好的Nacos服务端或者源代码&#xff1a; 下载完压缩包之后&#xff0c;放在任意目录下面进行解压&#xff1a; GitHub主页&#xff1a;https://github.com/alibaba/nacos G…

人体行走电压测试仪的特点

人体行走电压测试仪是一种用于测量人体行走时身体所受到的电压的设备。当人体行走时&#xff0c;我们身体与地面之间会形成电位差&#xff0c;这个电位差通常是很小的&#xff0c;但可能会对人体产生影响。通过使用行走电压测试仪&#xff0c;可以精确地测量这种电位差的大小。…