房产租赁数据分析与可视化

【实训目的】
  通过本次实训,要求了解Python用于数据可视化的常用包:matplotlib、seaborn、pyecharts等基本使用,及各种图形的使用。

【实训环境】
  Jupyter环境、Pandas、NumPy、Matplotlib。

【实训内容】
  1. 数据统计与分析方面的可视化;
  2. 数据分析与预测方面的可视化;
  3. 数据多类型的可视化。

  本次实验以温州市三区房屋租赁数据(result.csv)为基础,实现房产租赁数据多形式的可视化展现。


# 依次导入numpy、pandas、matplotlib库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 配置Matplotlib库的默认字体和符号显示,确保中文和负号的正确显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 读取数据 /data/bigfiles/result.csv
house = pd.read_csv('result.csv', encoding='gbk')

# 只取温州市三区'鹿城','龙湾','瓯海'的数据进行查看
wz_districts = house[(house['行政区'] == '鹿城') | (house['行政区'] == '龙湾') | (house['行政区'] == '瓯海')]

# 1. 绘制温州市各行政区划租赁价格箱形图
def plot_boxplot():
    plt.figure(figsize=(10, 6))
    plt.boxplot([wz_districts[wz_districts['行政区'] == '鹿城']['租赁价格'],
                 wz_districts[wz_districts['行政区'] == '龙湾']['租赁价格'],
                 wz_districts[wz_districts['行政区'] == '瓯海']['租赁价格']])
    plt.xticks([1, 2, 3], ['鹿城', '龙湾', '瓯海'])
    plt.xlabel('行政区')
    plt.ylabel('租赁价格')
    plt.title('温州市各行政区划租赁价格箱形图')
    plt.show()

plot_boxplot()

# 2. 散点图
# (1) 绘制散点图展现面积、房间数与价格的关系
def plot_scatter():
    plt.figure(figsize=(10, 6))
    plt.scatter(wz_districts['面积'], wz_districts['房间数'], c=wz_districts['租赁价格'])
    plt.xlabel('面积')
    plt.ylabel('房间数')
    plt.title('面积、房间数与租赁价格的关系散点图')
    plt.colorbar(label='租赁价格')
    plt.show()

plot_scatter()

# (2) 绘制气泡图展现面积、房间数与价格的关系
# 1) 一个行政区(以鹿城为例)
def plot_bubble_single_district():
    district_data = wz_districts[wz_districts['行政区'] == '鹿城']
    plt.figure(figsize=(10, 6))
    plt.scatter(district_data['面积'], district_data['房间数'], s=district_data['租赁价格'] * 10, c='b', alpha=0.5)
    plt.xlabel('面积')
    plt.ylabel('房间数')
    plt.title('鹿城面积、房间数与租赁价格的关系气泡图')
    plt.show()

plot_bubble_single_district()

# 2) 三个行政区
def plot_bubble_three_districts():
    plt.figure(figsize=(10, 6))
    for district in ['鹿城', '龙湾', '瓯海']:
        district_data = wz_districts[wz_districts['行政区'] == district]
        plt.scatter(district_data['面积'], district_data['房间数'], s=district_data['租赁价格'] * 10, label=district)
    plt.xlabel('面积')
    plt.ylabel('房间数')
    plt.title('温州市三区面积、房间数与租赁价格的关系气泡图')
    plt.legend()
    plt.show()

plot_bubble_three_districts()

# 3. 使用饼图展现每个行政区域的可租赁房源百分比
def plot_pie():
    district_count = wz_districts['行政区'].value_counts()
    plt.figure(figsize=(10, 6))
    plt.pie(district_count, labels=district_count.index, autopct='%1.1f%%')
    plt.title('每个行政区域的可租赁房源百分比饼图')
    plt.show()

plot_pie()

# 4. 使用折线图可视化房间数与租赁价格回归分析
from sklearn.linear_model import LinearRegression

def plot_line_regression():
    X = wz_districts[['房间数']]
    y = wz_districts['租赁价格']

    model = LinearRegression()
    model.fit(X, y)

    plt.figure(figsize=(10, 6))
    plt.scatter(X, y, label='实际数据')
    plt.plot(X, model.predict(X), color='r', label='拟合直线')
    plt.xlabel('房间数')
    plt.ylabel('租赁价格')
    plt.title('房间数与租赁价格回归分析折线图')
    plt.legend()
    plt.show()

plot_line_regression()

你可能感兴趣的:(数据分析,信息可视化,数据挖掘)