import pandas as pd import chardet import matplotlib.font_manager as fm import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # Rest of your code for visualization plt.show() with open('数据.csv', 'rb') as f: result = chardet.detect(f.read()) data = pd.read_csv('数据.csv', encoding='gbk') font_path = fm.findfont(fm.FontProperties(family='SimSun')) data['persqm'] = pd.to_numeric(data['persqm'], errors='coerce') data = data.dropna(subset=['persqm']) price_level = pd.cut(data['persqm'], bins=[0, 10000, 20000, 30000, 40000, float('inf')], labels=['0-1万', '1-2万', '2-3万', '3-4万', '4万以上']) area_level = pd.cut(data['square'], bins=[0, 10, 20, 30, 40, 50, 60, 70, float('inf')], labels=['0-10', '10-20', '20-30', '30-40', '40-50', '50-60', '60-70', '70以上']) house_type = data['house_type'] direction = data['direction'] deco = data['deco'] fig, axs = plt.subplots(2, 2, figsize=(12, 8)) fig.suptitle('房价与特征之间的关系', fontsize=16) # Subplot 1: House type vs Price level axs[0, 0].scatter(house_type, price_level, alpha=0.6) axs[0, 0].set_xlabel('房型', fontsize=12) axs[0, 0].set_ylabel('每平米房价(万元)', fontsize=12) # Subplot 2: Area level vs Price level axs[0, 1].scatter(area_level, price_level, alpha=0.6) axs[0, 1].set_xlabel('房屋面积(平方米)', fontsize=12) axs[0, 1].set_ylabel('每平米房价(万元)', fontsize=12) # Subplot 3: Direction vs Price level axs[1, 0].scatter(direction, price_level, alpha=0.6) axs[1, 0].set_xlabel('朝向', fontsize=12) axs[1, 0].set_ylabel('每平米房价(万元)', fontsize=12) # Subplot 4: Decoration vs Price level axs[1, 1].scatter(deco, price_level, alpha=0.6) axs[1, 1].set_xlabel('装修情况', fontsize=12) axs[1, 1].set_ylabel('每平米房价(万)', fontsize=12) axs[1, 1].grid(True, linestyle='--', alpha=0.4) plt.rcParams['axes.unicode_minus'] = False plt.tight_layout() plt.show()
时间: 2023-12-23 15:03:02 浏览: 95
import pandas as pd.docx
这段代码的作用是进行数据可视化分析,具体来说,它将CSV文件中的数据读取到Pandas数据框中,并使用matplotlib库绘制四个子图,每个子图展示了不同特征与每平米房价之间的关系。
首先,使用chardet库检测CSV文件的编码格式,并将其设置为encoding参数。然后,使用Pandas读取CSV文件并将数据存储在data变量中。接下来,进行一些数据预处理,例如将persqm列转换为数值类型,删除包含缺失值的行,以及将数据分组成不同的价格水平、面积水平等。然后,创建一个2x2的子图,分别展示房型、房屋面积、朝向和装修情况与每平米房价之间的关系。最后,使用plt.show()显示图形。
阅读全文