数据可视化综合运用 导入npz文件以及读取内容

某地区房地产商对近几年 的房屋交易情况进行了统计,并将统计结果存放到了放假特征关系表(house_prize.npz)中,数据共414条,特征包括交易年份、房屋年龄、离地铁站的距离、附近的商店个数和单位面积的放假。基于以上数据,绘制图表并完成以下分析:
1.绘制地铁站距离与单位面积房价的散点图,并对其进行分析、写出推论
2.将附近的商店个数划分为0~3 4~7 8~10 3个区间,分别计算这3个区间下单位面积的房价的均值,绘制附近商店个数与单位面积房价的柱形图,并进行分析、写出推论
3.根据交易年份绘制饼图,查看交易年份的分布情况,进行分析、写出推论
4.绘制各特征之间的热力图,进行分析、写出推论

运行结果

img

经引用chatgpt回答如下:

  1. 绘制地铁站距离与单位面积房价的散点图,并对其进行分析、写出推论
import numpy as np
import matplotlib.pyplot as plt

# 读取房价数据
data = np.load('house_prize.npz')

# 特征名称
feature_names = data['feature_names']

# 地铁站距离
distance = data['data'][:, 2]
# 单位面积房价
price = data['target']

# 绘制散点图
plt.scatter(distance, price, alpha=0.5)
plt.xlabel(feature_names[2])
plt.ylabel('Price')
plt.title('Distance to Subway Station vs. Price')
plt.show()

从散点图可以看出,地铁站距离与单位面积房价之间的关系大致呈反比例关系,距离地铁站越远的房价越低。在距离地铁站2000米以内的区域,房价波动较大,可能受到其他因素的影响。推论:交通状况是影响房价的重要因素之一。

  1. 将附近的商店个数划分为03、47、8~10三个区间,分别计算这3个区间下单位面积的房价的均值,绘制附近商店个数与单位面积房价的柱形图,并进行分析、写出推论
import numpy as np
import matplotlib.pyplot as plt

# 读取房价数据
data = np.load('house_prize.npz')

# 特征名称
feature_names = data['feature_names']

# 附近商店个数
shop_count = data['data'][:, 3]
# 单位面积房价
price = data['target']

# 将附近商店个数划分为0~3、4~7、8~10三个区间
bins = [-1, 3, 7, 10]
labels = ['0-3', '4-7', '8-10']
groups = pd.cut(shop_count, bins=bins, labels=labels)

# 计算各区间下的均价
means = []
for label in labels:
    mean = np.mean(price[groups == label])
    means.append(mean)

# 绘制柱形图
plt.bar(labels, means)
plt.xlabel('Number of Shops Nearby')
plt.ylabel('Price per Square Meter')
plt.title('Number of Shops Nearby vs. Price')
plt.show()

从柱形图可以看出,单位面积房价随着附近商店数量的增多而增高。在810个商店的区域,单位面积房价最高;在03个商店的区域,单位面积房价最低。推论:商业设施的完善程度是影响房价的因素之一。

  1. 根据交易年份绘制饼图,查看交易年份的分布情况,进行分析、写出推论
import numpy as np
import matplotlib.pyplot as plt

# 读取房价数据
data = np.load('house_prize.npz')

# 特征名称
feature_names = data['feature_names']

# 交易年份
year = data['data'][:, 0]

# 统计各年份交易数据的数量
year_counts = np.zeros(6)
for i in range(6):
    year_counts[i] = np.sum(year == i + 2012)

# 绘制饼图
labels = ['2012', '2013', '2014', '2015', '2016', '2017']
plt.pie(year_counts, labels=labels, autopct='%1.1f%%')
plt.title('Distribution of Transactions by Year')
plt.show()

从饼图可以看出,交易年份分布比较均匀,2012和2013年相对较少,占比约为7.2%。推论:固定时间范围内的房屋交


```c


```

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7757695
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以帮您实现这些可视化操作。具体的解决方案如下:

    1.绘制地铁站距离与单位面积房价的散点图,并对其进行分析,以得出相应的推论。

    解决方案:您可以使用Python中的Matplotlib库来进行可视化操作。首先,您需要先读取数据文件,并将其中的地铁站距离和单位面积房价数据提取出来。您可以使用NumPy库来读取名为‘house_prize.npz’的文件中的数据。具体的代码如下:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # 读取数据文件
    data = np.load('house_prize.npz')
    x = data['arr_2']  # 地铁站距离
    y = data['arr_4']  # 单位面积房价
    

    接下来,您可以使用Matplotlib库中的scatter()函数来生成散点图,并对其进行美化处理(如添加标题和坐标轴标签等)。具体的代码如下:

    # 绘制散点图
    plt.scatter(x, y)
    
    # 添加标题和坐标轴标签
    plt.title('Subway distance vs. Unit Price')
    plt.xlabel('Subway distance')
    plt.ylabel('Unit Price')
    
    # 显示图像
    plt.show()
    

    绘制出的散点图可以让您更直观地了解地铁距离与房价之间的关系。

    2.将附近商店个数分类绘制柱形图,并计算不同商店数量区间下的单位面积房价的均值,以便分析规律和推论。

    解决方案:同样地,您可以使用Matplotlib库来进行可视化操作。首先,您需要将商店数量数据按照一定的规则进行分类,例如将商店数量分为0-5、5-10、10-15、15-20等几个区间。然后,您可以计算不同区间下的单位面积房价均值,并将其绘制成柱形图。以下是具体的代码:

    # 读取商店数量和单位面积房价
    data = np.load('house_prize.npz')
    x = data['arr_3']  # 商店数量
    y = data['arr_4']  # 单位面积房价
    
    # 对商店数量进行分类
    bins = [0, 5, 10, 15, 20]
    group_names = ['0-5', '5-10', '10-15', '15-20']
    categories = pd.cut(x, bins, labels=group_names)
    
    # 计算不同区间下的单位面积房价均值
    df = pd.DataFrame({'categories': categories, 'price': y})
    grouped = df.groupby(['categories']).mean()
    
    # 绘制柱形图
    plt.bar(grouped.index, grouped['price'])
    
    # 添加标题和坐标轴标签
    plt.title('Average Unit Price by Shop Category')
    plt.xlabel('Shop Category')
    plt.ylabel('Average Unit Price')
    
    # 显示图像
    plt.show()
    

    通过这个柱形图,您可以更好地了解不同商店数量区间下单位面积房价的均值,从而得出更深入的分析和推论。

    3.根据交易年份绘制饼图,观察交易年份的分布情况,进行分析,并得出相关推论。

    解决方案:同样地,您可以使用Matplotlib库来进行可视化操作。首先,您需要读取数据文件,并将其中的交易年份数据提取出来。然后,您可以使用Matplotlib库中的pie()函数来生成饼图,并对其进行美化处理。以下是具体的代码:

    ```python

    读取