「实战」南京房价的秘密——小区价格篇「1」

tech2025-03-18  5

你好,我是悦创。

上一篇,我跟你分享了《「实战」南京房价的秘密——准备篇》,接下来我将用三篇与你分享简单的数据可视化。

南京——江苏省会,国家历史文化名城,全国重要的科研教育基地和综合交通枢纽。作为长三角唯一特大城市(上海的定位为超大城市),南京的房价确实不低,从目前的发布的城市均价看,已经逼近 29000元每平米,稳稳的江苏一哥。那实际情况是什么样子呢?从这一节开始,我们就一边谈数据的可视化,一边聊南京的房价。

本系列实战文章以技术讲解为主,因此对商品房的概念未做严格限制。对于部分拆迁安置房、房改房、福利房,只要能够上市流通,小悦一概不做区分。

Xiaoqu_NJ_format.csv上 一篇文章保存的文档,可以点击上一章文章操作一遍

南京小区概览

import pandas as pd import numpy as np Xiaoqu = pd.read_csv("Xiaoqu_NJ_format.csv", dtype=np.str) Xiaoqu.shape Out: (5082, 16)

从统计的情况看,南京有各类小区 5082 个。那各个城区的小区分区如何呢?这里我们引入 matplotlib 的柱状图方法 bar() 。

首先需要强调的是, matplotlib 绘图过程非常简单,主要遵循3个基本步骤即可:

(1)绘制并设置画布;

(2)图类型选择以及设置绘图数据;

(3)设置图的其他属性,例如标题、轴等。

案例一:绘制南京行政区县的小区分布图-柱状图

因为是在 jupyter notebook 中演示,需要在 notebook 中显示图片,因此需增加一条魔法命令:

%matplotlib inline # 魔法命令,作用是把生成的图片嵌入到notebook中 import matplotlib.pyplot as plt # 设置绘图的字体,特别是中文字体需要注意,避免出现乱码的情况 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 基于统计命令,生成待绘图的数据 Series_bar = Xiaoqu["区县定位"].value_counts() x_data = Series_bar.index.tolist() y_data = Series_bar.values.tolist() x_data Out: ['鼓楼', '江宁', '秦淮', '玄武', '建邺', '浦口', '栖霞', '雨花台', '六合', '溧水', '高淳'] y_data Out: [915, 849, 807, 460, 406, 395, 380, 314, 265, 194, 97] # step 1:设置画布大小 plt.figure(figsize=(8, 6)) # step 2:基于bar函数的关键绘图语句(柱状图) plt.bar(x_data, y_data, facecolor="r", label="小区数量", width=0.5, alpha=0.6) # step 3:设置图的其他属性 plt.title("南京各区域小区数量", fontsize=15) # 设置图标题,标题字号,建议标题字号通常大一些 plt.xticks(fontsize=12) # 设置横轴字号 plt.yticks(fontsize=12) # 设置纵轴字号 plt.legend() # 设置显示图例

到这里,一个最常见的绘图流程就介绍完毕了。需要注意的是 bar() 函数的关键参数,上面脚本中列举的是最常见的几个参数:

color:用来指定柱子的颜色,”r” 表示 red,常见有 “g”(green)、“y”(yellow)、“k”(black)、“b”(blue)等。更一般的,可以传入十六进制颜色码,参考链接:https://www.runoob.com/html/html-colorvalues.html

label:用来指定图例的名称;

width:用来指定每个柱子的宽度(0~1);

alpha:透明度(0~1),通常为了使颜色更加柔和,可以调整该值的大小;

最新回复(0)