找到你的城市——303 座城市,12 项指标
avgrebenkin.com/research/cities/zh-Hans/
找到你的城市
303 座城市,按人们真正会为之搬家的 12 件事逐项打分:治安、医疗、上下班的路、干净的空气、气候、文化、不开车也过得下去、大学、本地工资能买到多少东西、一套房子够不够得着、有什么留给孩子,以及从这里不换乘能飞到哪些地方。每一项算多重,由你说了算:12 个滑块,从 0 到 3。它们合起来,给每座城市算出一个总分;这个总分再和在当地生活的花费放到一起——于是你看得出,哪些城市把自己给的东西卖得很贵,哪些城市给回来的比拿走的多。
全景:303 座城市,一座不落
303 座城市一次全在这里。每个圆点是一座城市,点越大越亮,说明这座城市的总分越高——总分算的是它在 12 件事上的表现,而这 12 件事各算多重,你可以在本页往下自己定。在你动手改之前,其中 5 件事在起作用,分量还都一样:治安、医疗、通勤路短、空气干净和气候。所以亮成一片的地方,无非就是这 5 样都还不错的城市。地球可以转,可以一直放大到名字浮出来,点中圆点就展开这座城市的完整卡片;也可以直接在搜索框里打名字,地球会自己转过去(页面上任何地方按 / 都能跳进搜索框)。地球下面的一切,都是把这同样的 303 座城市收窄成你要的那些。
城市卡片
还没有选中城市。在上面搜一个,或者点地球上的圆点,再或者点按下面列表里的任意一行,这块面板就会填上那座城市的卡片:先是它在 303 座城市里的位置,再是 12 项指标各自的一根横条,每根只说明它单在那一项上考得怎么样。
说说什么对你要紧
12 个滑块,6 套现成设置
这 12 件事,每一件对你值多少,就在这里说。滑块动一下,303 座城市全部重算一次,所以你一松手,上面的地球和下面的图表、列表、表格都会重画。还有两个开关不在这里,而在图表旁边:世界的哪几块留下,以及租金算不算进生活成本。
从别人那里起步
这里有 6 套现成的滑块设置,每一套背后站着一类不同的人:远程工作的人、带小孩的家庭,等等。点最接近你的那一套,12 个滑块就一起跳到那套数值;再把你不认同的几项挪一挪。只要你碰了滑块,这套预设的高亮就灭了——设置已经不是那个人的了。
一项指标一个滑块,共 12 个,每个从 0 到 3:定在 3 的指标,分量是定在 1 的 3 倍;停在 0 上的等于整个关掉,不参与算分。滑块分成 5 组——基础、城市生活、钱、家庭、通向世界——5 组默认都摊开着,不在意的收起来就是。
你留下的城市:分数对成本
每个圆点是筛选之后留下来的一座城市。点越靠右,在那儿生活的花费越高;点越靠上,它在你这套滑块下拿到的分数越高。所以划算的城市都聚在左上角——分数高,花费低;右上角则是那些你得掏钱才拿得到的城市。名字只印在放得下、又不会互相压住的地方;没印上名字的,把光标移上去或者点一下就有,完整的排序在下面的列表里。
你给购买力的权重大于 0,而它是这一整套数字里最不牢靠的一个——随之而来有两条提醒。第一,钱现在同时出现在两条轴上:购买力高会把城市往上推,而通常与之相伴的高物价又把同一座城市往右推,于是财富被算了两遍,这张图当初想躲开的效应又悄悄溜了回来。第二,这个数字背后的工资,是碰巧去填 Numbeo 的人自己报上来的,在科技重镇填的多半是搞技术的:海得拉巴报出 164.7,在 303 座城市里排第二,仅次于伯尔尼,还高过苏黎世;孟买是 63.1,德里是 66.6。真实的经济不会在一个国家内部裂出 4 倍。这项指标要读作“一个 Numbeo 受访者挣多少”,而不是“这座城市付多少”。
全部城市,依次排开
还是上面那张图里的城市,只是改成按名次排的列表。两列数字都不是原始数值,而是在 303 座城市这条队伍里的位置。分数取你没关掉的那些指标,按各自滑块说的分量做平均,再把结果换回队伍里的位置:100 是在你这套设置下考得最好的城市,50 在正中间,0 排最后。成本是同一个办法用在生活成本上,只是这里 100 是最贵的城市,0 是最便宜的。点任一列标题就按它排序;把光标移到某一行、或者点一下,就能看到这座城市逐项的拆解——点一下还会顺手把地球旁边的城市卡片填上。
这是怎么算出来的
做平均之前,每一项指标都先换成名次。原始数字本来就不在一个量纲上:博物馆按百来数,治安是 0 到 100,直飞目的地也是几百个——照原样平均,数值最大的那一项就会把其余全部淹没。所以每一项都换成这座城市单在那一项上、在这 303 座城市里排到的位置:最低的是 0,最高的是 100。你的分数,就是你没关掉的那些指标的位置取平均,每一项按滑块说的分量重复计入;这个平均值本身再换回 0 到 100 的位置——于是无论你只开一项还是把 12 项全开,点云铺开的范围都一样。越小越好的几项——通勤时长、污染、一套房要几年收入——先做了反转,所以本页任何地方,数字越高都表示城市越好。
这里没有什么是替你定好的,只有一个起点。页面打开时,5 个滑块是抬起来的,另外 7 个停在 0:治安、医疗、通勤路短、空气干净和气候,分量都一样。Numbeo 自家的生活质量指数,凑的差不多也是这些东西,只是给的轻重不同。两种配法都算不上正确——这些事哪些要紧、要紧到什么程度,恰恰是谁也没法替你定的,滑块就是为此而设。
凡是从地图上数出来的,都数在同一个圆里:市中心方圆 10 公里。这个圆对每座城市一样大,314 平方公里,所以博物馆或有轨电车站的简单计数本身就已经是单位面积上的密度,不必再搬人口数字来让城市之间可比。反过来说,卫星城和首都是踩在同样大的一块地上被衡量的:首都的外围城区落在圆外,而小城的那个圆早就伸出了它自己的边界。
OpenStreetMap 哪里可信,哪里不可信。这张地图是志愿者画的,所以一座城市看着配套很差,可能只是因为动手标它的人少。为了检验这一点,我们数了两样到哪儿密度都差不多、而且制图者从不嫌麻烦去补的东西:公交站和公园。欧洲、北美和亚洲三边的结果彼此相差不到 10 %——可见地图并没有在世界的某一块上更稀,别的指标上的差距就可以当成地面上真实的差距来读。而这些差距很大:轨道站点和步行街在各地区之间能差 3 到 4 倍。另有两项候选指标没能通过同一道检验,被扔掉了。幼儿园:欧洲数出来是北美的 13 倍,因为美国的制图者几乎不用这个标签。取自 Wikidata 的大学:塔林一所也没有。这里的大学改从 OpenStreetMap 数,而它真正量的是校园占了多大地方,不是一座城市有几所学校——美国的校园在地图上是一整块大多边形,欧洲的大学则是散落的一栋栋房子——所以这一项只宜在同一地区内部比,别跨地区比。
购买力是本页最弱的一个数字,值得说清楚为什么。Numbeo 是拿网站访客自己填的工资算出它的,而肯动手去填的人,根本不像这座城市的一个横切面:外派人员和写字楼白领占的比重过大;在网站只收到寥寥几份回答的地方,几个人就把一整座城市的数字定死了。这一点看得出来。海得拉巴算到 164.7,在 303 座城市里排第二,仅次于伯尔尼,还高过苏黎世;孟买停在 63.1,德里 66.6。一个国家内部差出 4 倍,那是谁来回答的偶然,不是经济之间的差别。由此埋下的陷阱是:一座城市正因为本地工资低才便宜,却可能被奖励两次——一次因为物价低,一次又因为一个只属于一小撮劳动力的工资数字。把这个滑块推到 3,你押的就是这一小撮人。另外两个和钱有关的数字——价格篮子和一套房要几年收入——出自同一批人,但来自成千上万条各自独立的价格记录,而不是一个工资输入框,所以它们站得住得多。
只有 6 座城市完全没有航线,而这并不是数据缺了一块。航线这一项数的是:从城市 60 公里以内的每一座机场出发,不换乘能到达多少个不同的地方,合起来算。基辅、哈尔基夫、第聂伯罗、利沃夫、敖德萨和顿河畔罗斯托夫都读作 0:这些机场自 2022 年 2 月 24 日起对民航关闭,到 2026 年 8 月采集数据时仍然没开。这是这张图上唯一一件众包的治安分数捕捉不到的事,也是这里唯一一个有明摆着的保质期的数字——乌克兰已在 2026 年初着手筹备,要分阶段重开利沃夫和基辅的两座机场。
本页原文是英文,这里是译本。数字和标签各语言完全一样,翻译的只是说明文字。英文原文。
每个数字从哪里来
这里用到的数字有 9 个来自 Numbeo:12 个滑块里的 7 个,加上横轴背后那两个生活成本数值。它们全部取自 2026 年年中版——一份定在某一天的快照,而不是网站默认显示、一直在滚动的“当前”数字,所以这张图不会在你两次来访之间悄悄挪位置。这些数字几乎都是 Numbeo 的访客就自己所住城市填报的,不是官方统计。治安、医疗和污染是意见问卷:每个回答按 −2 到 +2 打分,再把平均值拉伸到 0–100 的刻度上。通勤则是人们报上来的一个普通数字,单位是分钟。生活成本、购买力和房价背后的价格与工资,是成千上万条各自独立的填报。只有气候是从实测天气算出来的,跟谁的意见都无关。
- 治安
- 向网站访客问的 15 道题,问的都是他们自己住的城市:白天独自走路、夜里独自走路各有多安全,以及有多担心被抢、车被偷、遭到殴打或辱骂、财物被盗、腐败和行贿。每个回答都打分,15 道取平均,再把平均值拉伸到 0 到 100 的刻度上。它正好是 Numbeo 犯罪指数的反转,所以这里数字越高,城市越安全。
- 医疗
- 网站访客为自己实际能享受到的医疗打分,共 7 个方面:医生水平如何、多快能看上、设备新不新、诊断准不准、医护态度好不好、要等多久、花多少钱。花费算双倍,抵得上另外 6 项里的任意 2 项。
- 通勤路短
- 这不是印象分,而是填报上来的数字:访客说自己单程上班要多少分钟、坐什么去。Numbeo 的指数是通勤越长越难受就越高;本页把它翻过来,所以这里数字越高,说明人们报上来的路程越短。
- 空气干净
- Numbeo 的污染问卷:居民为空气和饮用水、垃圾处理得好不好和街道干不干净、噪音和夜间灯光、以及绿地多少各打一个分。结果由空气质量主导——各部分的权重加起来是 14.5,空气一项就占 7,差不多是这个数字的一半。这里做了反转,数字越高越干净。
- 气候
- 唯一一项建立在实测而非意见之上的输入。它由气温、露点和体感湿热指数(humidex)算出——humidex 把温度和湿度合在一起,说明空气实际感觉有多热;高于 31 °C 的酷热、低于 8 °C 的严寒,以及难受到一定程度的湿度,都要扣分。温和、少极端天气的城市得分高。
- 购买力
- 城市的平均税后工资,除以当地物价的开销,以纽约为 100。得分 120,意思是一份本地工资在那里买到的东西,比一份纽约工资在纽约买到的多 20 %。工资由网站访客自己填报,所以凡是回答者偏向外派人员和技术从业者的地方,这个指数都读得过高——海得拉巴 164.7 对孟买 63.1,是最扎眼的一例。Numbeo 这 9 个数字里,就它最松。
- 买得起房
- 一套中等住房的价格,除以一个中等家庭的年收入——也就是说,若一家人别的什么都不花,一套房子要花掉多少个整年的全部收入。这里的中等指中位数:一半在这个数之上,一半在它之下。数值低才是好结果,所以本页把它翻了过来,数字越高,房子越够得着。
- 成本(横轴)
- 食品、餐饮、交通和水电煤凑成一个篮子,价格由网站访客填报,纽约固定为 100:一座城市是 41,就是同一个篮子在这里只要纽约物价的 41 %。含租金的那一版,再把每月的房租加进这个篮子——图表上方那个开关,改的就只有这一处。
12 个滑块里有 4 个来自 OpenStreetMap,全都在同一个 10 公里的圆里数。每一项都是一次查询,问地图有多少个对象带着某个标签——对节点、路径和关系跑一遍 Overpass 的 out count,时间是 2026 年 8 月。Overpass 是查询 OpenStreetMap 的公共服务;标签则是制图者挂在对象上、用来说明它是什么的东西。用到的标签原样列在下面,任何人都可以照着把计数重做一遍,也可以照着质疑这些选择:
- 文化与夜生活
- 文化数的是
tourism=museum、tourism=gallery、amenity=theatre、amenity=arts_centre和amenity=cinema,夜生活再加上amenity=bar、amenity=pub和amenity=nightclub。两组加成一个总数,所以一座城市光靠博物馆、光靠酒吧,或者两样都靠,都能在这一项上排到前面。 - 无车生活
- 能上火车或有轨电车的地方,数
railway=station、railway=halt和railway=tram_stop,再加上标着highway=pedestrian的街道,也就是不通汽车的街。地铁出入口是故意排掉的:通往同一个车站的每一段楼梯在地图上都是独立的一个点,真数进去,等于白送任何一座有地铁的城市几百个站。公交站也采了,但只当作对地图本身的检验——几乎每座城市都遍地都是,几乎分不出城市之间的差别。重建数据时改过定义的只有这一项,所以它的数字和本图第一版的出入,远不是寻常的地图漂移能解释的:吉隆坡从 10 个站变成了 118 个。 - 儿童配套
leisure=playground、leisure=park、amenity=school和amenity=library加在一起。有一条提醒:儿童游乐场在俄罗斯和欧洲被标进地图的彻底程度,远高于亚洲和拉美,而数据本身说不清这道差距里有多少是真的建得多、有多少只是制图习惯不同。这一项要在同一地区内部比城市,别跨地区比。- 高校规模
amenity=university加上amenity=college。有两点提醒。它量的是校园占了多大地方,而不是有几所学校:美国的校园在地图上是一整块大多边形,欧洲的大学则是散落的一栋栋房子。另外,college在不同国家说的不是一回事——在法国它指 collège,也就是收 11 到 15 岁孩子的学校,所以巴黎显示有 407 所,而大学只有 149 所。法国城市在这一项上被抬高了。
直飞目的地——OurAirports 和维基百科。市中心 60 公里以内、有定期客运航班的机场,全部取自 OurAirports,它们的通航城市表从维基百科上读;再把这些机场的目的地合并起来,免得一座城市有两个机场时,同一个地方被数上两遍。卡住 60 公里这条线,是不让卫星城把旁边首都的枢纽算到自己头上。只有 6 座城市数出 0——基辅、哈尔基夫、第聂伯罗、利沃夫、敖德萨和顿河畔罗斯托夫。这 6 座自 2022 年 2 月 24 日起都对民航关闭:乌克兰空域封锁,俄罗斯在顿河畔罗斯托夫的普拉托夫机场也一直没有重开。乌克兰 2026 年初开始筹备分阶段重开利沃夫和基辅的两座机场,但直到做这份快照的时候,一班民航航班也还没有飞过。
这里的每一个数字,都在 2026 年 8 月 26 日从源头重建了一遍,然后逐个核对。2 727 个 Numbeo 数值——303 座城市乘 9 项指标——逐行比对了公布的年中表格,没有一个对不上。第二道检验是独立的:拿我们自己的 8 个字段,把 Numbeo 自家的生活质量指数重算一遍,303 座城市的结果全都落在公布值的 0.14 分以内。这道检验的分量比看上去重:只有当每个数值都待在正确的城市上,它才可能算对,所以它同时排除了整行数据滑到别的城市名下的可能。
OpenStreetMap 那一层没法拿去和公布的表格核对,因为根本没有这样的表格——所以干脆照上面列出的标签,把 303 座城市从头重采了一遍。大学和学院在 303 座城市里有 298 座采回来一模一样,夜生活 242 座,步行街 285 座;公园、儿童游乐场、学校和图书馆动了 1 % 上下,这是一张人天天在编辑的地图正常的漂移。有两座城市采回来几乎是空的,这牵出了一个真的缺陷:宿务和格但斯克,地理编码器给回来的是外围行政区的中心,而不是市中心,10 公里的圆整个落错了地方。两座都手工改正,重新采过。
航线也把 303 座城市重采了一遍,这一轮又抖出它自己的 3 处毛病:标题带变音符号的机场页面会无声无息地抓取失败;OurAirports 库里有一座机场,本该指向维基百科的地方放的是一个 LinkedIn 主页;还有空结果会抢在备用查询跑起来之前就被写进缓存。布拉格、亚特兰大、克拉科夫、明尼阿波利斯、达卡和加拉加斯,都因此读成了 0。改正后的这一轮让寻常城市变动 4 % 左右,但它修好的是彻头彻尾的错误:夏洛特原先记着 15 个直飞目的地,实际有 200 个。仍有 6 座城市读作 0——基辅、哈尔基夫、第聂伯罗、利沃夫、敖德萨和顿河畔罗斯托夫——这一个不是缺陷:那些机场自 2022 年 2 月起就对民航关闭了。