From c0ccf2be5613e7e14aef083c5ef0297a5a2ad11e Mon Sep 17 00:00:00 2001 From: Sabina Firtala Date: Tue, 16 Dec 2025 13:37:00 +0200 Subject: [PATCH] Analysis feedback --- ...msterdam_v4(may2026)_charts_feedback.ipynb | 26051 ++++++++++++++++ 1 file changed, 26051 insertions(+) create mode 100644 Hotels_Amsterdam_v4(may2026)_charts_feedback.ipynb diff --git a/Hotels_Amsterdam_v4(may2026)_charts_feedback.ipynb b/Hotels_Amsterdam_v4(may2026)_charts_feedback.ipynb new file mode 100644 index 0000000..1b72476 --- /dev/null +++ b/Hotels_Amsterdam_v4(may2026)_charts_feedback.ipynb @@ -0,0 +1,26051 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "d6bdc083", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "299dcb79", + "metadata": {}, + "outputs": [], + "source": [ + "df_hotels = pd.read_csv(\"data/Amsterdam_hotels_220(may2026).csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "04efc9d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idnameranking_positionstarsreview_scorereview_countpricecurrencylatitudelongitude
02193502Hyatt Regency Amsterdam058.42869580.969519USD52.3617984.911744
110014507Chasse Residency Hotel148.93874303.130889USD52.3519024.924964
210502Swissôtel Amsterdam248.13679432.324478USD52.3735024.893312
34827244Holiday Inn - the niu, Fender Amsterdam348.44817244.403195USD52.3689674.946342
46331862Holiday Inn Express Amsterdam - North Riversid...438.212096233.489996USD52.3841044.919524
\n", + "
" + ], + "text/plain": [ + " hotel_id name \\\n", + "0 2193502 Hyatt Regency Amsterdam \n", + "1 10014507 Chasse Residency Hotel \n", + "2 10502 Swissôtel Amsterdam \n", + "3 4827244 Holiday Inn - the niu, Fender Amsterdam \n", + "4 6331862 Holiday Inn Express Amsterdam - North Riversid... \n", + "\n", + " ranking_position stars review_score review_count price currency \\\n", + "0 0 5 8.4 2869 580.969519 USD \n", + "1 1 4 8.9 3874 303.130889 USD \n", + "2 2 4 8.1 3679 432.324478 USD \n", + "3 3 4 8.4 4817 244.403195 USD \n", + "4 4 3 8.2 12096 233.489996 USD \n", + "\n", + " latitude longitude \n", + "0 52.361798 4.911744 \n", + "1 52.351902 4.924964 \n", + "2 52.373502 4.893312 \n", + "3 52.368967 4.946342 \n", + "4 52.384104 4.919524 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6cf5ccc1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idnameranking_positionstarsreview_scorereview_countpricecurrencylatitudelongitude
02193502Hyatt Regency Amsterdam058.42869580.97USD52.3617984.911744
110014507Chasse Residency Hotel148.93874303.13USD52.3519024.924964
210502Swissôtel Amsterdam248.13679432.32USD52.3735024.893312
34827244Holiday Inn - the niu, Fender Amsterdam348.44817244.40USD52.3689674.946342
46331862Holiday Inn Express Amsterdam - North Riversid...438.212096233.49USD52.3841044.919524
511524Mövenpick Hotel Amsterdam City Centre548.56343383.23USD52.3778244.914142
614238858Hotel V Oosterpark648.9134439.00USD52.3618704.922707
7535637Hans Brinker Hostel Amsterdam708.012687359.75USD52.3636794.888055
89371917Citadines Canal Amsterdam848.81735406.07USD52.3610264.893588
910422ibis Amsterdam Centre937.79837374.75USD52.3795424.896965
1010643Renaissance Amsterdam Hotel1008.0660495.09USD52.3777684.894381
11298608Hotel Van Gogh1138.24758363.57USD52.3590564.880149
121392565Mercure Amsterdam Sloterdijk Station1248.55026250.07USD52.3879114.834296
131926560Ruby Emma Hotel Amsterdam1348.78811243.83USD52.3383474.920860
14545708Hampton By Hilton Amsterdam Arena Boulevard1438.113132235.57USD52.3130604.948094
1510442Park Plaza Victoria Amsterdam1548.68717489.82USD52.3773484.897775
167060204Inntel Hotels Amsterdam Landmark1648.210359291.52USD52.3734404.928435
1710130Apollo Hotel Amsterdam, a Tribute Portfolio Hotel1748.51343283.23USD52.3485734.885107
18288883DoubleTree by Hilton Amsterdam Centraal Station1848.31052318.95USD52.3767134.905669
191042748Holiday Inn Express Amsterdam Arena Towers by IHG1937.917901210.65USD52.3095784.941870
2011616ITC Hotel027.22144466.54USD52.3622254.898582
213041919Holiday Inn Express Amsterdam - City Hall by IHG138.33203517.74USD52.3705084.908350
222007116Sir Adam Hotel, part of Sircle Collection248.71361369.27USD52.3837844.902409
2310170543Bob W Amsterdam Noord348.63464402.02USD52.3965944.906841
242742213Monet Garden Hotel Amsterdam449.13901385.54USD52.3697884.907262
2510002879Bob W Oosterpark548.6978286.66USD52.3549494.928503
26341228Holiday Inn Express Amsterdam - Sloterdijk Sta...638.19671201.77USD52.3882024.837455
272593669Via Amsterdam738.115319180.16USD52.3262074.953709
283693027Postillion Hotel Amsterdam848.510289231.36USD52.3336124.922194
29235613Hotel Hortus908.03553241.10USD52.3667714.909050
302293774Park Inn by Radisson Amsterdam City West1048.420821225.43USD52.3901374.842565
311092100XO Hotels Couture1148.79124201.28USD52.3511044.841254
325737589Clayton Hotel Amsterdam American1248.54538451.23USD52.3638934.881296
33866477DoubleTree by Hilton Amsterdam - NDSM Wharf1348.53036321.46USD52.4006574.893502
344609378Olympic Hotel1448.68693261.53USD52.3414534.853175
\n", + "
" + ], + "text/plain": [ + " hotel_id name \\\n", + "0 2193502 Hyatt Regency Amsterdam \n", + "1 10014507 Chasse Residency Hotel \n", + "2 10502 Swissôtel Amsterdam \n", + "3 4827244 Holiday Inn - the niu, Fender Amsterdam \n", + "4 6331862 Holiday Inn Express Amsterdam - North Riversid... \n", + "5 11524 Mövenpick Hotel Amsterdam City Centre \n", + "6 14238858 Hotel V Oosterpark \n", + "7 535637 Hans Brinker Hostel Amsterdam \n", + "8 9371917 Citadines Canal Amsterdam \n", + "9 10422 ibis Amsterdam Centre \n", + "10 10643 Renaissance Amsterdam Hotel \n", + "11 298608 Hotel Van Gogh \n", + "12 1392565 Mercure Amsterdam Sloterdijk Station \n", + "13 1926560 Ruby Emma Hotel Amsterdam \n", + "14 545708 Hampton By Hilton Amsterdam Arena Boulevard \n", + "15 10442 Park Plaza Victoria Amsterdam \n", + "16 7060204 Inntel Hotels Amsterdam Landmark \n", + "17 10130 Apollo Hotel Amsterdam, a Tribute Portfolio Hotel \n", + "18 288883 DoubleTree by Hilton Amsterdam Centraal Station \n", + "19 1042748 Holiday Inn Express Amsterdam Arena Towers by IHG \n", + "20 11616 ITC Hotel \n", + "21 3041919 Holiday Inn Express Amsterdam - City Hall by IHG \n", + "22 2007116 Sir Adam Hotel, part of Sircle Collection \n", + "23 10170543 Bob W Amsterdam Noord \n", + "24 2742213 Monet Garden Hotel Amsterdam \n", + "25 10002879 Bob W Oosterpark \n", + "26 341228 Holiday Inn Express Amsterdam - Sloterdijk Sta... \n", + "27 2593669 Via Amsterdam \n", + "28 3693027 Postillion Hotel Amsterdam \n", + "29 235613 Hotel Hortus \n", + "30 2293774 Park Inn by Radisson Amsterdam City West \n", + "31 1092100 XO Hotels Couture \n", + "32 5737589 Clayton Hotel Amsterdam American \n", + "33 866477 DoubleTree by Hilton Amsterdam - NDSM Wharf \n", + "34 4609378 Olympic Hotel \n", + "\n", + " ranking_position stars review_score review_count price currency \\\n", + "0 0 5 8.4 2869 580.97 USD \n", + "1 1 4 8.9 3874 303.13 USD \n", + "2 2 4 8.1 3679 432.32 USD \n", + "3 3 4 8.4 4817 244.40 USD \n", + "4 4 3 8.2 12096 233.49 USD \n", + "5 5 4 8.5 6343 383.23 USD \n", + "6 6 4 8.9 134 439.00 USD \n", + "7 7 0 8.0 12687 359.75 USD \n", + "8 8 4 8.8 1735 406.07 USD \n", + "9 9 3 7.7 9837 374.75 USD \n", + "10 10 0 8.0 660 495.09 USD \n", + "11 11 3 8.2 4758 363.57 USD \n", + "12 12 4 8.5 5026 250.07 USD \n", + "13 13 4 8.7 8811 243.83 USD \n", + "14 14 3 8.1 13132 235.57 USD \n", + "15 15 4 8.6 8717 489.82 USD \n", + "16 16 4 8.2 10359 291.52 USD \n", + "17 17 4 8.5 1343 283.23 USD \n", + "18 18 4 8.3 1052 318.95 USD \n", + "19 19 3 7.9 17901 210.65 USD \n", + "20 0 2 7.2 2144 466.54 USD \n", + "21 1 3 8.3 3203 517.74 USD \n", + "22 2 4 8.7 1361 369.27 USD \n", + "23 3 4 8.6 3464 402.02 USD \n", + "24 4 4 9.1 3901 385.54 USD \n", + "25 5 4 8.6 978 286.66 USD \n", + "26 6 3 8.1 9671 201.77 USD \n", + "27 7 3 8.1 15319 180.16 USD \n", + "28 8 4 8.5 10289 231.36 USD \n", + "29 9 0 8.0 3553 241.10 USD \n", + "30 10 4 8.4 20821 225.43 USD \n", + "31 11 4 8.7 9124 201.28 USD \n", + "32 12 4 8.5 4538 451.23 USD \n", + "33 13 4 8.5 3036 321.46 USD \n", + "34 14 4 8.6 8693 261.53 USD \n", + "\n", + " latitude longitude \n", + "0 52.361798 4.911744 \n", + "1 52.351902 4.924964 \n", + "2 52.373502 4.893312 \n", + "3 52.368967 4.946342 \n", + "4 52.384104 4.919524 \n", + "5 52.377824 4.914142 \n", + "6 52.361870 4.922707 \n", + "7 52.363679 4.888055 \n", + "8 52.361026 4.893588 \n", + "9 52.379542 4.896965 \n", + "10 52.377768 4.894381 \n", + "11 52.359056 4.880149 \n", + "12 52.387911 4.834296 \n", + "13 52.338347 4.920860 \n", + "14 52.313060 4.948094 \n", + "15 52.377348 4.897775 \n", + "16 52.373440 4.928435 \n", + "17 52.348573 4.885107 \n", + "18 52.376713 4.905669 \n", + "19 52.309578 4.941870 \n", + "20 52.362225 4.898582 \n", + "21 52.370508 4.908350 \n", + "22 52.383784 4.902409 \n", + "23 52.396594 4.906841 \n", + "24 52.369788 4.907262 \n", + "25 52.354949 4.928503 \n", + "26 52.388202 4.837455 \n", + "27 52.326207 4.953709 \n", + "28 52.333612 4.922194 \n", + "29 52.366771 4.909050 \n", + "30 52.390137 4.842565 \n", + "31 52.351104 4.841254 \n", + "32 52.363893 4.881296 \n", + "33 52.400657 4.893502 \n", + "34 52.341453 4.853175 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels[\"price\"] = df_hotels[\"price\"].round(2)\n", + "df_hotels.head(35)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3f7070a3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 220 entries, 0 to 219\n", + "Data columns (total 10 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 hotel_id 220 non-null int64 \n", + " 1 name 220 non-null object \n", + " 2 ranking_position 220 non-null int64 \n", + " 3 stars 220 non-null int64 \n", + " 4 review_score 220 non-null float64\n", + " 5 review_count 220 non-null int64 \n", + " 6 price 220 non-null float64\n", + " 7 currency 220 non-null object \n", + " 8 latitude 220 non-null float64\n", + " 9 longitude 220 non-null float64\n", + "dtypes: float64(4), int64(4), object(2)\n", + "memory usage: 17.3+ KB\n" + ] + } + ], + "source": [ + "df_hotels.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "64f2fda0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idranking_positionstarsreview_scorereview_countpricelatitudelongitude
count220.00220.00220.00220.00220.00220.00220.00220.00
mean1998314.229.503.238.213683.35429.0352.364.89
std3035410.415.781.310.863558.81297.880.020.03
min10007.000.000.000.000.00177.5252.294.77
25%10915.754.753.007.901356.50256.9352.354.88
50%413599.009.504.008.302540.00356.9652.364.89
75%2689821.7514.254.008.704640.25468.7352.374.91
max14238858.0019.005.0010.0020821.002558.1852.405.01
\n", + "
" + ], + "text/plain": [ + " hotel_id ranking_position stars review_score review_count \\\n", + "count 220.00 220.00 220.00 220.00 220.00 \n", + "mean 1998314.22 9.50 3.23 8.21 3683.35 \n", + "std 3035410.41 5.78 1.31 0.86 3558.81 \n", + "min 10007.00 0.00 0.00 0.00 0.00 \n", + "25% 10915.75 4.75 3.00 7.90 1356.50 \n", + "50% 413599.00 9.50 4.00 8.30 2540.00 \n", + "75% 2689821.75 14.25 4.00 8.70 4640.25 \n", + "max 14238858.00 19.00 5.00 10.00 20821.00 \n", + "\n", + " price latitude longitude \n", + "count 220.00 220.00 220.00 \n", + "mean 429.03 52.36 4.89 \n", + "std 297.88 0.02 0.03 \n", + "min 177.52 52.29 4.77 \n", + "25% 256.93 52.35 4.88 \n", + "50% 356.96 52.36 4.89 \n", + "75% 468.73 52.37 4.91 \n", + "max 2558.18 52.40 5.01 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.describe().round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e2470c2b", + "metadata": {}, + "outputs": [], + "source": [ + "# there are some hotels without stars and some without reviews - important to check the relevance for the analysis\n", + "# the maximum price is very high - need to check for outliars\n", + "# review score 10 is the maimum possible - need to check for relevance\n", + "\n", + "# SABINA COMMENT: Relevance here is quite vague, what do you mean?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "666cab4b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idnameranking_positionstarsreview_scorereview_countpricecurrencylatitudelongitude
56276447Canal House1648.7905602.76USD52.3762444.886327
5910276Banks Mansion - All Inclusive Boutique Hotel1948.8935602.76USD52.3653834.893093
611854117Camp-Inn Hotel126.34361195.50USD52.3826264.857618
646662479Triple G Hotels436.74201820.46USD52.3827494.857840
791358382W Amsterdam1957.6891748.06USD52.3727874.890006
8411463Mozart Hotel427.75080913.66USD52.3635704.886230
8611761441The Diamond Amsterdam658.4563610.40USD52.3637934.883316
10423883Hotel Allure437.62375720.87USD52.3618294.910569
1056105413Met Hotel Amsterdam548.916971123.80USD52.3626544.835317
13514046The IF Boutique hotel1538.61275683.41USD52.3590054.902716
1394544808Studio Koggeschip1909.479929.30USD52.3773254.893056
14710527Pulitzer Amsterdam758.91019893.35USD52.3728244.883282
15110112OZO Hotels Cordial Amsterdam1136.93230700.47USD52.3707034.892417
155438120Andaz Amsterdam, Prinsengracht, By Hyatt1558.8751795.76USD52.3678574.882831
15811574Belfort Hotel1836.044761027.86USD52.3576804.850442
17610485Hotel Abba1617.53173621.79USD52.3627094.874610
17710364Tivoli Doelen Amsterdam Hotel1758.81501616.08USD52.3682194.895726
197349348Conservatorium Hotel - Operated by Mandarin Or...1759.12511081.16USD52.3585874.878488
19910534InterContinental Amstel Amsterdam by IHG1958.6317873.05USD52.3600424.905465
20010518Sofitel Legend The Grand Amsterdam059.0852842.59USD52.3711984.895400
20212635420Rosewood Amsterdam258.7591332.42USD52.3657364.883109
2036391989Leidse Square 5 star Luxury Apartment309.794981.15USD52.3653334.881912
20410007OZO Hotels Armada Amsterdam436.51994875.59USD52.3640554.898446
20610282De L’Europe Amsterdam – The Leading Hotels of ...659.2394913.66USD52.3676394.894205
2081014256Waldorf Astoria Amsterdam859.52161532.06USD52.3646384.896442
2128025958Pillows Grand Boutique Hotel Maurits at the Pa...1259.4646747.42USD52.3621944.919684
2132109446Luxurious 110m² 3br Houseboat in Amsterdam Cen...1300.002558.18USD52.3712044.903569
2142785940Hotel TwentySeven - Small Luxury Hotels of the...1459.62591713.11USD52.3724914.893325
2181139273Crane Hotel Faralda1859.7151407.03USD52.3992804.894732
219393283Breitner House19010.035881.93USD52.3597284.924482
\n", + "
" + ], + "text/plain": [ + " hotel_id name \\\n", + "56 276447 Canal House \n", + "59 10276 Banks Mansion - All Inclusive Boutique Hotel \n", + "61 1854117 Camp-Inn Hotel \n", + "64 6662479 Triple G Hotels \n", + "79 1358382 W Amsterdam \n", + "84 11463 Mozart Hotel \n", + "86 11761441 The Diamond Amsterdam \n", + "104 23883 Hotel Allure \n", + "105 6105413 Met Hotel Amsterdam \n", + "135 14046 The IF Boutique hotel \n", + "139 4544808 Studio Koggeschip \n", + "147 10527 Pulitzer Amsterdam \n", + "151 10112 OZO Hotels Cordial Amsterdam \n", + "155 438120 Andaz Amsterdam, Prinsengracht, By Hyatt \n", + "158 11574 Belfort Hotel \n", + "176 10485 Hotel Abba \n", + "177 10364 Tivoli Doelen Amsterdam Hotel \n", + "197 349348 Conservatorium Hotel - Operated by Mandarin Or... \n", + "199 10534 InterContinental Amstel Amsterdam by IHG \n", + "200 10518 Sofitel Legend The Grand Amsterdam \n", + "202 12635420 Rosewood Amsterdam \n", + "203 6391989 Leidse Square 5 star Luxury Apartment \n", + "204 10007 OZO Hotels Armada Amsterdam \n", + "206 10282 De L’Europe Amsterdam – The Leading Hotels of ... \n", + "208 1014256 Waldorf Astoria Amsterdam \n", + "212 8025958 Pillows Grand Boutique Hotel Maurits at the Pa... \n", + "213 2109446 Luxurious 110m² 3br Houseboat in Amsterdam Cen... \n", + "214 2785940 Hotel TwentySeven - Small Luxury Hotels of the... \n", + "218 1139273 Crane Hotel Faralda \n", + "219 393283 Breitner House \n", + "\n", + " ranking_position stars review_score review_count price currency \\\n", + "56 16 4 8.7 905 602.76 USD \n", + "59 19 4 8.8 935 602.76 USD \n", + "61 1 2 6.3 436 1195.50 USD \n", + "64 4 3 6.7 420 1820.46 USD \n", + "79 19 5 7.6 891 748.06 USD \n", + "84 4 2 7.7 5080 913.66 USD \n", + "86 6 5 8.4 563 610.40 USD \n", + "104 4 3 7.6 2375 720.87 USD \n", + "105 5 4 8.9 1697 1123.80 USD \n", + "135 15 3 8.6 1275 683.41 USD \n", + "139 19 0 9.4 79 929.30 USD \n", + "147 7 5 8.9 1019 893.35 USD \n", + "151 11 3 6.9 3230 700.47 USD \n", + "155 15 5 8.8 751 795.76 USD \n", + "158 18 3 6.0 4476 1027.86 USD \n", + "176 16 1 7.5 3173 621.79 USD \n", + "177 17 5 8.8 1501 616.08 USD \n", + "197 17 5 9.1 251 1081.16 USD \n", + "199 19 5 8.6 317 873.05 USD \n", + "200 0 5 9.0 852 842.59 USD \n", + "202 2 5 8.7 59 1332.42 USD \n", + "203 3 0 9.7 94 981.15 USD \n", + "204 4 3 6.5 1994 875.59 USD \n", + "206 6 5 9.2 394 913.66 USD \n", + "208 8 5 9.5 216 1532.06 USD \n", + "212 12 5 9.4 646 747.42 USD \n", + "213 13 0 0.0 0 2558.18 USD \n", + "214 14 5 9.6 259 1713.11 USD \n", + "218 18 5 9.7 15 1407.03 USD \n", + "219 19 0 10.0 35 881.93 USD \n", + "\n", + " latitude longitude \n", + "56 52.376244 4.886327 \n", + "59 52.365383 4.893093 \n", + "61 52.382626 4.857618 \n", + "64 52.382749 4.857840 \n", + "79 52.372787 4.890006 \n", + "84 52.363570 4.886230 \n", + "86 52.363793 4.883316 \n", + "104 52.361829 4.910569 \n", + "105 52.362654 4.835317 \n", + "135 52.359005 4.902716 \n", + "139 52.377325 4.893056 \n", + "147 52.372824 4.883282 \n", + "151 52.370703 4.892417 \n", + "155 52.367857 4.882831 \n", + "158 52.357680 4.850442 \n", + "176 52.362709 4.874610 \n", + "177 52.368219 4.895726 \n", + "197 52.358587 4.878488 \n", + "199 52.360042 4.905465 \n", + "200 52.371198 4.895400 \n", + "202 52.365736 4.883109 \n", + "203 52.365333 4.881912 \n", + "204 52.364055 4.898446 \n", + "206 52.367639 4.894205 \n", + "208 52.364638 4.896442 \n", + "212 52.362194 4.919684 \n", + "213 52.371204 4.903569 \n", + "214 52.372491 4.893325 \n", + "218 52.399280 4.894732 \n", + "219 52.359728 4.924482 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels[df_hotels[\"price\"] > 600]\n", + "# SABINA COMMENT: Why 600? What does this number represent?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a0b0cbd4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idnameranking_positionstarsreview_scorereview_countpricecurrencylatitudelongitude
7535637Hans Brinker Hostel Amsterdam708.012687359.75USD52.3636794.888055
1010643Renaissance Amsterdam Hotel1008.0660495.09USD52.3777684.894381
29235613Hotel Hortus908.03553241.10USD52.3667714.909050
8010248De Bedstee Boutique Capsules008.22278235.08USD52.3557914.877757
10612209886Limehome Amsterdam Gatwickstraat607.7866370.35USD52.3905284.841889
1171580580Pension Homeland1708.63694267.24USD52.3730484.916859
1394544808Studio Koggeschip1909.479929.30USD52.3773254.893056
1409367966Hotel Jansen Amsterdam Bajeskwartier008.44172211.28USD52.3399544.924154
145910327Golden Mansion Aparthotel508.21709329.93USD52.3590164.897946
1501419228Amsterdam-Houseboat-Amstel1008.9226517.57USD52.3581034.897197
1541015063hotel calisto1408.6804325.49USD52.3823604.887462
1571067088Volkshotel1708.75278201.00USD52.3537114.911916
16210940Heart of Amsterdam Hostel207.93284391.79USD52.3723324.897582
1706458577Outside Inn1009.01501235.61USD52.3265354.931027
18211497597Limehome Amsterdam Leidsekruisstraat207.8318418.65USD52.3636484.885375
1868879628City Rooms Amsterdam Hemonystraat - Digital ac...607.4249303.64USD52.3581304.902205
1924226671Skotel Amsterdam, Hotelschool The Hague1208.91698241.10USD52.3692894.843877
2036391989Leidse Square 5 star Luxury Apartment309.794981.15USD52.3653334.881912
2132109446Luxurious 110m² 3br Houseboat in Amsterdam Cen...1300.002558.18USD52.3712044.903569
219393283Breitner House19010.035881.93USD52.3597284.924482
\n", + "
" + ], + "text/plain": [ + " hotel_id name \\\n", + "7 535637 Hans Brinker Hostel Amsterdam \n", + "10 10643 Renaissance Amsterdam Hotel \n", + "29 235613 Hotel Hortus \n", + "80 10248 De Bedstee Boutique Capsules \n", + "106 12209886 Limehome Amsterdam Gatwickstraat \n", + "117 1580580 Pension Homeland \n", + "139 4544808 Studio Koggeschip \n", + "140 9367966 Hotel Jansen Amsterdam Bajeskwartier \n", + "145 910327 Golden Mansion Aparthotel \n", + "150 1419228 Amsterdam-Houseboat-Amstel \n", + "154 1015063 hotel calisto \n", + "157 1067088 Volkshotel \n", + "162 10940 Heart of Amsterdam Hostel \n", + "170 6458577 Outside Inn \n", + "182 11497597 Limehome Amsterdam Leidsekruisstraat \n", + "186 8879628 City Rooms Amsterdam Hemonystraat - Digital ac... \n", + "192 4226671 Skotel Amsterdam, Hotelschool The Hague \n", + "203 6391989 Leidse Square 5 star Luxury Apartment \n", + "213 2109446 Luxurious 110m² 3br Houseboat in Amsterdam Cen... \n", + "219 393283 Breitner House \n", + "\n", + " ranking_position stars review_score review_count price currency \\\n", + "7 7 0 8.0 12687 359.75 USD \n", + "10 10 0 8.0 660 495.09 USD \n", + "29 9 0 8.0 3553 241.10 USD \n", + "80 0 0 8.2 2278 235.08 USD \n", + "106 6 0 7.7 866 370.35 USD \n", + "117 17 0 8.6 3694 267.24 USD \n", + "139 19 0 9.4 79 929.30 USD \n", + "140 0 0 8.4 4172 211.28 USD \n", + "145 5 0 8.2 1709 329.93 USD \n", + "150 10 0 8.9 226 517.57 USD \n", + "154 14 0 8.6 804 325.49 USD \n", + "157 17 0 8.7 5278 201.00 USD \n", + "162 2 0 7.9 3284 391.79 USD \n", + "170 10 0 9.0 1501 235.61 USD \n", + "182 2 0 7.8 318 418.65 USD \n", + "186 6 0 7.4 249 303.64 USD \n", + "192 12 0 8.9 1698 241.10 USD \n", + "203 3 0 9.7 94 981.15 USD \n", + "213 13 0 0.0 0 2558.18 USD \n", + "219 19 0 10.0 35 881.93 USD \n", + "\n", + " latitude longitude \n", + "7 52.363679 4.888055 \n", + "10 52.377768 4.894381 \n", + "29 52.366771 4.909050 \n", + "80 52.355791 4.877757 \n", + "106 52.390528 4.841889 \n", + "117 52.373048 4.916859 \n", + "139 52.377325 4.893056 \n", + "140 52.339954 4.924154 \n", + "145 52.359016 4.897946 \n", + "150 52.358103 4.897197 \n", + "154 52.382360 4.887462 \n", + "157 52.353711 4.911916 \n", + "162 52.372332 4.897582 \n", + "170 52.326535 4.931027 \n", + "182 52.363648 4.885375 \n", + "186 52.358130 4.902205 \n", + "192 52.369289 4.843877 \n", + "203 52.365333 4.881912 \n", + "213 52.371204 4.903569 \n", + "219 52.359728 4.924482 " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels[df_hotels[\"stars\"] == 0]\n", + "# there are 20 hotels without star indication, but they have many reviews so I keep them \n", + "# SABINA COMMENT: Need to mention that many are Hostels, Capsules, Aparthotels, except for Renaissance Amsterdam Hotel which I'd probably look into" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "480df5d7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(df_hotels[df_hotels[\"stars\"] == 0])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "585a0279", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(df_hotels[df_hotels[\"review_score\"] == 0])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "63e62a4a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idnameranking_positionstarsreview_scorereview_countpricecurrencylatitudelongitude
2132109446Luxurious 110m² 3br Houseboat in Amsterdam Cen...1300.002558.18USD52.3712044.903569
\n", + "
" + ], + "text/plain": [ + " hotel_id name \\\n", + "213 2109446 Luxurious 110m² 3br Houseboat in Amsterdam Cen... \n", + "\n", + " ranking_position stars review_score review_count price currency \\\n", + "213 13 0 0.0 0 2558.18 USD \n", + "\n", + " latitude longitude \n", + "213 52.371204 4.903569 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels[df_hotels[\"review_score\"] == 0]\n", + "# there is one outliar listing with very high price and zero reviews and zero stars" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "8137bca7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(df_hotels[df_hotels[\"review_count\"] == 0])\n", + "# there are no hotels without reviews" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a17384b1", + "metadata": {}, + "outputs": [], + "source": [ + "df_hotels = df_hotels.drop(df_hotels[df_hotels[\"review_score\"] == 0].index)\n", + "\n", + "# dropping this outliar from the dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "85b0edcd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(df_hotels[df_hotels[\"review_count\"] == 0])" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7dfbfb2e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idnameranking_positionstarsreview_scorereview_countpricecurrencylatitudelongitude
219393283Breitner House19010.035881.93USD52.3597284.924482
\n", + "
" + ], + "text/plain": [ + " hotel_id name ranking_position stars review_score \\\n", + "219 393283 Breitner House 19 0 10.0 \n", + "\n", + " review_count price currency latitude longitude \n", + "219 35 881.93 USD 52.359728 4.924482 " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels[df_hotels[\"review_score\"] == 10.0]\n", + "# there is only one hotel with the highest possible score, it's an outliar" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "649a6f70", + "metadata": {}, + "outputs": [], + "source": [ + "df_hotels = df_hotels.drop(df_hotels[df_hotels[\"review_score\"] == 10.0].index)\n", + "# dropping this outliar\n", + "# SABINA COMMENT: Why are you removing this? Seems like a good place, just few reviews => high score" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "20892789", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "hotel_id 0\n", + "name 0\n", + "ranking_position 0\n", + "stars 0\n", + "review_score 0\n", + "review_count 0\n", + "price 0\n", + "currency 0\n", + "latitude 0\n", + "longitude 0\n", + "dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "fa3cdd93", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.duplicated().sum()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "d8017223", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.int64(0)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels[\"hotel_id\"].duplicated().sum()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "265b2996", + "metadata": {}, + "outputs": [], + "source": [ + "# further no duplicates or null values, so the data is clean and can be used for charts and analysis" + ] + }, + { + "cell_type": "markdown", + "id": "e7cce50c", + "metadata": {}, + "source": [ + "# Analysis\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "2191523b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotel_idranking_positionstarsreview_scorereview_countpricelatitudelongitude
count218.00218.00218.00218.00218.00218.00218.00218.00
mean2005166.979.443.268.243716.98417.1952.364.89
std3047402.145.761.270.653557.65259.950.020.03
min10007.000.000.006.0015.00177.5252.294.77
25%10911.254.253.007.901371.50255.5852.354.88
50%413599.009.004.008.302625.00354.2152.364.89
75%2697225.2514.004.008.704718.75465.5852.374.91
max14238858.0019.005.009.7020821.001820.4652.405.01
\n", + "
" + ], + "text/plain": [ + " hotel_id ranking_position stars review_score review_count \\\n", + "count 218.00 218.00 218.00 218.00 218.00 \n", + "mean 2005166.97 9.44 3.26 8.24 3716.98 \n", + "std 3047402.14 5.76 1.27 0.65 3557.65 \n", + "min 10007.00 0.00 0.00 6.00 15.00 \n", + "25% 10911.25 4.25 3.00 7.90 1371.50 \n", + "50% 413599.00 9.00 4.00 8.30 2625.00 \n", + "75% 2697225.25 14.00 4.00 8.70 4718.75 \n", + "max 14238858.00 19.00 5.00 9.70 20821.00 \n", + "\n", + " price latitude longitude \n", + "count 218.00 218.00 218.00 \n", + "mean 417.19 52.36 4.89 \n", + "std 259.95 0.02 0.03 \n", + "min 177.52 52.29 4.77 \n", + "25% 255.58 52.35 4.88 \n", + "50% 354.21 52.36 4.89 \n", + "75% 465.58 52.37 4.91 \n", + "max 1820.46 52.40 5.01 " + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.describe().round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03f520ec", + "metadata": {}, + "outputs": [], + "source": [ + "# the majority of the hotels have 4 stars with high review score and around 3 to 4 thousands reviews, their price on average around 350 USD per night\n", + "# SABINA COMMENT: Nice :) " + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "51c0bb0b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stars012345
count18.004.0014.0070.0091.0021.00
mean8.417.627.367.888.528.77
std0.610.340.560.640.370.56
min7.407.306.306.007.407.60
25%8.007.457.057.708.308.50
50%8.307.557.457.908.608.80
75%8.857.727.688.308.709.10
max9.708.108.308.909.309.70
\n", + "
" + ], + "text/plain": [ + "stars 0 1 2 3 4 5\n", + "count 18.00 4.00 14.00 70.00 91.00 21.00\n", + "mean 8.41 7.62 7.36 7.88 8.52 8.77\n", + "std 0.61 0.34 0.56 0.64 0.37 0.56\n", + "min 7.40 7.30 6.30 6.00 7.40 7.60\n", + "25% 8.00 7.45 7.05 7.70 8.30 8.50\n", + "50% 8.30 7.55 7.45 7.90 8.60 8.80\n", + "75% 8.85 7.72 7.68 8.30 8.70 9.10\n", + "max 9.70 8.10 8.30 8.90 9.30 9.70" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.groupby(\"stars\")[\"review_score\"].describe().round(2).T" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3f73b012", + "metadata": {}, + "outputs": [], + "source": [ + "# the biggest group is 4-star hotels and 3-star hotels showing the upper and mid segment are the primarial sector in Amsterdam" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3adfbede", + "metadata": {}, + "outputs": [], + "source": [ + "# Review scores increase with star rating, showing that higher-category hotels deliver stronger guest experiences. \n", + "# Unrated (0-star) hotels show rating similar to 4-star hotels\n", + "# 1- and 2-star properties show lower and more modest guest satisfaction\n", + "# The 3-star category is the most inconsistent, ranging from poorly rated to nearly 4-star quality. \n", + "# 4- and 5-star hotels show consistently high review scores\n", + "# general guest satisfaction is high for all categories\n", + "\n", + "# SABINA COMMENT: I think this would've been much easier to see with boxplots\n", + "# x-axis = star rating, y-axis = review_score" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "2504ac85", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stars012345
count18.004.0014.0070.0091.0021.00
mean2397.222263.752255.214641.694167.381065.43
std3020.951239.961474.744202.743371.201030.49
min79.00610.00436.0049.00134.0015.00
25%403.501663.001196.501921.251764.50317.00
50%1599.502593.501892.003197.003077.00751.00
75%3485.753194.252800.506075.755628.501501.00
max12687.003258.005340.0017901.0020821.003780.00
\n", + "
" + ], + "text/plain": [ + "stars 0 1 2 3 4 5\n", + "count 18.00 4.00 14.00 70.00 91.00 21.00\n", + "mean 2397.22 2263.75 2255.21 4641.69 4167.38 1065.43\n", + "std 3020.95 1239.96 1474.74 4202.74 3371.20 1030.49\n", + "min 79.00 610.00 436.00 49.00 134.00 15.00\n", + "25% 403.50 1663.00 1196.50 1921.25 1764.50 317.00\n", + "50% 1599.50 2593.50 1892.00 3197.00 3077.00 751.00\n", + "75% 3485.75 3194.25 2800.50 6075.75 5628.50 1501.00\n", + "max 12687.00 3258.00 5340.00 17901.00 20821.00 3780.00" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.groupby(\"stars\")[\"review_count\"].describe().round(2).T" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "691abdf2", + "metadata": {}, + "outputs": [], + "source": [ + "# 3- and 4-star hotels receive the highest number of reviews, meaning they are the most frequently booked and have the highest visibility on Booking.com\n", + "# 5-star hotels receive much less reviews, likely due to lower occupancy and higher prices — fewer guests, but often more premium stays\n", + "# 0-star hotels show surprising extremes, from very few to extremely high review counts, reflecting mixed visibility\n", + "# 1- and 2-star hotels have moderate but steady review volumes, indicating stable demand but not high popularity" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "51c79705", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
stars012345
count18.004.0014.0070.0091.0021.00
mean391.95507.59442.39378.24348.09834.05
std224.89162.51275.08240.80132.31382.22
min201.00266.48212.43177.52181.21312.42
25%241.10494.90287.97234.01247.46558.47
50%327.71571.04364.22347.66330.69748.06
75%411.94583.73413.20416.48412.08913.66
max981.15621.791195.501820.461123.801713.11
\n", + "
" + ], + "text/plain": [ + "stars 0 1 2 3 4 5\n", + "count 18.00 4.00 14.00 70.00 91.00 21.00\n", + "mean 391.95 507.59 442.39 378.24 348.09 834.05\n", + "std 224.89 162.51 275.08 240.80 132.31 382.22\n", + "min 201.00 266.48 212.43 177.52 181.21 312.42\n", + "25% 241.10 494.90 287.97 234.01 247.46 558.47\n", + "50% 327.71 571.04 364.22 347.66 330.69 748.06\n", + "75% 411.94 583.73 413.20 416.48 412.08 913.66\n", + "max 981.15 621.79 1195.50 1820.46 1123.80 1713.11" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_hotels.groupby(\"stars\")[\"price\"].describe().round(2).T" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "fbfd1add", + "metadata": {}, + "outputs": [], + "source": [ + "# 5-star hotels are clearly the most expensive, as expected\n", + "# 3-star hotels show the widest price range, from budget to luxury-like pricing\n", + "# 4-star hotels are cheaper on average than 1-star, 2-star, and 3-star hotels, which is unusual\n", + "# 1-star hotels are unexpectedly expensive, possibly due to very small sample size (only 4 hotels) or premium locations\n", + "# 0-star hotels also include some high-priced listings, indicating that star rating alone does not define price" + ] + }, + { + "cell_type": "markdown", + "id": "5a265020", + "metadata": {}, + "source": [ + "# Charts" + ] + }, + { + "cell_type": "markdown", + "id": "dc4a4b1e", + "metadata": {}, + "source": [ + "## in Plotly" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "a4ddaa39", + "metadata": {}, + "outputs": [], + "source": [ + "import plotly.express as px" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "810b77a1", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "alignmentgroup": "True", + "bingroup": "x", + "hovertemplate": "Price (USD)=%{x}
count=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "", + "nbinsx": 30, + "offsetgroup": "", + "orientation": "v", + "showlegend": false, + "type": "histogram", + "x": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "xaxis": "x", + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hotel Price Distribution (USD)" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Price (USD)" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.express as px\n", + "\n", + "fig = px.histogram(\n", + " df_hotels, \n", + " x=\"price\",\n", + " nbins=30,\n", + " title=\"Hotel Price Distribution (USD)\",\n", + " labels={\"price\": \"Price (USD)\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "f967f1b1", + "metadata": {}, + "outputs": [], + "source": [ + "# The price distribution of Amsterdam hotels is heavily concentrated between $200 and $500, indicating a strong mid-range market. \n", + "# A small number of premium hotels charge above $600 and pushing toward $1800. \n", + "# Budget hotels below $200 and ultra-luxury listings above $1200 are comparatively rare. \n", + "# Overall, the market shows a dense middle segment with only a limited supply of low-cost or high-end options." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "21a4bc02", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "alignmentgroup": "True", + "bingroup": "x", + "hovertemplate": "Review Score=%{x}
count=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "", + "nbinsx": 10, + "offsetgroup": "", + "orientation": "v", + "showlegend": false, + "type": "histogram", + "x": [ + 8.4, + 8.9, + 8.1, + 8.4, + 8.2, + 8.5, + 8.9, + 8, + 8.8, + 7.7, + 8, + 8.2, + 8.5, + 8.7, + 8.1, + 8.6, + 8.2, + 8.5, + 8.3, + 7.9, + 7.2, + 8.3, + 8.7, + 8.6, + 9.1, + 8.6, + 8.1, + 8.1, + 8.5, + 8, + 8.4, + 8.7, + 8.5, + 8.5, + 8.6, + 8.5, + 7.7, + 8.8, + 7.9, + 8.2, + 8.2, + 8.6, + 8, + 7.8, + 8.3, + 8.5, + 8.6, + 8.6, + 8.7, + 8.8, + 8.4, + 8.7, + 8.6, + 8.2, + 8.4, + 9.2, + 8.7, + 8.1, + 9.1, + 8.8, + 8.7, + 6.3, + 9, + 8.7, + 6.7, + 8.9, + 8, + 8.5, + 8.1, + 7.6, + 8.6, + 8, + 8.5, + 8.2, + 8, + 8.2, + 8.9, + 7.5, + 7.9, + 7.6, + 8.2, + 8.8, + 7.2, + 8.7, + 7.7, + 8.3, + 8.4, + 8.7, + 8.5, + 8.3, + 8.3, + 8.4, + 8.5, + 8.9, + 8.3, + 8.6, + 7, + 7.9, + 7.7, + 8.2, + 8.2, + 8, + 9.1, + 7.9, + 7.6, + 8.9, + 7.7, + 8, + 8.4, + 7.9, + 8.7, + 7.4, + 7.4, + 8.6, + 8.3, + 8.1, + 9, + 8.6, + 8.4, + 8.7, + 8.6, + 7.5, + 7.6, + 7.9, + 8.3, + 7.3, + 8, + 8.3, + 6.3, + 8, + 8.7, + 9.3, + 8.4, + 8.5, + 7.6, + 8.6, + 7.6, + 8.9, + 7.2, + 9.4, + 8.4, + 8.5, + 8.9, + 8, + 7.5, + 8.2, + 8.7, + 8.9, + 7.9, + 7.6, + 8.9, + 6.9, + 7.7, + 7.9, + 8.6, + 8.8, + 7.4, + 8.7, + 6, + 9, + 7.5, + 8.9, + 7.9, + 8.7, + 7.6, + 8.2, + 8.6, + 7.8, + 8, + 8.8, + 9, + 8.8, + 8.5, + 8, + 8.3, + 8.7, + 7.5, + 8.8, + 8.2, + 8.5, + 7.7, + 7.9, + 7.8, + 8.6, + 7.2, + 6.5, + 7.4, + 7.9, + 7.8, + 8.4, + 8.3, + 8.7, + 8.9, + 7.8, + 9.1, + 6, + 7.6, + 9.1, + 8.4, + 8.6, + 9, + 7.2, + 8.7, + 9.7, + 6.5, + 7.9, + 9.2, + 8.7, + 9.5, + 6.9, + 8.6, + 6.9, + 9.4, + 9.6, + 7.9, + 7.7, + 6.9, + 9.7 + ], + "xaxis": "x", + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Review Score Distribution" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Review Score" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.histogram(\n", + " df_hotels,\n", + " x=\"review_score\",\n", + " nbins=10,\n", + " title=\"Review Score Distribution\",\n", + " labels={\"review_score\": \"Review Score\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "57ba5bc5", + "metadata": {}, + "outputs": [], + "source": [ + "# The distribution of review scores shows that most Amsterdam hotels achieve strong guest satisfaction, with the majority scoring between 7.5 and 9.0. \n", + "# Low-rated properties below 7.0 are rare, indicating generally high accommodation standards across the city. \n", + "# A small group of hotels reaches exceptional scores above 9.0, while overall the distribution leans toward higher ratings." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "62e3711f", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "variable=count
stars=%{x}
Number of Hotels=%{y}", + "legendgroup": "count", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "count", + "offsetgroup": "count", + "orientation": "v", + "showlegend": true, + "textposition": "auto", + "type": "bar", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "xaxis": "x", + "y": [ + 18, + 4, + 14, + 70, + 91, + 21 + ], + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "title": { + "text": "variable" + }, + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Star Rating Distribution" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "stars" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Number of Hotels" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.bar(\n", + " df_hotels[\"stars\"].value_counts().sort_index(),\n", + " title=\"Star Rating Distribution\",\n", + " labels={\"index\": \"Stars\", \"value\": \"Number of Hotels\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "c3bf74bd", + "metadata": {}, + "outputs": [], + "source": [ + "# The star rating distribution shows that Amsterdam’s hotel market is dominated by mid-range and upper-mid-range properties, with 3-star and 4-star hotels making up the majority of listings. \n", + "# Luxury 5-star hotels represent a smaller but significant segment, while budget options such as 1- and 2-star hotels are relatively small.\n", + "# The presence of many unrated properties also highlights the large number of apartments, hostels, and boutique-style accommodations in the city." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "8d569052", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "Stars=%{x}
Price (USD)=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "orientation": "v", + "showlegend": false, + "type": "scatter", + "x": [ + 5, + 4, + 4, + 4, + 3, + 4, + 4, + 0, + 4, + 3, + 0, + 3, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 3, + 2, + 3, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 5, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 4, + 4, + 3, + 4, + 4, + 4, + 1, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 3, + 3, + 5, + 0, + 5, + 2, + 4, + 2, + 4, + 5, + 3, + 4, + 3, + 4, + 3, + 4, + 5, + 3, + 3, + 2, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 5, + 4, + 2, + 4, + 3, + 3, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 4, + 3, + 4, + 4, + 3, + 2, + 3, + 2, + 3, + 3, + 0, + 0, + 4, + 3, + 2, + 2, + 0, + 3, + 5, + 3, + 1, + 0, + 3, + 3, + 5, + 0, + 5, + 3, + 0, + 3, + 4, + 3, + 4, + 0, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 0, + 4, + 5, + 3, + 3, + 4, + 1, + 5, + 4, + 4, + 3, + 3, + 0, + 4, + 3, + 2, + 0, + 3, + 3, + 4, + 2, + 4, + 0, + 3, + 4, + 3, + 4, + 5, + 4, + 5, + 5, + 3, + 5, + 0, + 3, + 2, + 5, + 3, + 5, + 3, + 4, + 2, + 5, + 5, + 3, + 3, + 3, + 5 + ], + "xaxis": "x", + "y": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "yaxis": "y" + } + ], + "layout": { + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Price Distribution by Star Rating" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Stars" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Price (USD)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter(\n", + " df_hotels,\n", + " x=\"stars\",\n", + " y=\"price\",\n", + " title=\"Price Distribution by Star Rating\",\n", + " labels={\"stars\": \"Stars\", \"price\": \"Price (USD)\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "aadfc446", + "metadata": {}, + "outputs": [], + "source": [ + "# SABINA COMMENT: This should have multiple boxplots because the \"Stars\" variable\n", + "# is categorical, so a scatterplot is not appropriate. \n", + "# You can't really tell just how concentrated the points are,\n", + "# as there could be many points overlapping\n", + "# However, your chart analysis is still correct, so well done!" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "63ddd948", + "metadata": {}, + "outputs": [], + "source": [ + "# Each star category shows its own typical price range, with higher stars generally trending toward higher prices.\n", + "# Despite this trend, the price ranges overlap noticeably across categories.\n", + "# Most hotels within each star rating cluster in a predictable “normal” price band.\n", + "# Several hotels fall far outside these typical bands, especially in the 1-, 2-, and 3-star groups.\n", + "# These outliers are priced at levels comparable to higher-star properties and appear disproportionately expensive for their category.\n", + "# Overall, the chart highlights both the usual pricing patterns for each star level and the presence of clearly overpriced exceptions." + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "id": "1818eefc", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "Review Score=%{x}
Price (USD)=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "orientation": "v", + "showlegend": false, + "type": "scatter", + "x": [ + 8.4, + 8.9, + 8.1, + 8.4, + 8.2, + 8.5, + 8.9, + 8, + 8.8, + 7.7, + 8, + 8.2, + 8.5, + 8.7, + 8.1, + 8.6, + 8.2, + 8.5, + 8.3, + 7.9, + 7.2, + 8.3, + 8.7, + 8.6, + 9.1, + 8.6, + 8.1, + 8.1, + 8.5, + 8, + 8.4, + 8.7, + 8.5, + 8.5, + 8.6, + 8.5, + 7.7, + 8.8, + 7.9, + 8.2, + 8.2, + 8.6, + 8, + 7.8, + 8.3, + 8.5, + 8.6, + 8.6, + 8.7, + 8.8, + 8.4, + 8.7, + 8.6, + 8.2, + 8.4, + 9.2, + 8.7, + 8.1, + 9.1, + 8.8, + 8.7, + 6.3, + 9, + 8.7, + 6.7, + 8.9, + 8, + 8.5, + 8.1, + 7.6, + 8.6, + 8, + 8.5, + 8.2, + 8, + 8.2, + 8.9, + 7.5, + 7.9, + 7.6, + 8.2, + 8.8, + 7.2, + 8.7, + 7.7, + 8.3, + 8.4, + 8.7, + 8.5, + 8.3, + 8.3, + 8.4, + 8.5, + 8.9, + 8.3, + 8.6, + 7, + 7.9, + 7.7, + 8.2, + 8.2, + 8, + 9.1, + 7.9, + 7.6, + 8.9, + 7.7, + 8, + 8.4, + 7.9, + 8.7, + 7.4, + 7.4, + 8.6, + 8.3, + 8.1, + 9, + 8.6, + 8.4, + 8.7, + 8.6, + 7.5, + 7.6, + 7.9, + 8.3, + 7.3, + 8, + 8.3, + 6.3, + 8, + 8.7, + 9.3, + 8.4, + 8.5, + 7.6, + 8.6, + 7.6, + 8.9, + 7.2, + 9.4, + 8.4, + 8.5, + 8.9, + 8, + 7.5, + 8.2, + 8.7, + 8.9, + 7.9, + 7.6, + 8.9, + 6.9, + 7.7, + 7.9, + 8.6, + 8.8, + 7.4, + 8.7, + 6, + 9, + 7.5, + 8.9, + 7.9, + 8.7, + 7.6, + 8.2, + 8.6, + 7.8, + 8, + 8.8, + 9, + 8.8, + 8.5, + 8, + 8.3, + 8.7, + 7.5, + 8.8, + 8.2, + 8.5, + 7.7, + 7.9, + 7.8, + 8.6, + 7.2, + 6.5, + 7.4, + 7.9, + 7.8, + 8.4, + 8.3, + 8.7, + 8.9, + 7.8, + 9.1, + 6, + 7.6, + 9.1, + 8.4, + 8.6, + 9, + 7.2, + 8.7, + 9.7, + 6.5, + 7.9, + 9.2, + 8.7, + 9.5, + 6.9, + 8.6, + 6.9, + 9.4, + 9.6, + 7.9, + 7.7, + 6.9, + 9.7 + ], + "xaxis": "x", + "y": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "yaxis": "y" + } + ], + "layout": { + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Price vs Review Score" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Review Score" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Price (USD)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter(\n", + " df_hotels,\n", + " x=\"review_score\",\n", + " y=\"price\",\n", + " \n", + " title=\"Price vs Review Score\",\n", + " labels={\"review_score\": \"Review Score\", \"price\": \"Price (USD)\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "5d0aeff1", + "metadata": {}, + "outputs": [], + "source": [ + "# The chart shows a group of hotels with review scores below 7 that are priced unusually high, including several extreme outliers above $1,000–$1,800, making them appear clearly overpriced relative to guest satisfaction.\n", + "# Starting from review score 7 and upwards, the price trend becomes more structured, with fewer low-scoring hotels in the expensive price zones.\n", + "# As review scores increase, there is a visible rise in price, especially past the 8.0 threshold where more hotels enter the premium range (above $500 and up to $1,700+).\n", + "# High-rated hotels (8.5–9.5) include many of the most expensive properties, which aligns with guests being willing to pay more for better-reviewed accommodations.\n", + "# The overall pattern suggests a clear link between good review scores and higher prices, but also exposes a group of poorly reviewed properties that still charge premium rates.\n", + "# This combination highlights both logical pricing (high score → higher price) and questionable pricing (low score → high price), making the inconsistencies easy to identify." + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "db5ba6c1", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "Review Score=%{x}
Stars=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "orientation": "v", + "showlegend": false, + "type": "scatter", + "x": [ + 8.4, + 8.9, + 8.1, + 8.4, + 8.2, + 8.5, + 8.9, + 8, + 8.8, + 7.7, + 8, + 8.2, + 8.5, + 8.7, + 8.1, + 8.6, + 8.2, + 8.5, + 8.3, + 7.9, + 7.2, + 8.3, + 8.7, + 8.6, + 9.1, + 8.6, + 8.1, + 8.1, + 8.5, + 8, + 8.4, + 8.7, + 8.5, + 8.5, + 8.6, + 8.5, + 7.7, + 8.8, + 7.9, + 8.2, + 8.2, + 8.6, + 8, + 7.8, + 8.3, + 8.5, + 8.6, + 8.6, + 8.7, + 8.8, + 8.4, + 8.7, + 8.6, + 8.2, + 8.4, + 9.2, + 8.7, + 8.1, + 9.1, + 8.8, + 8.7, + 6.3, + 9, + 8.7, + 6.7, + 8.9, + 8, + 8.5, + 8.1, + 7.6, + 8.6, + 8, + 8.5, + 8.2, + 8, + 8.2, + 8.9, + 7.5, + 7.9, + 7.6, + 8.2, + 8.8, + 7.2, + 8.7, + 7.7, + 8.3, + 8.4, + 8.7, + 8.5, + 8.3, + 8.3, + 8.4, + 8.5, + 8.9, + 8.3, + 8.6, + 7, + 7.9, + 7.7, + 8.2, + 8.2, + 8, + 9.1, + 7.9, + 7.6, + 8.9, + 7.7, + 8, + 8.4, + 7.9, + 8.7, + 7.4, + 7.4, + 8.6, + 8.3, + 8.1, + 9, + 8.6, + 8.4, + 8.7, + 8.6, + 7.5, + 7.6, + 7.9, + 8.3, + 7.3, + 8, + 8.3, + 6.3, + 8, + 8.7, + 9.3, + 8.4, + 8.5, + 7.6, + 8.6, + 7.6, + 8.9, + 7.2, + 9.4, + 8.4, + 8.5, + 8.9, + 8, + 7.5, + 8.2, + 8.7, + 8.9, + 7.9, + 7.6, + 8.9, + 6.9, + 7.7, + 7.9, + 8.6, + 8.8, + 7.4, + 8.7, + 6, + 9, + 7.5, + 8.9, + 7.9, + 8.7, + 7.6, + 8.2, + 8.6, + 7.8, + 8, + 8.8, + 9, + 8.8, + 8.5, + 8, + 8.3, + 8.7, + 7.5, + 8.8, + 8.2, + 8.5, + 7.7, + 7.9, + 7.8, + 8.6, + 7.2, + 6.5, + 7.4, + 7.9, + 7.8, + 8.4, + 8.3, + 8.7, + 8.9, + 7.8, + 9.1, + 6, + 7.6, + 9.1, + 8.4, + 8.6, + 9, + 7.2, + 8.7, + 9.7, + 6.5, + 7.9, + 9.2, + 8.7, + 9.5, + 6.9, + 8.6, + 6.9, + 9.4, + 9.6, + 7.9, + 7.7, + 6.9, + 9.7 + ], + "xaxis": "x", + "y": [ + 5, + 4, + 4, + 4, + 3, + 4, + 4, + 0, + 4, + 3, + 0, + 3, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 3, + 2, + 3, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 5, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 4, + 4, + 3, + 4, + 4, + 4, + 1, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 3, + 3, + 5, + 0, + 5, + 2, + 4, + 2, + 4, + 5, + 3, + 4, + 3, + 4, + 3, + 4, + 5, + 3, + 3, + 2, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 5, + 4, + 2, + 4, + 3, + 3, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 4, + 3, + 4, + 4, + 3, + 2, + 3, + 2, + 3, + 3, + 0, + 0, + 4, + 3, + 2, + 2, + 0, + 3, + 5, + 3, + 1, + 0, + 3, + 3, + 5, + 0, + 5, + 3, + 0, + 3, + 4, + 3, + 4, + 0, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 0, + 4, + 5, + 3, + 3, + 4, + 1, + 5, + 4, + 4, + 3, + 3, + 0, + 4, + 3, + 2, + 0, + 3, + 3, + 4, + 2, + 4, + 0, + 3, + 4, + 3, + 4, + 5, + 4, + 5, + 5, + 3, + 5, + 0, + 3, + 2, + 5, + 3, + 5, + 3, + 4, + 2, + 5, + 5, + 3, + 3, + 3, + 5 + ], + "yaxis": "y" + } + ], + "layout": { + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Review Score vs Star Rating" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Review Score" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Stars" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter(\n", + " df_hotels,\n", + " x=\"review_score\",\n", + " y=\"stars\",\n", + " title=\"Review Score vs Star Rating\",\n", + " labels={\"stars\": \"Stars\", \"review_score\": \"Review Score\"},\n", + ")\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "080b66d0", + "metadata": {}, + "outputs": [], + "source": [ + "# SABINA COMMENT: This should also have boxplots." + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "d7325016", + "metadata": {}, + "outputs": [], + "source": [ + "# Higher-star hotels generally receive higher review scores, especially 4- and 5-star properties, which cluster mostly between 8.0 and 9.5.\n", + "# Lower-star hotels (0–2 stars) show a wider spread, ranging from 6.0 up to 8.5, meaning some deliver excellent value despite their low rating.\n", + "# The 3-star group shows the widest range of review scores spanning from 6.0 to 9.0.\n", + "# Overall, while review scores tend to rise with star rating, the significant overlap shows that guest satisfaction varies widely within each category." + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "a928524f", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Stars=%{x}
Review Score=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa" + }, + "name": "", + "notched": false, + "offsetgroup": "", + "orientation": "v", + "showlegend": false, + "type": "box", + "x": [ + 5, + 4, + 4, + 4, + 3, + 4, + 4, + 0, + 4, + 3, + 0, + 3, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 3, + 2, + 3, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 5, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 4, + 4, + 3, + 4, + 4, + 4, + 1, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 3, + 3, + 5, + 0, + 5, + 2, + 4, + 2, + 4, + 5, + 3, + 4, + 3, + 4, + 3, + 4, + 5, + 3, + 3, + 2, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 5, + 4, + 2, + 4, + 3, + 3, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 4, + 3, + 4, + 4, + 3, + 2, + 3, + 2, + 3, + 3, + 0, + 0, + 4, + 3, + 2, + 2, + 0, + 3, + 5, + 3, + 1, + 0, + 3, + 3, + 5, + 0, + 5, + 3, + 0, + 3, + 4, + 3, + 4, + 0, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 0, + 4, + 5, + 3, + 3, + 4, + 1, + 5, + 4, + 4, + 3, + 3, + 0, + 4, + 3, + 2, + 0, + 3, + 3, + 4, + 2, + 4, + 0, + 3, + 4, + 3, + 4, + 5, + 4, + 5, + 5, + 3, + 5, + 0, + 3, + 2, + 5, + 3, + 5, + 3, + 4, + 2, + 5, + 5, + 3, + 3, + 3, + 5 + ], + "x0": " ", + "xaxis": "x", + "y": [ + 8.4, + 8.9, + 8.1, + 8.4, + 8.2, + 8.5, + 8.9, + 8, + 8.8, + 7.7, + 8, + 8.2, + 8.5, + 8.7, + 8.1, + 8.6, + 8.2, + 8.5, + 8.3, + 7.9, + 7.2, + 8.3, + 8.7, + 8.6, + 9.1, + 8.6, + 8.1, + 8.1, + 8.5, + 8, + 8.4, + 8.7, + 8.5, + 8.5, + 8.6, + 8.5, + 7.7, + 8.8, + 7.9, + 8.2, + 8.2, + 8.6, + 8, + 7.8, + 8.3, + 8.5, + 8.6, + 8.6, + 8.7, + 8.8, + 8.4, + 8.7, + 8.6, + 8.2, + 8.4, + 9.2, + 8.7, + 8.1, + 9.1, + 8.8, + 8.7, + 6.3, + 9, + 8.7, + 6.7, + 8.9, + 8, + 8.5, + 8.1, + 7.6, + 8.6, + 8, + 8.5, + 8.2, + 8, + 8.2, + 8.9, + 7.5, + 7.9, + 7.6, + 8.2, + 8.8, + 7.2, + 8.7, + 7.7, + 8.3, + 8.4, + 8.7, + 8.5, + 8.3, + 8.3, + 8.4, + 8.5, + 8.9, + 8.3, + 8.6, + 7, + 7.9, + 7.7, + 8.2, + 8.2, + 8, + 9.1, + 7.9, + 7.6, + 8.9, + 7.7, + 8, + 8.4, + 7.9, + 8.7, + 7.4, + 7.4, + 8.6, + 8.3, + 8.1, + 9, + 8.6, + 8.4, + 8.7, + 8.6, + 7.5, + 7.6, + 7.9, + 8.3, + 7.3, + 8, + 8.3, + 6.3, + 8, + 8.7, + 9.3, + 8.4, + 8.5, + 7.6, + 8.6, + 7.6, + 8.9, + 7.2, + 9.4, + 8.4, + 8.5, + 8.9, + 8, + 7.5, + 8.2, + 8.7, + 8.9, + 7.9, + 7.6, + 8.9, + 6.9, + 7.7, + 7.9, + 8.6, + 8.8, + 7.4, + 8.7, + 6, + 9, + 7.5, + 8.9, + 7.9, + 8.7, + 7.6, + 8.2, + 8.6, + 7.8, + 8, + 8.8, + 9, + 8.8, + 8.5, + 8, + 8.3, + 8.7, + 7.5, + 8.8, + 8.2, + 8.5, + 7.7, + 7.9, + 7.8, + 8.6, + 7.2, + 6.5, + 7.4, + 7.9, + 7.8, + 8.4, + 8.3, + 8.7, + 8.9, + 7.8, + 9.1, + 6, + 7.6, + 9.1, + 8.4, + 8.6, + 9, + 7.2, + 8.7, + 9.7, + 6.5, + 7.9, + 9.2, + 8.7, + 9.5, + 6.9, + 8.6, + 6.9, + 9.4, + 9.6, + 7.9, + 7.7, + 6.9, + 9.7 + ], + "y0": " ", + "yaxis": "y" + } + ], + "layout": { + "boxmode": "group", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Review Score Distribution by Star Rating" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Stars" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Review Score" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.box(\n", + " df_hotels,\n", + " x=\"stars\",\n", + " y=\"review_score\",\n", + " title=\"Review Score Distribution by Star Rating\",\n", + " labels={\"stars\": \"Stars\", \"review_score\": \"Review Score\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba7acc50", + "metadata": {}, + "outputs": [], + "source": [ + "# SABINA COMMENT: YAY BOXPLOTS!" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "34572a89", + "metadata": {}, + "outputs": [], + "source": [ + "# Higher-star hotels tend to achieve higher review scores, with 4 and 5-star categories centered around 8.5–9.0.\n", + "# Lower-star hotels (1–2 stars) have noticeably lower medians, mostly around 7.3–7.7, indicating more modest guest satisfaction.\n", + "# The 3-star segment shows a wide spread of scores, from 6.0 up to almost 9.0, making it the most inconsistent group in terms of guest experience.\n", + "# Unrated (0-star) hotels surprisingly score quite well, with many reviews falling between 8.0–9.0, showing strong performance despite lacking an official rating.\n", + "# Overall, while review scores rise with star level, the variation within each category—especially 0-star and 3-star hotels—shows that guest satisfaction is not perfectly aligned with official star rating." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "b9937014", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "Number of Reviews=%{x}
Price (USD)=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "orientation": "v", + "showlegend": false, + "type": "scatter", + "x": [ + 2869, + 3874, + 3679, + 4817, + 12096, + 6343, + 134, + 12687, + 1735, + 9837, + 660, + 4758, + 5026, + 8811, + 13132, + 8717, + 10359, + 1343, + 1052, + 17901, + 2144, + 3203, + 1361, + 3464, + 3901, + 978, + 9671, + 15319, + 10289, + 3553, + 20821, + 9124, + 4538, + 3036, + 8693, + 552, + 2482, + 5664, + 3692, + 2292, + 737, + 9065, + 2237, + 7274, + 3734, + 3780, + 10905, + 12367, + 5555, + 1109, + 2927, + 1286, + 1269, + 5389, + 2897, + 4242, + 905, + 3001, + 1943, + 935, + 11156, + 436, + 4401, + 3207, + 420, + 6323, + 1754, + 6004, + 610, + 3910, + 5984, + 2476, + 1775, + 2201, + 1903, + 8057, + 3077, + 1920, + 1702, + 891, + 2278, + 2265, + 2817, + 1859, + 5080, + 2929, + 563, + 1925, + 3327, + 17522, + 7578, + 7421, + 2757, + 1051, + 6140, + 1315, + 1653, + 7926, + 1376, + 1774, + 1842, + 3332, + 525, + 5284, + 2375, + 1697, + 866, + 1943, + 2206, + 1551, + 3011, + 5340, + 8262, + 2508, + 2129, + 4268, + 1993, + 3694, + 2681, + 599, + 4079, + 2447, + 1630, + 8270, + 7850, + 3258, + 1023, + 5593, + 1967, + 1660, + 3772, + 2338, + 2923, + 2329, + 2751, + 1275, + 3098, + 9845, + 4601, + 79, + 4172, + 10627, + 2709, + 2030, + 1609, + 1709, + 1943, + 1019, + 4926, + 2014, + 226, + 3230, + 6151, + 2678, + 804, + 751, + 188, + 5278, + 4476, + 10472, + 4805, + 1505, + 3284, + 1190, + 1154, + 4303, + 1001, + 1523, + 3191, + 1327, + 1501, + 1370, + 446, + 15598, + 2239, + 3514, + 3173, + 1501, + 2343, + 4057, + 2065, + 3983, + 318, + 5918, + 3559, + 1754, + 249, + 1285, + 5883, + 7118, + 1059, + 2377, + 1698, + 7044, + 1072, + 49, + 3104, + 251, + 2572, + 317, + 852, + 2840, + 59, + 94, + 1994, + 942, + 394, + 7986, + 216, + 1576, + 1887, + 860, + 646, + 259, + 3497, + 3730, + 3922, + 15 + ], + "xaxis": "x", + "y": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "yaxis": "y" + } + ], + "layout": { + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Price vs Review Count" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Number of Reviews" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Price (USD)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter(\n", + " df_hotels,\n", + " x=\"review_count\",\n", + " y=\"price\",\n", + " title=\"Price vs Review Count\",\n", + " labels={\"review_count\": \"Number of Reviews\", \"price\": \"Price (USD)\"},\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "203ef0df", + "metadata": {}, + "outputs": [], + "source": [ + "# Properties with very few reviews often show the highest prices, which may indicate either exclusive luxury hotels or newly listed accommodations with limited guest history.\n", + "# As the number of reviews increases, hotel prices become more stable and predictable, mostly falling between $200–$500.\n", + "# Hotels with thousands of reviews tend to sit on the lower end of the price range, likely because they appeal to budget-conscious travellers, students, or high-volume tourist groups.\n", + "# Overall, high review count is associated with popularity rather than premium pricing, while low review count shows a mix of luxury properties and potential overpricing, depending on the context.\n", + "\n", + "# SABINA COMMENT: What about the 2 outliers at 5K reviews? ;) Who are they?" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "e5aedea5", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "hovertemplate": "%{hovertext}

Longitude=%{x}
Latitude=%{y}
Price (USD)=%{marker.color}", + "hovertext": [ + "Hyatt Regency Amsterdam", + "Chasse Residency Hotel", + "Swissôtel Amsterdam", + "Holiday Inn - the niu, Fender Amsterdam", + "Holiday Inn Express Amsterdam - North Riverside by IHG", + "Mövenpick Hotel Amsterdam City Centre", + "Hotel V Oosterpark", + "Hans Brinker Hostel Amsterdam", + "Citadines Canal Amsterdam", + "ibis Amsterdam Centre", + "Renaissance Amsterdam Hotel", + "Hotel Van Gogh", + "Mercure Amsterdam Sloterdijk Station", + "Ruby Emma Hotel Amsterdam", + "Hampton By Hilton Amsterdam Arena Boulevard", + "Park Plaza Victoria Amsterdam", + "Inntel Hotels Amsterdam Landmark", + "Apollo Hotel Amsterdam, a Tribute Portfolio Hotel", + "DoubleTree by Hilton Amsterdam Centraal Station", + "Holiday Inn Express Amsterdam Arena Towers by IHG", + "ITC Hotel", + "Holiday Inn Express Amsterdam - City Hall by IHG", + "Sir Adam Hotel, part of Sircle Collection", + "Bob W Amsterdam Noord", + "Monet Garden Hotel Amsterdam", + "Bob W Oosterpark", + "Holiday Inn Express Amsterdam - Sloterdijk Station by IHG", + "Via Amsterdam", + "Postillion Hotel Amsterdam", + "Hotel Hortus", + "Park Inn by Radisson Amsterdam City West", + "XO Hotels Couture", + "Clayton Hotel Amsterdam American", + "DoubleTree by Hilton Amsterdam - NDSM Wharf", + "Olympic Hotel", + "Sir Albert Hotel, part of Sircle Collection", + "The Concert Hotel", + "Van der Valk Hotel Amsterdam - Amstel", + "ibis Amsterdam Centre Stopera", + "ibis Styles Amsterdam City", + "Stanley Collection Hotel Hegra Amsterdam", + "Leonardo Royal Hotel Amsterdam", + "ibis Styles Amsterdam Amstel", + "Joy Hotel", + "Mercure Amsterdam City Hotel", + "Pestana Amsterdam Riverside", + "The Social Hub Amsterdam City", + "Motel One Amsterdam", + "Van der Valk Hotel Amsterdam Zuidas -Rai", + "Avani Museum Quarter Amsterdam Hotel", + "Hampton by Hilton Amsterdam Centre East", + "Crowne Plaza Amsterdam - South by IHG", + "Residence Inn by Marriott Amsterdam Houthavens", + "Inntel Hotels Amsterdam Centre", + "Conscious Hotel The Tire Station", + "Hotel Estheréa", + "Canal House", + "Leonardo Boutique Museumhotel", + "PREMIER SUITES Amsterdam", + "Banks Mansion - All Inclusive Boutique Hotel", + "Jaz in the City Amsterdam", + "Camp-Inn Hotel", + "Mercure Amsterdam North Station", + "Huygens Place Amsterdam", + "Triple G Hotels", + "INNSiDE by Meliá Amsterdam", + "Leonardo Hotel Amsterdam City Center", + "Novotel Amsterdam City", + "The Crown Hotel", + "Fletcher Hotel Amsterdam", + "Room Mate Aitana, Amsterdam", + "NH Amsterdam Schiller", + "Adam Suites Hotel", + "Moxy Amsterdam Houthavens", + "The Times Hotel", + "XO Hotels Blue Tower", + "citizenM Amstel Amsterdam", + "Hotel Atlas Vondelpark", + "Hotel Fine Harmony", + "W Amsterdam", + "De Bedstee Boutique Capsules", + "Kimpton De Witt Amsterdam by IHG", + "Hotel Washington", + "Dikker & Thijs Hotel", + "Mozart Hotel", + "Hotel Arena", + "The Diamond Amsterdam", + "The Bank Hotel", + "Courtyard by Marriott Amsterdam Arena Atlas", + "Hotel Levell", + "YOTEL Amsterdam", + "Bunk Hotel Amsterdam", + "Conscious Hotel Westerpark", + "Hotel Okura Amsterdam – The Leading Hotels of the World", + "Hotel New Kit", + "Boutique Hotel View", + "Quentin England Hotel", + "Generator Amsterdam", + "De Jonker Urban Suites", + "Hotel Mansion", + "Leonardo Hotel Amsterdam Leidse Square", + "ibis Amsterdam City West", + "Morgan & Mees Amsterdam", + "XO Hotel Inner", + "Hotel Allure", + "Met Hotel Amsterdam", + "Limehome Amsterdam Gatwickstraat", + "Quentin Zoo hotel", + "The Manor Amsterdam", + "Amsterdam Marriott Hotel", + "Boutique Hotel Notting Hill", + "Nadia Hotel", + "OZO Hotels Arena Amsterdam", + "Krisotel", + "Nova Hotel", + "Holiday Inn Amsterdam - Arena Towers by IHG", + "Element Amsterdam", + "Pension Homeland", + "Park Centraal Amsterdam, part of Sircle Collection", + "Nova Apartments Amsterdam", + "Park Plaza Vondelpark Amsterdam", + "Mercure Hotel Amsterdam West", + "Hotel Espresso", + "XO Hotels Blue Square", + "Leonardo Hotel Amsterdam Rembrandtpark", + "The Old Nickel Hotel", + "Max Brown Hotel Canal District, part of Sircle Collection", + "Corendon Amsterdam New-West, a Tribute Portfolio Hotel", + "Quentin Amsterdam Hotel", + "NH Amsterdam Caransa", + "Hotel2Stay", + "The July - Boat & Co", + "Urban Lodge Hotel", + "Conscious Hotel Vondelpark", + "easyHotel Amsterdam City Centre South", + "The IF Boutique hotel", + "Hotel Old Quarter", + "Hotel Casa Amsterdam", + "Delta Hotel City Center", + "Studio Koggeschip", + "Hotel Jansen Amsterdam Bajeskwartier", + "XO Hotels Park West", + "Amsterdam ID Aparthotel", + "Weber Hotel", + "Hotel Pagi", + "Golden Mansion Aparthotel", + "Hotel Fita", + "Pulitzer Amsterdam", + "Qbic Amsterdam WTC", + "Hotel Corner House", + "Amsterdam-Houseboat-Amstel", + "OZO Hotels Cordial Amsterdam", + "The Alfred Hotel", + "Bilderberg Garden Hotel", + "hotel calisto", + "Andaz Amsterdam, Prinsengracht, By Hyatt", + "Hotel Victorie", + "Volkshotel", + "Belfort Hotel", + "nhow Amsterdam Rai", + "Avenue Hotel", + "Jan Luyken Amsterdam", + "Heart of Amsterdam Hostel", + "Conscious Hotel Museum Square", + "Cityview Hotel", + "Four Elements Hotel", + "NH Amsterdam Noord", + "Ciao Papa Hotel Amsterdam Central Station", + "Holiday Inn Express Amsterdam - South by IHG", + "Hotel Omega", + "Outside Inn", + "INK Hotel Amsterdam - MGallery Collection", + "The College Hotel Amsterdam, Autograph Collection", + "ClinkNOORD Hostel", + "Hotel Residence Le Coin", + "art'otel amsterdam, Powered by Radisson Hotels", + "Hotel Abba", + "Tivoli Doelen Amsterdam Hotel", + "NH Amsterdam Zuid", + "The Social Hub Amsterdam West 4 star", + "Hotel Park Plantage", + "Hotel & Wellness Zuiver", + "Limehome Amsterdam Leidsekruisstraat", + "citizenM Amsterdam South", + "Bastion Hotel Amsterdam Amstel", + "MAX Hotel Amsterdam", + "City Rooms Amsterdam Hemonystraat - Digital access", + "Max Brown Hotel Museum Square, part of Sircle Collection", + "Hotel Fogo Amsterdam", + "Radisson Blu Hotel, Amsterdam City Center", + "Weber Hotel 397", + "The Delphi - Amsterdam Townhouse", + "Skotel Amsterdam, Hotelschool The Hague", + "XO Hotels Infinity", + "The July - Twenty Eight", + "Westlake Hotels Amsterdam", + "Leonardo Boutique Hotel The Lancaster Hotel Amsterdam", + "Conservatorium Hotel - Operated by Mandarin Oriental", + "Via Suites", + "InterContinental Amstel Amsterdam by IHG", + "Sofitel Legend The Grand Amsterdam", + "Q-Factory Hotel", + "Rosewood Amsterdam", + "Leidse Square 5 star Luxury Apartment", + "OZO Hotels Armada Amsterdam", + "Weber Hotel 117", + "De L’Europe Amsterdam – The Leading Hotels of the World", + "Motel One Amsterdam-Waterlooplein", + "Waldorf Astoria Amsterdam", + "Bastion Hotel Amsterdam Zuidwest", + "The Hoxton Lloyd Amsterdam City Centre East", + "Quentin Golden Bear Hotel", + "Pillows Grand Boutique Hotel Maurits at the Park - Small Luxury Hotels", + "Hotel TwentySeven - Small Luxury Hotels of the World", + "Prinsengracht Hotel", + "Campanile Hotel & Restaurant Amsterdam Zuid-Oost", + "Hotel Doria", + "Crane Hotel Faralda" + ], + "legendgroup": "", + "marker": { + "color": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "coloraxis": "coloraxis", + "size": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "sizemode": "area", + "sizeref": 4.55115, + "symbol": "circle" + }, + "mode": "markers", + "name": "", + "orientation": "v", + "showlegend": false, + "type": "scatter", + "x": [ + 4.911744, + 4.924964, + 4.89331215620041, + 4.9463418, + 4.91952350926207, + 4.91414219141006, + 4.92270692381791, + 4.88805460000003, + 4.893588, + 4.89696532487869, + 4.89438101649284, + 4.88014921545982, + 4.834296, + 4.92086, + 4.94809359312057, + 4.89777535200119, + 4.92843508863831, + 4.88510727882385, + 4.90566909313202, + 4.94186959259036, + 4.89858202636242, + 4.90835, + 4.90240858888546, + 4.90684051779097, + 4.90726228255619, + 4.9285033, + 4.83745515346527, + 4.953709, + 4.92219427514647, + 4.90905001759529, + 4.842565, + 4.84125409510648, + 4.881296, + 4.89350185850526, + 4.853175, + 4.88731205463409, + 4.87704757601023, + 4.91446652778632, + 4.90765661001205, + 4.90066040307283, + 4.88726913928986, + 4.917847, + 4.90029025822878, + 4.95023131370544, + 4.9135098606348, + 4.90716399999997, + 4.91263214907383, + 4.89257459999999, + 4.887724, + 4.88620162010193, + 4.934809346, + 4.87454742193222, + 4.874767, + 4.89444941282272, + 4.85544981739667, + 4.88849088549614, + 4.88632701337337, + 4.88415978848934, + 4.86796079629515, + 4.89309288561344, + 4.93931620000001, + 4.85761788032187, + 4.931234, + 4.87563338130713, + 4.85784, + 4.87108765145111, + 4.87834140658379, + 4.88854050636292, + 4.89999, + 4.94534432888031, + 4.89465280000002, + 4.8966957628727, + 4.8869948329575, + 4.874811, + 4.88894149661064, + 4.84565332531929, + 4.905943, + 4.87398952245712, + 4.90481983743439, + 4.89000590000001, + 4.87775735557079, + 4.8955395, + 4.88353483378887, + 4.88395091146231, + 4.88622978329659, + 4.91579040884972, + 4.8833159, + 4.89037379622459, + 4.94645200000002, + 4.95098888346706, + 4.903551, + 4.91425, + 4.87529649999999, + 4.89281058311462, + 4.837766, + 4.87977102398872, + 4.87710893154144, + 4.91903621904908, + 4.91230891408611, + 4.90487689999998, + 4.878342, + 4.8501044511795, + 4.87461831349185, + 4.87741805613041, + 4.91056948900223, + 4.835317, + 4.841889, + 4.911423, + 4.92611087858677, + 4.87966239452362, + 4.89892099052668, + 4.88560751080513, + 4.94765461349175, + 4.879751, + 4.89013105630875, + 4.94188032142642, + 4.87750001904908, + 4.91685894973762, + 4.88302554935217, + 4.87975794821978, + 4.86642569303513, + 4.81692954897881, + 4.87637232989073, + 4.82055857777596, + 4.84405875205994, + 4.89954560995102, + 4.89205554127693, + 4.83109839999997, + 4.87990915775299, + 4.89692106842995, + 4.8394093674591, + 4.88258942460629, + 4.83444299999996, + 4.85650956630707, + 4.89166025072336, + 4.90271598100662, + 4.89886298775673, + 4.91888970136643, + 4.89610970020294, + 4.89305579999996, + 4.924154, + 4.84716810286045, + 4.83446717262268, + 4.88023370504379, + 4.89186644554138, + 4.89794578650822, + 4.87968116998672, + 4.88328203558922, + 4.87348794937134, + 4.89150166511536, + 4.89719734750327, + 4.89241696894169, + 4.87214963988117, + 4.87409010529518, + 4.8874618914017, + 4.88283142447472, + 4.90290641784668, + 4.91191600000002, + 4.85044240951538, + 4.891107, + 4.89465594291687, + 4.88107189536095, + 4.89758223295212, + 4.87812280654907, + 4.892712, + 5.00559633862306, + 4.91089671850204, + 4.895241, + 4.8670694231987, + 4.875724, + 4.931027, + 4.89289775490761, + 4.88361194729805, + 4.90390362334097, + 4.89441722631454, + 4.89721544086933, + 4.87461045384407, + 4.89572614431381, + 4.87995475530624, + 4.8364, + 4.91136878728867, + 4.85347867012024, + 4.8853753, + 4.87593680620193, + 4.92792874574661, + 4.9021178483963, + 4.902205, + 4.88204687833786, + 4.772438482658, + 4.89670112729073, + 4.88048851490021, + 4.87697213888168, + 4.8438768, + 4.8208911716938, + 4.85753103547779, + 4.79466319084167, + 4.91293653845787, + 4.87848825752735, + 4.953825, + 4.90546524524689, + 4.8954002559185, + 4.93057484418023, + 4.88310919170289, + 4.8819123, + 4.89844556897879, + 4.8803501018524, + 4.89420533180237, + 4.90738492868036, + 4.89644229999999, + 4.84374225139618, + 4.93466, + 4.88519445061684, + 4.919684, + 4.89332549999995, + 4.89448126405478, + 4.98621582984924, + 4.89441740508482, + 4.89473192953028 + ], + "xaxis": "x", + "y": [ + 52.361798, + 52.351902, + 52.3735015639879, + 52.3689672, + 52.3841044464671, + 52.3778244039078, + 52.3618697208272, + 52.3636789, + 52.361026, + 52.3795419603305, + 52.3777675899871, + 52.3590558708137, + 52.387911, + 52.338347, + 52.3130603489422, + 52.3773479298031, + 52.3734396516721, + 52.3485731229379, + 52.3767126229996, + 52.3095778808935, + 52.3622245746876, + 52.370508, + 52.3837837705751, + 52.3965941042896, + 52.3697879175963, + 52.3549487, + 52.3882024042909, + 52.326207, + 52.3336117162739, + 52.3667708460243, + 52.390137, + 52.3511038699022, + 52.363893, + 52.4006568133759, + 52.341453, + 52.3545448464899, + 52.3549105780971, + 52.3333118146981, + 52.3700479003282, + 52.3579747412563, + 52.3714185900611, + 52.332426, + 52.3578952935714, + 52.3052759309378, + 52.3352390967979, + 52.3533287816013, + 52.3545938706784, + 52.3389789, + 52.336339, + 52.3557710388443, + 52.37133354, + 52.3358045267172, + 52.401722, + 52.3761845581983, + 52.357210691928, + 52.3704728678235, + 52.3762435052799, + 52.3612528575306, + 52.3375320353285, + 52.3653832244084, + 52.3142104, + 52.3826261860431, + 52.402437, + 52.362523087804, + 52.382749, + 52.3399845540409, + 52.3621398113363, + 52.333801725009, + 52.374897, + 52.2944386032995, + 52.3842761, + 52.3657488663193, + 52.3805227130876, + 52.401708, + 52.3754755496354, + 52.3793250181387, + 52.360949, + 52.3577085499967, + 52.3742253375528, + 52.3727871, + 52.3557911065058, + 52.3771969, + 52.3548896909311, + 52.3650847306161, + 52.3635697104527, + 52.3609924189596, + 52.3637926, + 52.38093936996, + 52.310162, + 52.3043624730413, + 52.391486, + 52.38808, + 52.3866061, + 52.3484551548406, + 52.378758, + 52.3648906471507, + 52.3614788973101, + 52.360993770212, + 52.3660603421124, + 52.3741996, + 52.364136, + 52.3922488195172, + 52.3743254, + 52.3569550152757, + 52.3618286015023, + 52.362654, + 52.3905283, + 52.36676, + 52.3590874033621, + 52.3626582165351, + 52.3584051486544, + 52.3738200603831, + 52.304806261585, + 52.365747, + 52.3712343600445, + 52.3096565954741, + 52.3318032874812, + 52.3730475260495, + 52.361593145237, + 52.3545784300335, + 52.3542499654985, + 52.3375048702365, + 52.3628600898999, + 52.3785865880488, + 52.3679418353713, + 52.3763294696329, + 52.3788935865371, + 52.3466449, + 52.3642477907647, + 52.3664514799061, + 52.387052242092, + 52.394036005692, + 52.3856494, + 52.3578617125481, + 52.3522127755719, + 52.359005091078, + 52.3759119269223, + 52.3498912311701, + 52.3756892358625, + 52.3773253, + 52.339954, + 52.3856249128608, + 52.3874575746578, + 52.3648857336342, + 52.3692724674063, + 52.3590162611425, + 52.3592102572324, + 52.37282362571, + 52.3402687108229, + 52.3742711914492, + 52.3581028827505, + 52.3707029544915, + 52.3535724695694, + 52.3513157924539, + 52.3823596305708, + 52.3678574924207, + 52.3468297845623, + 52.3537109, + 52.3576802926766, + 52.338489, + 52.3766373025148, + 52.3597614573926, + 52.3723323595859, + 52.3554163721413, + 52.379748, + 52.3544748942031, + 52.3921931674547, + 52.378642, + 52.3258551826725, + 52.355843, + 52.326535, + 52.3755639716479, + 52.3527640630135, + 52.3841992220711, + 52.3678173680479, + 52.3776721292375, + 52.3627085825928, + 52.3682186101361, + 52.3266731785754, + 52.37226, + 52.3664334643127, + 52.3310022397142, + 52.3636477, + 52.3418435228634, + 52.3337378043121, + 52.357917817414, + 52.35813, + 52.3599989709438, + 52.355375399345, + 52.3701379708517, + 52.3649577984884, + 52.3505248757999, + 52.3692891, + 52.381116191928, + 52.3432309277564, + 52.3623732172734, + 52.3658921741934, + 52.3585869750682, + 52.326138, + 52.3600415594456, + 52.3711983327514, + 52.3575427561554, + 52.36573564045, + 52.365333, + 52.3640545225574, + 52.3651023703734, + 52.3676388550903, + 52.3699794423125, + 52.364638, + 52.3575345009985, + 52.374241, + 52.3656137470407, + 52.362194, + 52.3724914, + 52.36198338772, + 52.3117288441657, + 52.372422425451, + 52.3992798782431 + ], + "yaxis": "y" + } + ], + "layout": { + "coloraxis": { + "colorbar": { + "title": { + "text": "Price (USD)" + } + }, + "colorscale": [ + [ + 0, + "rgb(3, 35, 51)" + ], + [ + 0.09090909090909091, + "rgb(13, 48, 100)" + ], + [ + 0.18181818181818182, + "rgb(53, 50, 155)" + ], + [ + 0.2727272727272727, + "rgb(93, 62, 153)" + ], + [ + 0.36363636363636365, + "rgb(126, 77, 143)" + ], + [ + 0.45454545454545453, + "rgb(158, 89, 135)" + ], + [ + 0.5454545454545454, + "rgb(193, 100, 121)" + ], + [ + 0.6363636363636364, + "rgb(225, 113, 97)" + ], + [ + 0.7272727272727273, + "rgb(246, 139, 69)" + ], + [ + 0.8181818181818182, + "rgb(251, 173, 60)" + ], + [ + 0.9090909090909091, + "rgb(246, 211, 70)" + ], + [ + 1, + "rgb(231, 250, 90)" + ] + ] + }, + "legend": { + "itemsizing": "constant", + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hotel Locations in Amsterdam Colored by Price" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Longitude" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "scaleanchor": "x", + "scaleratio": 1, + "title": { + "text": "Latitude" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter(\n", + " df_hotels,\n", + " x=\"longitude\",\n", + " y=\"latitude\",\n", + " color=\"price\",\n", + " size=\"price\",\n", + " title=\"Hotel Locations in Amsterdam Colored by Price\",\n", + " labels={\"longitude\": \"Longitude\", \"latitude\": \"Latitude\", \"price\": \"Price (USD)\"},\n", + " hover_name=\"name\",\n", + " color_continuous_scale=\"thermal\"\n", + ")\n", + "fig.update_yaxes(scaleanchor=\"x\", scaleratio=1) # keep aspect ratio\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "id": "314d7e6d", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + 580.97, + 5, + 8.4 + ], + [ + 303.13, + 4, + 8.9 + ], + [ + 432.32, + 4, + 8.1 + ], + [ + 244.4, + 4, + 8.4 + ], + [ + 233.49, + 3, + 8.2 + ], + [ + 383.23, + 4, + 8.5 + ], + [ + 439, + 4, + 8.9 + ], + [ + 359.75, + 0, + 8 + ], + [ + 406.07, + 4, + 8.8 + ], + [ + 374.75, + 3, + 7.7 + ], + [ + 495.09, + 0, + 8 + ], + [ + 363.57, + 3, + 8.2 + ], + [ + 250.07, + 4, + 8.5 + ], + [ + 243.83, + 4, + 8.7 + ], + [ + 235.57, + 3, + 8.1 + ], + [ + 489.82, + 4, + 8.6 + ], + [ + 291.52, + 4, + 8.2 + ], + [ + 283.23, + 4, + 8.5 + ], + [ + 318.95, + 4, + 8.3 + ], + [ + 210.65, + 3, + 7.9 + ], + [ + 466.54, + 2, + 7.2 + ], + [ + 517.74, + 3, + 8.3 + ], + [ + 369.27, + 4, + 8.7 + ], + [ + 402.02, + 4, + 8.6 + ], + [ + 385.54, + 4, + 9.1 + ], + [ + 286.66, + 4, + 8.6 + ], + [ + 201.77, + 3, + 8.1 + ], + [ + 180.16, + 3, + 8.1 + ], + [ + 231.36, + 4, + 8.5 + ], + [ + 241.1, + 0, + 8 + ], + [ + 225.43, + 4, + 8.4 + ], + [ + 201.28, + 4, + 8.7 + ], + [ + 451.23, + 4, + 8.5 + ], + [ + 321.46, + 4, + 8.5 + ], + [ + 261.53, + 4, + 8.6 + ], + [ + 403.53, + 4, + 8.5 + ], + [ + 195.42, + 3, + 7.7 + ], + [ + 227.27, + 4, + 8.8 + ], + [ + 350.11, + 3, + 7.9 + ], + [ + 392.11, + 3, + 8.2 + ], + [ + 404.7, + 3, + 8.2 + ], + [ + 263.95, + 4, + 8.6 + ], + [ + 392.11, + 3, + 8 + ], + [ + 198.56, + 3, + 7.8 + ], + [ + 219.53, + 4, + 8.3 + ], + [ + 522.03, + 5, + 8.5 + ], + [ + 244.85, + 4, + 8.6 + ], + [ + 280.44, + 3, + 8.6 + ], + [ + 274.1, + 4, + 8.7 + ], + [ + 373.43, + 4, + 8.8 + ], + [ + 383.05, + 4, + 8.4 + ], + [ + 238.57, + 4, + 8.7 + ], + [ + 369, + 4, + 8.6 + ], + [ + 353.11, + 4, + 8.2 + ], + [ + 528.87, + 3, + 8.4 + ], + [ + 561.05, + 4, + 9.2 + ], + [ + 602.76, + 4, + 8.7 + ], + [ + 450.48, + 4, + 8.1 + ], + [ + 330.69, + 4, + 9.1 + ], + [ + 602.76, + 4, + 8.8 + ], + [ + 300, + 4, + 8.7 + ], + [ + 1195.5, + 2, + 6.3 + ], + [ + 318.59, + 4, + 9 + ], + [ + 358.72, + 4, + 8.7 + ], + [ + 1820.46, + 3, + 6.7 + ], + [ + 318.61, + 4, + 8.9 + ], + [ + 332.47, + 4, + 8 + ], + [ + 233.39, + 4, + 8.5 + ], + [ + 571.04, + 1, + 8.1 + ], + [ + 214.46, + 4, + 7.6 + ], + [ + 399.84, + 4, + 8.6 + ], + [ + 421.04, + 4, + 8 + ], + [ + 336.97, + 4, + 8.5 + ], + [ + 279.36, + 4, + 8.2 + ], + [ + 457.29, + 3, + 8 + ], + [ + 194.38, + 4, + 8.2 + ], + [ + 444.14, + 4, + 8.9 + ], + [ + 262.04, + 3, + 7.5 + ], + [ + 348.14, + 3, + 7.9 + ], + [ + 748.06, + 5, + 7.6 + ], + [ + 235.08, + 0, + 8.2 + ], + [ + 520.28, + 5, + 8.8 + ], + [ + 380.69, + 2, + 7.2 + ], + [ + 493.37, + 4, + 8.7 + ], + [ + 913.66, + 2, + 7.7 + ], + [ + 475.3, + 4, + 8.3 + ], + [ + 610.4, + 5, + 8.4 + ], + [ + 419.52, + 3, + 8.7 + ], + [ + 181.21, + 4, + 8.5 + ], + [ + 201.28, + 3, + 8.3 + ], + [ + 241.21, + 4, + 8.3 + ], + [ + 206.6, + 3, + 8.4 + ], + [ + 345.98, + 4, + 8.5 + ], + [ + 398.01, + 5, + 8.9 + ], + [ + 514.33, + 3, + 8.3 + ], + [ + 267.75, + 3, + 8.6 + ], + [ + 338.17, + 2, + 7 + ], + [ + 406.07, + 3, + 7.9 + ], + [ + 414.05, + 4, + 7.7 + ], + [ + 558.47, + 3, + 8.2 + ], + [ + 340.41, + 3, + 8.2 + ], + [ + 212.49, + 3, + 8 + ], + [ + 501.52, + 4, + 9.1 + ], + [ + 241.26, + 3, + 7.9 + ], + [ + 720.87, + 3, + 7.6 + ], + [ + 1123.8, + 4, + 8.9 + ], + [ + 370.35, + 0, + 7.7 + ], + [ + 410.12, + 4, + 8 + ], + [ + 359.98, + 4, + 8.4 + ], + [ + 558.47, + 5, + 7.9 + ], + [ + 358.61, + 4, + 8.7 + ], + [ + 262.68, + 2, + 7.4 + ], + [ + 199.86, + 4, + 7.4 + ], + [ + 358.72, + 3, + 8.6 + ], + [ + 455.56, + 3, + 8.3 + ], + [ + 215.72, + 4, + 8.1 + ], + [ + 284.38, + 4, + 9 + ], + [ + 267.24, + 0, + 8.6 + ], + [ + 417.49, + 4, + 8.4 + ], + [ + 497.44, + 4, + 8.7 + ], + [ + 430.18, + 4, + 8.6 + ], + [ + 217.96, + 4, + 7.5 + ], + [ + 316.35, + 3, + 7.6 + ], + [ + 182.87, + 3, + 7.9 + ], + [ + 257.6, + 4, + 8.3 + ], + [ + 571.04, + 1, + 7.3 + ], + [ + 525.35, + 3, + 8 + ], + [ + 222.32, + 4, + 8.3 + ], + [ + 348.45, + 3, + 6.3 + ], + [ + 350.02, + 4, + 8 + ], + [ + 239.49, + 3, + 8.7 + ], + [ + 284.15, + 4, + 9.3 + ], + [ + 235.27, + 4, + 8.4 + ], + [ + 500.91, + 3, + 8.5 + ], + [ + 235.5, + 2, + 7.6 + ], + [ + 683.41, + 3, + 8.6 + ], + [ + 271.24, + 2, + 7.6 + ], + [ + 245.55, + 3, + 8.9 + ], + [ + 347.19, + 3, + 7.2 + ], + [ + 929.3, + 0, + 9.4 + ], + [ + 211.28, + 0, + 8.4 + ], + [ + 201.28, + 4, + 8.5 + ], + [ + 374.6, + 3, + 8.9 + ], + [ + 347.76, + 2, + 8 + ], + [ + 399.72, + 2, + 7.5 + ], + [ + 329.93, + 0, + 8.2 + ], + [ + 345.2, + 3, + 8.7 + ], + [ + 893.35, + 5, + 8.9 + ], + [ + 223.11, + 3, + 7.9 + ], + [ + 266.48, + 1, + 7.6 + ], + [ + 517.57, + 0, + 8.9 + ], + [ + 700.47, + 3, + 6.9 + ], + [ + 283.14, + 3, + 7.7 + ], + [ + 312.42, + 5, + 7.9 + ], + [ + 325.49, + 0, + 8.6 + ], + [ + 795.76, + 5, + 8.8 + ], + [ + 197.25, + 3, + 7.4 + ], + [ + 201, + 0, + 8.7 + ], + [ + 1027.86, + 3, + 6 + ], + [ + 292.41, + 4, + 9 + ], + [ + 361.66, + 3, + 7.5 + ], + [ + 465.96, + 4, + 8.9 + ], + [ + 391.79, + 0, + 7.9 + ], + [ + 483.44, + 4, + 8.7 + ], + [ + 388.19, + 3, + 7.6 + ], + [ + 231.28, + 4, + 8.2 + ], + [ + 222.92, + 4, + 8.6 + ], + [ + 512.79, + 3, + 7.8 + ], + [ + 257.6, + 3, + 8 + ], + [ + 464.44, + 3, + 8.8 + ], + [ + 235.61, + 0, + 9 + ], + [ + 507.59, + 4, + 8.8 + ], + [ + 516.72, + 5, + 8.5 + ], + [ + 268.58, + 3, + 8 + ], + [ + 428.92, + 3, + 8.3 + ], + [ + 593.88, + 4, + 8.7 + ], + [ + 621.79, + 1, + 7.5 + ], + [ + 616.08, + 5, + 8.8 + ], + [ + 205.77, + 4, + 8.2 + ], + [ + 266.42, + 4, + 8.5 + ], + [ + 263.65, + 3, + 7.7 + ], + [ + 324.18, + 3, + 7.9 + ], + [ + 418.65, + 0, + 7.8 + ], + [ + 318.51, + 4, + 8.6 + ], + [ + 182.21, + 3, + 7.2 + ], + [ + 212.43, + 2, + 6.5 + ], + [ + 303.64, + 0, + 7.4 + ], + [ + 390.84, + 3, + 7.9 + ], + [ + 265.21, + 3, + 7.8 + ], + [ + 460.14, + 4, + 8.4 + ], + [ + 414.91, + 2, + 8.3 + ], + [ + 364.47, + 4, + 8.7 + ], + [ + 241.1, + 0, + 8.9 + ], + [ + 178.27, + 3, + 7.8 + ], + [ + 254.91, + 4, + 9.1 + ], + [ + 177.52, + 3, + 6 + ], + [ + 403.14, + 4, + 7.6 + ], + [ + 1081.16, + 5, + 9.1 + ], + [ + 260.11, + 4, + 8.4 + ], + [ + 873.05, + 5, + 8.6 + ], + [ + 842.59, + 5, + 9 + ], + [ + 213.69, + 3, + 7.2 + ], + [ + 1332.42, + 5, + 8.7 + ], + [ + 981.15, + 0, + 9.7 + ], + [ + 875.59, + 3, + 6.5 + ], + [ + 346.57, + 2, + 7.9 + ], + [ + 913.66, + 5, + 9.2 + ], + [ + 407.34, + 3, + 8.7 + ], + [ + 1532.06, + 5, + 9.5 + ], + [ + 227.15, + 3, + 6.9 + ], + [ + 355.31, + 4, + 8.6 + ], + [ + 408.06, + 2, + 6.9 + ], + [ + 747.42, + 5, + 9.4 + ], + [ + 1713.11, + 5, + 9.6 + ], + [ + 363.34, + 3, + 7.9 + ], + [ + 184.02, + 3, + 7.7 + ], + [ + 348.97, + 3, + 6.9 + ], + [ + 1407.03, + 5, + 9.7 + ] + ], + "hovertemplate": "%{hovertext}

price=%{marker.color}
latitude=%{lat}
longitude=%{lon}
stars=%{customdata[1]}
review_score=%{customdata[2]}", + "hovertext": [ + "Hyatt Regency Amsterdam", + "Chasse Residency Hotel", + "Swissôtel Amsterdam", + "Holiday Inn - the niu, Fender Amsterdam", + "Holiday Inn Express Amsterdam - North Riverside by IHG", + "Mövenpick Hotel Amsterdam City Centre", + "Hotel V Oosterpark", + "Hans Brinker Hostel Amsterdam", + "Citadines Canal Amsterdam", + "ibis Amsterdam Centre", + "Renaissance Amsterdam Hotel", + "Hotel Van Gogh", + "Mercure Amsterdam Sloterdijk Station", + "Ruby Emma Hotel Amsterdam", + "Hampton By Hilton Amsterdam Arena Boulevard", + "Park Plaza Victoria Amsterdam", + "Inntel Hotels Amsterdam Landmark", + "Apollo Hotel Amsterdam, a Tribute Portfolio Hotel", + "DoubleTree by Hilton Amsterdam Centraal Station", + "Holiday Inn Express Amsterdam Arena Towers by IHG", + "ITC Hotel", + "Holiday Inn Express Amsterdam - City Hall by IHG", + "Sir Adam Hotel, part of Sircle Collection", + "Bob W Amsterdam Noord", + "Monet Garden Hotel Amsterdam", + "Bob W Oosterpark", + "Holiday Inn Express Amsterdam - Sloterdijk Station by IHG", + "Via Amsterdam", + "Postillion Hotel Amsterdam", + "Hotel Hortus", + "Park Inn by Radisson Amsterdam City West", + "XO Hotels Couture", + "Clayton Hotel Amsterdam American", + "DoubleTree by Hilton Amsterdam - NDSM Wharf", + "Olympic Hotel", + "Sir Albert Hotel, part of Sircle Collection", + "The Concert Hotel", + "Van der Valk Hotel Amsterdam - Amstel", + "ibis Amsterdam Centre Stopera", + "ibis Styles Amsterdam City", + "Stanley Collection Hotel Hegra Amsterdam", + "Leonardo Royal Hotel Amsterdam", + "ibis Styles Amsterdam Amstel", + "Joy Hotel", + "Mercure Amsterdam City Hotel", + "Pestana Amsterdam Riverside", + "The Social Hub Amsterdam City", + "Motel One Amsterdam", + "Van der Valk Hotel Amsterdam Zuidas -Rai", + "Avani Museum Quarter Amsterdam Hotel", + "Hampton by Hilton Amsterdam Centre East", + "Crowne Plaza Amsterdam - South by IHG", + "Residence Inn by Marriott Amsterdam Houthavens", + "Inntel Hotels Amsterdam Centre", + "Conscious Hotel The Tire Station", + "Hotel Estheréa", + "Canal House", + "Leonardo Boutique Museumhotel", + "PREMIER SUITES Amsterdam", + "Banks Mansion - All Inclusive Boutique Hotel", + "Jaz in the City Amsterdam", + "Camp-Inn Hotel", + "Mercure Amsterdam North Station", + "Huygens Place Amsterdam", + "Triple G Hotels", + "INNSiDE by Meliá Amsterdam", + "Leonardo Hotel Amsterdam City Center", + "Novotel Amsterdam City", + "The Crown Hotel", + "Fletcher Hotel Amsterdam", + "Room Mate Aitana, Amsterdam", + "NH Amsterdam Schiller", + "Adam Suites Hotel", + "Moxy Amsterdam Houthavens", + "The Times Hotel", + "XO Hotels Blue Tower", + "citizenM Amstel Amsterdam", + "Hotel Atlas Vondelpark", + "Hotel Fine Harmony", + "W Amsterdam", + "De Bedstee Boutique Capsules", + "Kimpton De Witt Amsterdam by IHG", + "Hotel Washington", + "Dikker & Thijs Hotel", + "Mozart Hotel", + "Hotel Arena", + "The Diamond Amsterdam", + "The Bank Hotel", + "Courtyard by Marriott Amsterdam Arena Atlas", + "Hotel Levell", + "YOTEL Amsterdam", + "Bunk Hotel Amsterdam", + "Conscious Hotel Westerpark", + "Hotel Okura Amsterdam – The Leading Hotels of the World", + "Hotel New Kit", + "Boutique Hotel View", + "Quentin England Hotel", + "Generator Amsterdam", + "De Jonker Urban Suites", + "Hotel Mansion", + "Leonardo Hotel Amsterdam Leidse Square", + "ibis Amsterdam City West", + "Morgan & Mees Amsterdam", + "XO Hotel Inner", + "Hotel Allure", + "Met Hotel Amsterdam", + "Limehome Amsterdam Gatwickstraat", + "Quentin Zoo hotel", + "The Manor Amsterdam", + "Amsterdam Marriott Hotel", + "Boutique Hotel Notting Hill", + "Nadia Hotel", + "OZO Hotels Arena Amsterdam", + "Krisotel", + "Nova Hotel", + "Holiday Inn Amsterdam - Arena Towers by IHG", + "Element Amsterdam", + "Pension Homeland", + "Park Centraal Amsterdam, part of Sircle Collection", + "Nova Apartments Amsterdam", + "Park Plaza Vondelpark Amsterdam", + "Mercure Hotel Amsterdam West", + "Hotel Espresso", + "XO Hotels Blue Square", + "Leonardo Hotel Amsterdam Rembrandtpark", + "The Old Nickel Hotel", + "Max Brown Hotel Canal District, part of Sircle Collection", + "Corendon Amsterdam New-West, a Tribute Portfolio Hotel", + "Quentin Amsterdam Hotel", + "NH Amsterdam Caransa", + "Hotel2Stay", + "The July - Boat & Co", + "Urban Lodge Hotel", + "Conscious Hotel Vondelpark", + "easyHotel Amsterdam City Centre South", + "The IF Boutique hotel", + "Hotel Old Quarter", + "Hotel Casa Amsterdam", + "Delta Hotel City Center", + "Studio Koggeschip", + "Hotel Jansen Amsterdam Bajeskwartier", + "XO Hotels Park West", + "Amsterdam ID Aparthotel", + "Weber Hotel", + "Hotel Pagi", + "Golden Mansion Aparthotel", + "Hotel Fita", + "Pulitzer Amsterdam", + "Qbic Amsterdam WTC", + "Hotel Corner House", + "Amsterdam-Houseboat-Amstel", + "OZO Hotels Cordial Amsterdam", + "The Alfred Hotel", + "Bilderberg Garden Hotel", + "hotel calisto", + "Andaz Amsterdam, Prinsengracht, By Hyatt", + "Hotel Victorie", + "Volkshotel", + "Belfort Hotel", + "nhow Amsterdam Rai", + "Avenue Hotel", + "Jan Luyken Amsterdam", + "Heart of Amsterdam Hostel", + "Conscious Hotel Museum Square", + "Cityview Hotel", + "Four Elements Hotel", + "NH Amsterdam Noord", + "Ciao Papa Hotel Amsterdam Central Station", + "Holiday Inn Express Amsterdam - South by IHG", + "Hotel Omega", + "Outside Inn", + "INK Hotel Amsterdam - MGallery Collection", + "The College Hotel Amsterdam, Autograph Collection", + "ClinkNOORD Hostel", + "Hotel Residence Le Coin", + "art'otel amsterdam, Powered by Radisson Hotels", + "Hotel Abba", + "Tivoli Doelen Amsterdam Hotel", + "NH Amsterdam Zuid", + "The Social Hub Amsterdam West 4 star", + "Hotel Park Plantage", + "Hotel & Wellness Zuiver", + "Limehome Amsterdam Leidsekruisstraat", + "citizenM Amsterdam South", + "Bastion Hotel Amsterdam Amstel", + "MAX Hotel Amsterdam", + "City Rooms Amsterdam Hemonystraat - Digital access", + "Max Brown Hotel Museum Square, part of Sircle Collection", + "Hotel Fogo Amsterdam", + "Radisson Blu Hotel, Amsterdam City Center", + "Weber Hotel 397", + "The Delphi - Amsterdam Townhouse", + "Skotel Amsterdam, Hotelschool The Hague", + "XO Hotels Infinity", + "The July - Twenty Eight", + "Westlake Hotels Amsterdam", + "Leonardo Boutique Hotel The Lancaster Hotel Amsterdam", + "Conservatorium Hotel - Operated by Mandarin Oriental", + "Via Suites", + "InterContinental Amstel Amsterdam by IHG", + "Sofitel Legend The Grand Amsterdam", + "Q-Factory Hotel", + "Rosewood Amsterdam", + "Leidse Square 5 star Luxury Apartment", + "OZO Hotels Armada Amsterdam", + "Weber Hotel 117", + "De L’Europe Amsterdam – The Leading Hotels of the World", + "Motel One Amsterdam-Waterlooplein", + "Waldorf Astoria Amsterdam", + "Bastion Hotel Amsterdam Zuidwest", + "The Hoxton Lloyd Amsterdam City Centre East", + "Quentin Golden Bear Hotel", + "Pillows Grand Boutique Hotel Maurits at the Park - Small Luxury Hotels", + "Hotel TwentySeven - Small Luxury Hotels of the World", + "Prinsengracht Hotel", + "Campanile Hotel & Restaurant Amsterdam Zuid-Oost", + "Hotel Doria", + "Crane Hotel Faralda" + ], + "lat": [ + 52.361798, + 52.351902, + 52.3735015639879, + 52.3689672, + 52.3841044464671, + 52.3778244039078, + 52.3618697208272, + 52.3636789, + 52.361026, + 52.3795419603305, + 52.3777675899871, + 52.3590558708137, + 52.387911, + 52.338347, + 52.3130603489422, + 52.3773479298031, + 52.3734396516721, + 52.3485731229379, + 52.3767126229996, + 52.3095778808935, + 52.3622245746876, + 52.370508, + 52.3837837705751, + 52.3965941042896, + 52.3697879175963, + 52.3549487, + 52.3882024042909, + 52.326207, + 52.3336117162739, + 52.3667708460243, + 52.390137, + 52.3511038699022, + 52.363893, + 52.4006568133759, + 52.341453, + 52.3545448464899, + 52.3549105780971, + 52.3333118146981, + 52.3700479003282, + 52.3579747412563, + 52.3714185900611, + 52.332426, + 52.3578952935714, + 52.3052759309378, + 52.3352390967979, + 52.3533287816013, + 52.3545938706784, + 52.3389789, + 52.336339, + 52.3557710388443, + 52.37133354, + 52.3358045267172, + 52.401722, + 52.3761845581983, + 52.357210691928, + 52.3704728678235, + 52.3762435052799, + 52.3612528575306, + 52.3375320353285, + 52.3653832244084, + 52.3142104, + 52.3826261860431, + 52.402437, + 52.362523087804, + 52.382749, + 52.3399845540409, + 52.3621398113363, + 52.333801725009, + 52.374897, + 52.2944386032995, + 52.3842761, + 52.3657488663193, + 52.3805227130876, + 52.401708, + 52.3754755496354, + 52.3793250181387, + 52.360949, + 52.3577085499967, + 52.3742253375528, + 52.3727871, + 52.3557911065058, + 52.3771969, + 52.3548896909311, + 52.3650847306161, + 52.3635697104527, + 52.3609924189596, + 52.3637926, + 52.38093936996, + 52.310162, + 52.3043624730413, + 52.391486, + 52.38808, + 52.3866061, + 52.3484551548406, + 52.378758, + 52.3648906471507, + 52.3614788973101, + 52.360993770212, + 52.3660603421124, + 52.3741996, + 52.364136, + 52.3922488195172, + 52.3743254, + 52.3569550152757, + 52.3618286015023, + 52.362654, + 52.3905283, + 52.36676, + 52.3590874033621, + 52.3626582165351, + 52.3584051486544, + 52.3738200603831, + 52.304806261585, + 52.365747, + 52.3712343600445, + 52.3096565954741, + 52.3318032874812, + 52.3730475260495, + 52.361593145237, + 52.3545784300335, + 52.3542499654985, + 52.3375048702365, + 52.3628600898999, + 52.3785865880488, + 52.3679418353713, + 52.3763294696329, + 52.3788935865371, + 52.3466449, + 52.3642477907647, + 52.3664514799061, + 52.387052242092, + 52.394036005692, + 52.3856494, + 52.3578617125481, + 52.3522127755719, + 52.359005091078, + 52.3759119269223, + 52.3498912311701, + 52.3756892358625, + 52.3773253, + 52.339954, + 52.3856249128608, + 52.3874575746578, + 52.3648857336342, + 52.3692724674063, + 52.3590162611425, + 52.3592102572324, + 52.37282362571, + 52.3402687108229, + 52.3742711914492, + 52.3581028827505, + 52.3707029544915, + 52.3535724695694, + 52.3513157924539, + 52.3823596305708, + 52.3678574924207, + 52.3468297845623, + 52.3537109, + 52.3576802926766, + 52.338489, + 52.3766373025148, + 52.3597614573926, + 52.3723323595859, + 52.3554163721413, + 52.379748, + 52.3544748942031, + 52.3921931674547, + 52.378642, + 52.3258551826725, + 52.355843, + 52.326535, + 52.3755639716479, + 52.3527640630135, + 52.3841992220711, + 52.3678173680479, + 52.3776721292375, + 52.3627085825928, + 52.3682186101361, + 52.3266731785754, + 52.37226, + 52.3664334643127, + 52.3310022397142, + 52.3636477, + 52.3418435228634, + 52.3337378043121, + 52.357917817414, + 52.35813, + 52.3599989709438, + 52.355375399345, + 52.3701379708517, + 52.3649577984884, + 52.3505248757999, + 52.3692891, + 52.381116191928, + 52.3432309277564, + 52.3623732172734, + 52.3658921741934, + 52.3585869750682, + 52.326138, + 52.3600415594456, + 52.3711983327514, + 52.3575427561554, + 52.36573564045, + 52.365333, + 52.3640545225574, + 52.3651023703734, + 52.3676388550903, + 52.3699794423125, + 52.364638, + 52.3575345009985, + 52.374241, + 52.3656137470407, + 52.362194, + 52.3724914, + 52.36198338772, + 52.3117288441657, + 52.372422425451, + 52.3992798782431 + ], + "legendgroup": "", + "lon": [ + 4.911744, + 4.924964, + 4.89331215620041, + 4.9463418, + 4.91952350926207, + 4.91414219141006, + 4.92270692381791, + 4.88805460000003, + 4.893588, + 4.89696532487869, + 4.89438101649284, + 4.88014921545982, + 4.834296, + 4.92086, + 4.94809359312057, + 4.89777535200119, + 4.92843508863831, + 4.88510727882385, + 4.90566909313202, + 4.94186959259036, + 4.89858202636242, + 4.90835, + 4.90240858888546, + 4.90684051779097, + 4.90726228255619, + 4.9285033, + 4.83745515346527, + 4.953709, + 4.92219427514647, + 4.90905001759529, + 4.842565, + 4.84125409510648, + 4.881296, + 4.89350185850526, + 4.853175, + 4.88731205463409, + 4.87704757601023, + 4.91446652778632, + 4.90765661001205, + 4.90066040307283, + 4.88726913928986, + 4.917847, + 4.90029025822878, + 4.95023131370544, + 4.9135098606348, + 4.90716399999997, + 4.91263214907383, + 4.89257459999999, + 4.887724, + 4.88620162010193, + 4.934809346, + 4.87454742193222, + 4.874767, + 4.89444941282272, + 4.85544981739667, + 4.88849088549614, + 4.88632701337337, + 4.88415978848934, + 4.86796079629515, + 4.89309288561344, + 4.93931620000001, + 4.85761788032187, + 4.931234, + 4.87563338130713, + 4.85784, + 4.87108765145111, + 4.87834140658379, + 4.88854050636292, + 4.89999, + 4.94534432888031, + 4.89465280000002, + 4.8966957628727, + 4.8869948329575, + 4.874811, + 4.88894149661064, + 4.84565332531929, + 4.905943, + 4.87398952245712, + 4.90481983743439, + 4.89000590000001, + 4.87775735557079, + 4.8955395, + 4.88353483378887, + 4.88395091146231, + 4.88622978329659, + 4.91579040884972, + 4.8833159, + 4.89037379622459, + 4.94645200000002, + 4.95098888346706, + 4.903551, + 4.91425, + 4.87529649999999, + 4.89281058311462, + 4.837766, + 4.87977102398872, + 4.87710893154144, + 4.91903621904908, + 4.91230891408611, + 4.90487689999998, + 4.878342, + 4.8501044511795, + 4.87461831349185, + 4.87741805613041, + 4.91056948900223, + 4.835317, + 4.841889, + 4.911423, + 4.92611087858677, + 4.87966239452362, + 4.89892099052668, + 4.88560751080513, + 4.94765461349175, + 4.879751, + 4.89013105630875, + 4.94188032142642, + 4.87750001904908, + 4.91685894973762, + 4.88302554935217, + 4.87975794821978, + 4.86642569303513, + 4.81692954897881, + 4.87637232989073, + 4.82055857777596, + 4.84405875205994, + 4.89954560995102, + 4.89205554127693, + 4.83109839999997, + 4.87990915775299, + 4.89692106842995, + 4.8394093674591, + 4.88258942460629, + 4.83444299999996, + 4.85650956630707, + 4.89166025072336, + 4.90271598100662, + 4.89886298775673, + 4.91888970136643, + 4.89610970020294, + 4.89305579999996, + 4.924154, + 4.84716810286045, + 4.83446717262268, + 4.88023370504379, + 4.89186644554138, + 4.89794578650822, + 4.87968116998672, + 4.88328203558922, + 4.87348794937134, + 4.89150166511536, + 4.89719734750327, + 4.89241696894169, + 4.87214963988117, + 4.87409010529518, + 4.8874618914017, + 4.88283142447472, + 4.90290641784668, + 4.91191600000002, + 4.85044240951538, + 4.891107, + 4.89465594291687, + 4.88107189536095, + 4.89758223295212, + 4.87812280654907, + 4.892712, + 5.00559633862306, + 4.91089671850204, + 4.895241, + 4.8670694231987, + 4.875724, + 4.931027, + 4.89289775490761, + 4.88361194729805, + 4.90390362334097, + 4.89441722631454, + 4.89721544086933, + 4.87461045384407, + 4.89572614431381, + 4.87995475530624, + 4.8364, + 4.91136878728867, + 4.85347867012024, + 4.8853753, + 4.87593680620193, + 4.92792874574661, + 4.9021178483963, + 4.902205, + 4.88204687833786, + 4.772438482658, + 4.89670112729073, + 4.88048851490021, + 4.87697213888168, + 4.8438768, + 4.8208911716938, + 4.85753103547779, + 4.79466319084167, + 4.91293653845787, + 4.87848825752735, + 4.953825, + 4.90546524524689, + 4.8954002559185, + 4.93057484418023, + 4.88310919170289, + 4.8819123, + 4.89844556897879, + 4.8803501018524, + 4.89420533180237, + 4.90738492868036, + 4.89644229999999, + 4.84374225139618, + 4.93466, + 4.88519445061684, + 4.919684, + 4.89332549999995, + 4.89448126405478, + 4.98621582984924, + 4.89441740508482, + 4.89473192953028 + ], + "marker": { + "color": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "coloraxis": "coloraxis", + "size": [ + 580.97, + 303.13, + 432.32, + 244.4, + 233.49, + 383.23, + 439, + 359.75, + 406.07, + 374.75, + 495.09, + 363.57, + 250.07, + 243.83, + 235.57, + 489.82, + 291.52, + 283.23, + 318.95, + 210.65, + 466.54, + 517.74, + 369.27, + 402.02, + 385.54, + 286.66, + 201.77, + 180.16, + 231.36, + 241.1, + 225.43, + 201.28, + 451.23, + 321.46, + 261.53, + 403.53, + 195.42, + 227.27, + 350.11, + 392.11, + 404.7, + 263.95, + 392.11, + 198.56, + 219.53, + 522.03, + 244.85, + 280.44, + 274.1, + 373.43, + 383.05, + 238.57, + 369, + 353.11, + 528.87, + 561.05, + 602.76, + 450.48, + 330.69, + 602.76, + 300, + 1195.5, + 318.59, + 358.72, + 1820.46, + 318.61, + 332.47, + 233.39, + 571.04, + 214.46, + 399.84, + 421.04, + 336.97, + 279.36, + 457.29, + 194.38, + 444.14, + 262.04, + 348.14, + 748.06, + 235.08, + 520.28, + 380.69, + 493.37, + 913.66, + 475.3, + 610.4, + 419.52, + 181.21, + 201.28, + 241.21, + 206.6, + 345.98, + 398.01, + 514.33, + 267.75, + 338.17, + 406.07, + 414.05, + 558.47, + 340.41, + 212.49, + 501.52, + 241.26, + 720.87, + 1123.8, + 370.35, + 410.12, + 359.98, + 558.47, + 358.61, + 262.68, + 199.86, + 358.72, + 455.56, + 215.72, + 284.38, + 267.24, + 417.49, + 497.44, + 430.18, + 217.96, + 316.35, + 182.87, + 257.6, + 571.04, + 525.35, + 222.32, + 348.45, + 350.02, + 239.49, + 284.15, + 235.27, + 500.91, + 235.5, + 683.41, + 271.24, + 245.55, + 347.19, + 929.3, + 211.28, + 201.28, + 374.6, + 347.76, + 399.72, + 329.93, + 345.2, + 893.35, + 223.11, + 266.48, + 517.57, + 700.47, + 283.14, + 312.42, + 325.49, + 795.76, + 197.25, + 201, + 1027.86, + 292.41, + 361.66, + 465.96, + 391.79, + 483.44, + 388.19, + 231.28, + 222.92, + 512.79, + 257.6, + 464.44, + 235.61, + 507.59, + 516.72, + 268.58, + 428.92, + 593.88, + 621.79, + 616.08, + 205.77, + 266.42, + 263.65, + 324.18, + 418.65, + 318.51, + 182.21, + 212.43, + 303.64, + 390.84, + 265.21, + 460.14, + 414.91, + 364.47, + 241.1, + 178.27, + 254.91, + 177.52, + 403.14, + 1081.16, + 260.11, + 873.05, + 842.59, + 213.69, + 1332.42, + 981.15, + 875.59, + 346.57, + 913.66, + 407.34, + 1532.06, + 227.15, + 355.31, + 408.06, + 747.42, + 1713.11, + 363.34, + 184.02, + 348.97, + 1407.03 + ], + "sizemode": "area", + "sizeref": 4.55115 + }, + "mode": "markers", + "name": "", + "showlegend": false, + "subplot": "mapbox", + "type": "scattermapbox" + } + ], + "layout": { + "coloraxis": { + "colorbar": { + "title": { + "text": "price" + } + }, + "colorscale": [ + [ + 0, + "rgb(3, 35, 51)" + ], + [ + 0.09090909090909091, + "rgb(13, 48, 100)" + ], + [ + 0.18181818181818182, + "rgb(53, 50, 155)" + ], + [ + 0.2727272727272727, + "rgb(93, 62, 153)" + ], + [ + 0.36363636363636365, + "rgb(126, 77, 143)" + ], + [ + 0.45454545454545453, + "rgb(158, 89, 135)" + ], + [ + 0.5454545454545454, + "rgb(193, 100, 121)" + ], + [ + 0.6363636363636364, + "rgb(225, 113, 97)" + ], + [ + 0.7272727272727273, + "rgb(246, 139, 69)" + ], + [ + 0.8181818181818182, + "rgb(251, 173, 60)" + ], + [ + 0.9090909090909091, + "rgb(246, 211, 70)" + ], + [ + 1, + "rgb(231, 250, 90)" + ] + ] + }, + "height": 1000, + "legend": { + "itemsizing": "constant", + "tracegroupgap": 0 + }, + "mapbox": { + "center": { + "lat": 52.36194237574405, + "lon": 4.890813530014372 + }, + "domain": { + "x": [ + 0, + 1 + ], + "y": [ + 0, + 1 + ] + }, + "style": "open-street-map", + "zoom": 11.5 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hotel Locations in Amsterdam Colored by Price" + }, + "width": 1000 + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter_mapbox(\n", + " df_hotels,\n", + " lat=\"latitude\",\n", + " lon=\"longitude\",\n", + " color=\"price\",\n", + " size=\"price\",\n", + " hover_name=\"name\",\n", + " hover_data={\"price\": True, \"stars\": True, \"review_score\": True},\n", + " color_continuous_scale=\"thermal\",\n", + " size_max=20,\n", + " zoom=11.5, # good zoom level for Amsterdam\n", + " title=\"Hotel Locations in Amsterdam Colored by Price\",\n", + ")\n", + "\n", + "fig.update_layout(\n", + " mapbox_style=\"open-street-map\", \n", + " height=1000,\n", + " width=1000\n", + ")\n", + "\n", + "fig.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7b9b9cf4", + "metadata": {}, + "outputs": [], + "source": [ + "# SABINA COMMENT: When using gradients on heatmaps, please use divergent gradients \n", + "# (i.e. gradients that start in one colour and end in the opposite colour)\n", + "# only when you have both NEGATIVE & POSITIVE values\n", + "# When you have ONLY NEGATIVE or ONLY POSITIVE values, please stick to monochrome gradients\n", + "# This way, I can easily understand: darker shade = higher price\n", + "# Here, I see blue and yellow and get confused, which is why\n", + "# I'm glad you also used size as a way to indicate price, it's\n", + "# much less confusing" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "510b6025", + "metadata": {}, + "outputs": [], + "source": [ + "# The highest-priced hotels (yellow/orange markers) are mainly concentrated in Amsterdam’s historic city center, where demand and tourism activity are strongest.\n", + "# Mid-priced hotels (purple/red markers) form a wide ring around the city center, showing a gradual drop in price as you move outward.\n", + "# The lowest-priced hotels (dark blue markers) are mostly located outside the central canal belt.\n", + "# This pattern reflects a classic location premium: the more central and scenic the location, the higher the price.\n", + "# A few expensive outliers appear outside the center, likely boutique or luxury properties positioned in quieter upscale neighborhoods.\n", + "# A few cheaper hotels are also located in the city center, typically because they are hostels, older budget properties, have fewer amenities, or compete aggressively in a dense market to attract price-sensitive travelers.\n", + "# Overall, the map shows that location strongly influences price, with the center commanding a premium—but exceptions exist due to hotel type, quality, and market strategy." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "91c07962", + "metadata": {}, + "outputs": [], + "source": [ + "# SABINA COMMENT: To make this analysis more quantitative, I would have\n", + "# calculated a feature called distance_from_centre where you pick whatever you \n", + "# want to call the centre (e.g. Amsterdam Centraal station maybe)\n", + "# and then do a scatterplot of the distance vs the price" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "9f0ec490", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + 5, + 580.97, + 8.4 + ], + [ + 4, + 303.13, + 8.9 + ], + [ + 4, + 432.32, + 8.1 + ], + [ + 4, + 244.4, + 8.4 + ], + [ + 3, + 233.49, + 8.2 + ], + [ + 4, + 383.23, + 8.5 + ], + [ + 4, + 439, + 8.9 + ], + [ + 0, + 359.75, + 8 + ], + [ + 4, + 406.07, + 8.8 + ], + [ + 3, + 374.75, + 7.7 + ], + [ + 0, + 495.09, + 8 + ], + [ + 3, + 363.57, + 8.2 + ], + [ + 4, + 250.07, + 8.5 + ], + [ + 4, + 243.83, + 8.7 + ], + [ + 3, + 235.57, + 8.1 + ], + [ + 4, + 489.82, + 8.6 + ], + [ + 4, + 291.52, + 8.2 + ], + [ + 4, + 283.23, + 8.5 + ], + [ + 4, + 318.95, + 8.3 + ], + [ + 3, + 210.65, + 7.9 + ], + [ + 2, + 466.54, + 7.2 + ], + [ + 3, + 517.74, + 8.3 + ], + [ + 4, + 369.27, + 8.7 + ], + [ + 4, + 402.02, + 8.6 + ], + [ + 4, + 385.54, + 9.1 + ], + [ + 4, + 286.66, + 8.6 + ], + [ + 3, + 201.77, + 8.1 + ], + [ + 3, + 180.16, + 8.1 + ], + [ + 4, + 231.36, + 8.5 + ], + [ + 0, + 241.1, + 8 + ], + [ + 4, + 225.43, + 8.4 + ], + [ + 4, + 201.28, + 8.7 + ], + [ + 4, + 451.23, + 8.5 + ], + [ + 4, + 321.46, + 8.5 + ], + [ + 4, + 261.53, + 8.6 + ], + [ + 4, + 403.53, + 8.5 + ], + [ + 3, + 195.42, + 7.7 + ], + [ + 4, + 227.27, + 8.8 + ], + [ + 3, + 350.11, + 7.9 + ], + [ + 3, + 392.11, + 8.2 + ], + [ + 3, + 404.7, + 8.2 + ], + [ + 4, + 263.95, + 8.6 + ], + [ + 3, + 392.11, + 8 + ], + [ + 3, + 198.56, + 7.8 + ], + [ + 4, + 219.53, + 8.3 + ], + [ + 5, + 522.03, + 8.5 + ], + [ + 4, + 244.85, + 8.6 + ], + [ + 3, + 280.44, + 8.6 + ], + [ + 4, + 274.1, + 8.7 + ], + [ + 4, + 373.43, + 8.8 + ], + [ + 4, + 383.05, + 8.4 + ], + [ + 4, + 238.57, + 8.7 + ], + [ + 4, + 369, + 8.6 + ], + [ + 4, + 353.11, + 8.2 + ], + [ + 3, + 528.87, + 8.4 + ], + [ + 4, + 561.05, + 9.2 + ], + [ + 4, + 602.76, + 8.7 + ], + [ + 4, + 450.48, + 8.1 + ], + [ + 4, + 330.69, + 9.1 + ], + [ + 4, + 602.76, + 8.8 + ], + [ + 4, + 300, + 8.7 + ], + [ + 2, + 1195.5, + 6.3 + ], + [ + 4, + 318.59, + 9 + ], + [ + 4, + 358.72, + 8.7 + ], + [ + 3, + 1820.46, + 6.7 + ], + [ + 4, + 318.61, + 8.9 + ], + [ + 4, + 332.47, + 8 + ], + [ + 4, + 233.39, + 8.5 + ], + [ + 1, + 571.04, + 8.1 + ], + [ + 4, + 214.46, + 7.6 + ], + [ + 4, + 399.84, + 8.6 + ], + [ + 4, + 421.04, + 8 + ], + [ + 4, + 336.97, + 8.5 + ], + [ + 4, + 279.36, + 8.2 + ], + [ + 3, + 457.29, + 8 + ], + [ + 4, + 194.38, + 8.2 + ], + [ + 4, + 444.14, + 8.9 + ], + [ + 3, + 262.04, + 7.5 + ], + [ + 3, + 348.14, + 7.9 + ], + [ + 5, + 748.06, + 7.6 + ], + [ + 0, + 235.08, + 8.2 + ], + [ + 5, + 520.28, + 8.8 + ], + [ + 2, + 380.69, + 7.2 + ], + [ + 4, + 493.37, + 8.7 + ], + [ + 2, + 913.66, + 7.7 + ], + [ + 4, + 475.3, + 8.3 + ], + [ + 5, + 610.4, + 8.4 + ], + [ + 3, + 419.52, + 8.7 + ], + [ + 4, + 181.21, + 8.5 + ], + [ + 3, + 201.28, + 8.3 + ], + [ + 4, + 241.21, + 8.3 + ], + [ + 3, + 206.6, + 8.4 + ], + [ + 4, + 345.98, + 8.5 + ], + [ + 5, + 398.01, + 8.9 + ], + [ + 3, + 514.33, + 8.3 + ], + [ + 3, + 267.75, + 8.6 + ], + [ + 2, + 338.17, + 7 + ], + [ + 3, + 406.07, + 7.9 + ], + [ + 4, + 414.05, + 7.7 + ], + [ + 3, + 558.47, + 8.2 + ], + [ + 3, + 340.41, + 8.2 + ], + [ + 3, + 212.49, + 8 + ], + [ + 4, + 501.52, + 9.1 + ], + [ + 3, + 241.26, + 7.9 + ], + [ + 3, + 720.87, + 7.6 + ], + [ + 4, + 1123.8, + 8.9 + ], + [ + 0, + 370.35, + 7.7 + ], + [ + 4, + 410.12, + 8 + ], + [ + 4, + 359.98, + 8.4 + ], + [ + 5, + 558.47, + 7.9 + ], + [ + 4, + 358.61, + 8.7 + ], + [ + 2, + 262.68, + 7.4 + ], + [ + 4, + 199.86, + 7.4 + ], + [ + 3, + 358.72, + 8.6 + ], + [ + 3, + 455.56, + 8.3 + ], + [ + 4, + 215.72, + 8.1 + ], + [ + 4, + 284.38, + 9 + ], + [ + 0, + 267.24, + 8.6 + ], + [ + 4, + 417.49, + 8.4 + ], + [ + 4, + 497.44, + 8.7 + ], + [ + 4, + 430.18, + 8.6 + ], + [ + 4, + 217.96, + 7.5 + ], + [ + 3, + 316.35, + 7.6 + ], + [ + 3, + 182.87, + 7.9 + ], + [ + 4, + 257.6, + 8.3 + ], + [ + 1, + 571.04, + 7.3 + ], + [ + 3, + 525.35, + 8 + ], + [ + 4, + 222.32, + 8.3 + ], + [ + 3, + 348.45, + 6.3 + ], + [ + 4, + 350.02, + 8 + ], + [ + 3, + 239.49, + 8.7 + ], + [ + 4, + 284.15, + 9.3 + ], + [ + 4, + 235.27, + 8.4 + ], + [ + 3, + 500.91, + 8.5 + ], + [ + 2, + 235.5, + 7.6 + ], + [ + 3, + 683.41, + 8.6 + ], + [ + 2, + 271.24, + 7.6 + ], + [ + 3, + 245.55, + 8.9 + ], + [ + 3, + 347.19, + 7.2 + ], + [ + 0, + 929.3, + 9.4 + ], + [ + 0, + 211.28, + 8.4 + ], + [ + 4, + 201.28, + 8.5 + ], + [ + 3, + 374.6, + 8.9 + ], + [ + 2, + 347.76, + 8 + ], + [ + 2, + 399.72, + 7.5 + ], + [ + 0, + 329.93, + 8.2 + ], + [ + 3, + 345.2, + 8.7 + ], + [ + 5, + 893.35, + 8.9 + ], + [ + 3, + 223.11, + 7.9 + ], + [ + 1, + 266.48, + 7.6 + ], + [ + 0, + 517.57, + 8.9 + ], + [ + 3, + 700.47, + 6.9 + ], + [ + 3, + 283.14, + 7.7 + ], + [ + 5, + 312.42, + 7.9 + ], + [ + 0, + 325.49, + 8.6 + ], + [ + 5, + 795.76, + 8.8 + ], + [ + 3, + 197.25, + 7.4 + ], + [ + 0, + 201, + 8.7 + ], + [ + 3, + 1027.86, + 6 + ], + [ + 4, + 292.41, + 9 + ], + [ + 3, + 361.66, + 7.5 + ], + [ + 4, + 465.96, + 8.9 + ], + [ + 0, + 391.79, + 7.9 + ], + [ + 4, + 483.44, + 8.7 + ], + [ + 3, + 388.19, + 7.6 + ], + [ + 4, + 231.28, + 8.2 + ], + [ + 4, + 222.92, + 8.6 + ], + [ + 3, + 512.79, + 7.8 + ], + [ + 3, + 257.6, + 8 + ], + [ + 3, + 464.44, + 8.8 + ], + [ + 0, + 235.61, + 9 + ], + [ + 4, + 507.59, + 8.8 + ], + [ + 5, + 516.72, + 8.5 + ], + [ + 3, + 268.58, + 8 + ], + [ + 3, + 428.92, + 8.3 + ], + [ + 4, + 593.88, + 8.7 + ], + [ + 1, + 621.79, + 7.5 + ], + [ + 5, + 616.08, + 8.8 + ], + [ + 4, + 205.77, + 8.2 + ], + [ + 4, + 266.42, + 8.5 + ], + [ + 3, + 263.65, + 7.7 + ], + [ + 3, + 324.18, + 7.9 + ], + [ + 0, + 418.65, + 7.8 + ], + [ + 4, + 318.51, + 8.6 + ], + [ + 3, + 182.21, + 7.2 + ], + [ + 2, + 212.43, + 6.5 + ], + [ + 0, + 303.64, + 7.4 + ], + [ + 3, + 390.84, + 7.9 + ], + [ + 3, + 265.21, + 7.8 + ], + [ + 4, + 460.14, + 8.4 + ], + [ + 2, + 414.91, + 8.3 + ], + [ + 4, + 364.47, + 8.7 + ], + [ + 0, + 241.1, + 8.9 + ], + [ + 3, + 178.27, + 7.8 + ], + [ + 4, + 254.91, + 9.1 + ], + [ + 3, + 177.52, + 6 + ], + [ + 4, + 403.14, + 7.6 + ], + [ + 5, + 1081.16, + 9.1 + ], + [ + 4, + 260.11, + 8.4 + ], + [ + 5, + 873.05, + 8.6 + ], + [ + 5, + 842.59, + 9 + ], + [ + 3, + 213.69, + 7.2 + ], + [ + 5, + 1332.42, + 8.7 + ], + [ + 0, + 981.15, + 9.7 + ], + [ + 3, + 875.59, + 6.5 + ], + [ + 2, + 346.57, + 7.9 + ], + [ + 5, + 913.66, + 9.2 + ], + [ + 3, + 407.34, + 8.7 + ], + [ + 5, + 1532.06, + 9.5 + ], + [ + 3, + 227.15, + 6.9 + ], + [ + 4, + 355.31, + 8.6 + ], + [ + 2, + 408.06, + 6.9 + ], + [ + 5, + 747.42, + 9.4 + ], + [ + 5, + 1713.11, + 9.6 + ], + [ + 3, + 363.34, + 7.9 + ], + [ + 3, + 184.02, + 7.7 + ], + [ + 3, + 348.97, + 6.9 + ], + [ + 5, + 1407.03, + 9.7 + ] + ], + "hovertemplate": "%{hovertext}

stars=%{marker.color}
latitude=%{lat}
longitude=%{lon}
price=%{customdata[1]}
review_score=%{customdata[2]}", + "hovertext": [ + "Hyatt Regency Amsterdam", + "Chasse Residency Hotel", + "Swissôtel Amsterdam", + "Holiday Inn - the niu, Fender Amsterdam", + "Holiday Inn Express Amsterdam - North Riverside by IHG", + "Mövenpick Hotel Amsterdam City Centre", + "Hotel V Oosterpark", + "Hans Brinker Hostel Amsterdam", + "Citadines Canal Amsterdam", + "ibis Amsterdam Centre", + "Renaissance Amsterdam Hotel", + "Hotel Van Gogh", + "Mercure Amsterdam Sloterdijk Station", + "Ruby Emma Hotel Amsterdam", + "Hampton By Hilton Amsterdam Arena Boulevard", + "Park Plaza Victoria Amsterdam", + "Inntel Hotels Amsterdam Landmark", + "Apollo Hotel Amsterdam, a Tribute Portfolio Hotel", + "DoubleTree by Hilton Amsterdam Centraal Station", + "Holiday Inn Express Amsterdam Arena Towers by IHG", + "ITC Hotel", + "Holiday Inn Express Amsterdam - City Hall by IHG", + "Sir Adam Hotel, part of Sircle Collection", + "Bob W Amsterdam Noord", + "Monet Garden Hotel Amsterdam", + "Bob W Oosterpark", + "Holiday Inn Express Amsterdam - Sloterdijk Station by IHG", + "Via Amsterdam", + "Postillion Hotel Amsterdam", + "Hotel Hortus", + "Park Inn by Radisson Amsterdam City West", + "XO Hotels Couture", + "Clayton Hotel Amsterdam American", + "DoubleTree by Hilton Amsterdam - NDSM Wharf", + "Olympic Hotel", + "Sir Albert Hotel, part of Sircle Collection", + "The Concert Hotel", + "Van der Valk Hotel Amsterdam - Amstel", + "ibis Amsterdam Centre Stopera", + "ibis Styles Amsterdam City", + "Stanley Collection Hotel Hegra Amsterdam", + "Leonardo Royal Hotel Amsterdam", + "ibis Styles Amsterdam Amstel", + "Joy Hotel", + "Mercure Amsterdam City Hotel", + "Pestana Amsterdam Riverside", + "The Social Hub Amsterdam City", + "Motel One Amsterdam", + "Van der Valk Hotel Amsterdam Zuidas -Rai", + "Avani Museum Quarter Amsterdam Hotel", + "Hampton by Hilton Amsterdam Centre East", + "Crowne Plaza Amsterdam - South by IHG", + "Residence Inn by Marriott Amsterdam Houthavens", + "Inntel Hotels Amsterdam Centre", + "Conscious Hotel The Tire Station", + "Hotel Estheréa", + "Canal House", + "Leonardo Boutique Museumhotel", + "PREMIER SUITES Amsterdam", + "Banks Mansion - All Inclusive Boutique Hotel", + "Jaz in the City Amsterdam", + "Camp-Inn Hotel", + "Mercure Amsterdam North Station", + "Huygens Place Amsterdam", + "Triple G Hotels", + "INNSiDE by Meliá Amsterdam", + "Leonardo Hotel Amsterdam City Center", + "Novotel Amsterdam City", + "The Crown Hotel", + "Fletcher Hotel Amsterdam", + "Room Mate Aitana, Amsterdam", + "NH Amsterdam Schiller", + "Adam Suites Hotel", + "Moxy Amsterdam Houthavens", + "The Times Hotel", + "XO Hotels Blue Tower", + "citizenM Amstel Amsterdam", + "Hotel Atlas Vondelpark", + "Hotel Fine Harmony", + "W Amsterdam", + "De Bedstee Boutique Capsules", + "Kimpton De Witt Amsterdam by IHG", + "Hotel Washington", + "Dikker & Thijs Hotel", + "Mozart Hotel", + "Hotel Arena", + "The Diamond Amsterdam", + "The Bank Hotel", + "Courtyard by Marriott Amsterdam Arena Atlas", + "Hotel Levell", + "YOTEL Amsterdam", + "Bunk Hotel Amsterdam", + "Conscious Hotel Westerpark", + "Hotel Okura Amsterdam – The Leading Hotels of the World", + "Hotel New Kit", + "Boutique Hotel View", + "Quentin England Hotel", + "Generator Amsterdam", + "De Jonker Urban Suites", + "Hotel Mansion", + "Leonardo Hotel Amsterdam Leidse Square", + "ibis Amsterdam City West", + "Morgan & Mees Amsterdam", + "XO Hotel Inner", + "Hotel Allure", + "Met Hotel Amsterdam", + "Limehome Amsterdam Gatwickstraat", + "Quentin Zoo hotel", + "The Manor Amsterdam", + "Amsterdam Marriott Hotel", + "Boutique Hotel Notting Hill", + "Nadia Hotel", + "OZO Hotels Arena Amsterdam", + "Krisotel", + "Nova Hotel", + "Holiday Inn Amsterdam - Arena Towers by IHG", + "Element Amsterdam", + "Pension Homeland", + "Park Centraal Amsterdam, part of Sircle Collection", + "Nova Apartments Amsterdam", + "Park Plaza Vondelpark Amsterdam", + "Mercure Hotel Amsterdam West", + "Hotel Espresso", + "XO Hotels Blue Square", + "Leonardo Hotel Amsterdam Rembrandtpark", + "The Old Nickel Hotel", + "Max Brown Hotel Canal District, part of Sircle Collection", + "Corendon Amsterdam New-West, a Tribute Portfolio Hotel", + "Quentin Amsterdam Hotel", + "NH Amsterdam Caransa", + "Hotel2Stay", + "The July - Boat & Co", + "Urban Lodge Hotel", + "Conscious Hotel Vondelpark", + "easyHotel Amsterdam City Centre South", + "The IF Boutique hotel", + "Hotel Old Quarter", + "Hotel Casa Amsterdam", + "Delta Hotel City Center", + "Studio Koggeschip", + "Hotel Jansen Amsterdam Bajeskwartier", + "XO Hotels Park West", + "Amsterdam ID Aparthotel", + "Weber Hotel", + "Hotel Pagi", + "Golden Mansion Aparthotel", + "Hotel Fita", + "Pulitzer Amsterdam", + "Qbic Amsterdam WTC", + "Hotel Corner House", + "Amsterdam-Houseboat-Amstel", + "OZO Hotels Cordial Amsterdam", + "The Alfred Hotel", + "Bilderberg Garden Hotel", + "hotel calisto", + "Andaz Amsterdam, Prinsengracht, By Hyatt", + "Hotel Victorie", + "Volkshotel", + "Belfort Hotel", + "nhow Amsterdam Rai", + "Avenue Hotel", + "Jan Luyken Amsterdam", + "Heart of Amsterdam Hostel", + "Conscious Hotel Museum Square", + "Cityview Hotel", + "Four Elements Hotel", + "NH Amsterdam Noord", + "Ciao Papa Hotel Amsterdam Central Station", + "Holiday Inn Express Amsterdam - South by IHG", + "Hotel Omega", + "Outside Inn", + "INK Hotel Amsterdam - MGallery Collection", + "The College Hotel Amsterdam, Autograph Collection", + "ClinkNOORD Hostel", + "Hotel Residence Le Coin", + "art'otel amsterdam, Powered by Radisson Hotels", + "Hotel Abba", + "Tivoli Doelen Amsterdam Hotel", + "NH Amsterdam Zuid", + "The Social Hub Amsterdam West 4 star", + "Hotel Park Plantage", + "Hotel & Wellness Zuiver", + "Limehome Amsterdam Leidsekruisstraat", + "citizenM Amsterdam South", + "Bastion Hotel Amsterdam Amstel", + "MAX Hotel Amsterdam", + "City Rooms Amsterdam Hemonystraat - Digital access", + "Max Brown Hotel Museum Square, part of Sircle Collection", + "Hotel Fogo Amsterdam", + "Radisson Blu Hotel, Amsterdam City Center", + "Weber Hotel 397", + "The Delphi - Amsterdam Townhouse", + "Skotel Amsterdam, Hotelschool The Hague", + "XO Hotels Infinity", + "The July - Twenty Eight", + "Westlake Hotels Amsterdam", + "Leonardo Boutique Hotel The Lancaster Hotel Amsterdam", + "Conservatorium Hotel - Operated by Mandarin Oriental", + "Via Suites", + "InterContinental Amstel Amsterdam by IHG", + "Sofitel Legend The Grand Amsterdam", + "Q-Factory Hotel", + "Rosewood Amsterdam", + "Leidse Square 5 star Luxury Apartment", + "OZO Hotels Armada Amsterdam", + "Weber Hotel 117", + "De L’Europe Amsterdam – The Leading Hotels of the World", + "Motel One Amsterdam-Waterlooplein", + "Waldorf Astoria Amsterdam", + "Bastion Hotel Amsterdam Zuidwest", + "The Hoxton Lloyd Amsterdam City Centre East", + "Quentin Golden Bear Hotel", + "Pillows Grand Boutique Hotel Maurits at the Park - Small Luxury Hotels", + "Hotel TwentySeven - Small Luxury Hotels of the World", + "Prinsengracht Hotel", + "Campanile Hotel & Restaurant Amsterdam Zuid-Oost", + "Hotel Doria", + "Crane Hotel Faralda" + ], + "lat": [ + 52.361798, + 52.351902, + 52.3735015639879, + 52.3689672, + 52.3841044464671, + 52.3778244039078, + 52.3618697208272, + 52.3636789, + 52.361026, + 52.3795419603305, + 52.3777675899871, + 52.3590558708137, + 52.387911, + 52.338347, + 52.3130603489422, + 52.3773479298031, + 52.3734396516721, + 52.3485731229379, + 52.3767126229996, + 52.3095778808935, + 52.3622245746876, + 52.370508, + 52.3837837705751, + 52.3965941042896, + 52.3697879175963, + 52.3549487, + 52.3882024042909, + 52.326207, + 52.3336117162739, + 52.3667708460243, + 52.390137, + 52.3511038699022, + 52.363893, + 52.4006568133759, + 52.341453, + 52.3545448464899, + 52.3549105780971, + 52.3333118146981, + 52.3700479003282, + 52.3579747412563, + 52.3714185900611, + 52.332426, + 52.3578952935714, + 52.3052759309378, + 52.3352390967979, + 52.3533287816013, + 52.3545938706784, + 52.3389789, + 52.336339, + 52.3557710388443, + 52.37133354, + 52.3358045267172, + 52.401722, + 52.3761845581983, + 52.357210691928, + 52.3704728678235, + 52.3762435052799, + 52.3612528575306, + 52.3375320353285, + 52.3653832244084, + 52.3142104, + 52.3826261860431, + 52.402437, + 52.362523087804, + 52.382749, + 52.3399845540409, + 52.3621398113363, + 52.333801725009, + 52.374897, + 52.2944386032995, + 52.3842761, + 52.3657488663193, + 52.3805227130876, + 52.401708, + 52.3754755496354, + 52.3793250181387, + 52.360949, + 52.3577085499967, + 52.3742253375528, + 52.3727871, + 52.3557911065058, + 52.3771969, + 52.3548896909311, + 52.3650847306161, + 52.3635697104527, + 52.3609924189596, + 52.3637926, + 52.38093936996, + 52.310162, + 52.3043624730413, + 52.391486, + 52.38808, + 52.3866061, + 52.3484551548406, + 52.378758, + 52.3648906471507, + 52.3614788973101, + 52.360993770212, + 52.3660603421124, + 52.3741996, + 52.364136, + 52.3922488195172, + 52.3743254, + 52.3569550152757, + 52.3618286015023, + 52.362654, + 52.3905283, + 52.36676, + 52.3590874033621, + 52.3626582165351, + 52.3584051486544, + 52.3738200603831, + 52.304806261585, + 52.365747, + 52.3712343600445, + 52.3096565954741, + 52.3318032874812, + 52.3730475260495, + 52.361593145237, + 52.3545784300335, + 52.3542499654985, + 52.3375048702365, + 52.3628600898999, + 52.3785865880488, + 52.3679418353713, + 52.3763294696329, + 52.3788935865371, + 52.3466449, + 52.3642477907647, + 52.3664514799061, + 52.387052242092, + 52.394036005692, + 52.3856494, + 52.3578617125481, + 52.3522127755719, + 52.359005091078, + 52.3759119269223, + 52.3498912311701, + 52.3756892358625, + 52.3773253, + 52.339954, + 52.3856249128608, + 52.3874575746578, + 52.3648857336342, + 52.3692724674063, + 52.3590162611425, + 52.3592102572324, + 52.37282362571, + 52.3402687108229, + 52.3742711914492, + 52.3581028827505, + 52.3707029544915, + 52.3535724695694, + 52.3513157924539, + 52.3823596305708, + 52.3678574924207, + 52.3468297845623, + 52.3537109, + 52.3576802926766, + 52.338489, + 52.3766373025148, + 52.3597614573926, + 52.3723323595859, + 52.3554163721413, + 52.379748, + 52.3544748942031, + 52.3921931674547, + 52.378642, + 52.3258551826725, + 52.355843, + 52.326535, + 52.3755639716479, + 52.3527640630135, + 52.3841992220711, + 52.3678173680479, + 52.3776721292375, + 52.3627085825928, + 52.3682186101361, + 52.3266731785754, + 52.37226, + 52.3664334643127, + 52.3310022397142, + 52.3636477, + 52.3418435228634, + 52.3337378043121, + 52.357917817414, + 52.35813, + 52.3599989709438, + 52.355375399345, + 52.3701379708517, + 52.3649577984884, + 52.3505248757999, + 52.3692891, + 52.381116191928, + 52.3432309277564, + 52.3623732172734, + 52.3658921741934, + 52.3585869750682, + 52.326138, + 52.3600415594456, + 52.3711983327514, + 52.3575427561554, + 52.36573564045, + 52.365333, + 52.3640545225574, + 52.3651023703734, + 52.3676388550903, + 52.3699794423125, + 52.364638, + 52.3575345009985, + 52.374241, + 52.3656137470407, + 52.362194, + 52.3724914, + 52.36198338772, + 52.3117288441657, + 52.372422425451, + 52.3992798782431 + ], + "legendgroup": "", + "lon": [ + 4.911744, + 4.924964, + 4.89331215620041, + 4.9463418, + 4.91952350926207, + 4.91414219141006, + 4.92270692381791, + 4.88805460000003, + 4.893588, + 4.89696532487869, + 4.89438101649284, + 4.88014921545982, + 4.834296, + 4.92086, + 4.94809359312057, + 4.89777535200119, + 4.92843508863831, + 4.88510727882385, + 4.90566909313202, + 4.94186959259036, + 4.89858202636242, + 4.90835, + 4.90240858888546, + 4.90684051779097, + 4.90726228255619, + 4.9285033, + 4.83745515346527, + 4.953709, + 4.92219427514647, + 4.90905001759529, + 4.842565, + 4.84125409510648, + 4.881296, + 4.89350185850526, + 4.853175, + 4.88731205463409, + 4.87704757601023, + 4.91446652778632, + 4.90765661001205, + 4.90066040307283, + 4.88726913928986, + 4.917847, + 4.90029025822878, + 4.95023131370544, + 4.9135098606348, + 4.90716399999997, + 4.91263214907383, + 4.89257459999999, + 4.887724, + 4.88620162010193, + 4.934809346, + 4.87454742193222, + 4.874767, + 4.89444941282272, + 4.85544981739667, + 4.88849088549614, + 4.88632701337337, + 4.88415978848934, + 4.86796079629515, + 4.89309288561344, + 4.93931620000001, + 4.85761788032187, + 4.931234, + 4.87563338130713, + 4.85784, + 4.87108765145111, + 4.87834140658379, + 4.88854050636292, + 4.89999, + 4.94534432888031, + 4.89465280000002, + 4.8966957628727, + 4.8869948329575, + 4.874811, + 4.88894149661064, + 4.84565332531929, + 4.905943, + 4.87398952245712, + 4.90481983743439, + 4.89000590000001, + 4.87775735557079, + 4.8955395, + 4.88353483378887, + 4.88395091146231, + 4.88622978329659, + 4.91579040884972, + 4.8833159, + 4.89037379622459, + 4.94645200000002, + 4.95098888346706, + 4.903551, + 4.91425, + 4.87529649999999, + 4.89281058311462, + 4.837766, + 4.87977102398872, + 4.87710893154144, + 4.91903621904908, + 4.91230891408611, + 4.90487689999998, + 4.878342, + 4.8501044511795, + 4.87461831349185, + 4.87741805613041, + 4.91056948900223, + 4.835317, + 4.841889, + 4.911423, + 4.92611087858677, + 4.87966239452362, + 4.89892099052668, + 4.88560751080513, + 4.94765461349175, + 4.879751, + 4.89013105630875, + 4.94188032142642, + 4.87750001904908, + 4.91685894973762, + 4.88302554935217, + 4.87975794821978, + 4.86642569303513, + 4.81692954897881, + 4.87637232989073, + 4.82055857777596, + 4.84405875205994, + 4.89954560995102, + 4.89205554127693, + 4.83109839999997, + 4.87990915775299, + 4.89692106842995, + 4.8394093674591, + 4.88258942460629, + 4.83444299999996, + 4.85650956630707, + 4.89166025072336, + 4.90271598100662, + 4.89886298775673, + 4.91888970136643, + 4.89610970020294, + 4.89305579999996, + 4.924154, + 4.84716810286045, + 4.83446717262268, + 4.88023370504379, + 4.89186644554138, + 4.89794578650822, + 4.87968116998672, + 4.88328203558922, + 4.87348794937134, + 4.89150166511536, + 4.89719734750327, + 4.89241696894169, + 4.87214963988117, + 4.87409010529518, + 4.8874618914017, + 4.88283142447472, + 4.90290641784668, + 4.91191600000002, + 4.85044240951538, + 4.891107, + 4.89465594291687, + 4.88107189536095, + 4.89758223295212, + 4.87812280654907, + 4.892712, + 5.00559633862306, + 4.91089671850204, + 4.895241, + 4.8670694231987, + 4.875724, + 4.931027, + 4.89289775490761, + 4.88361194729805, + 4.90390362334097, + 4.89441722631454, + 4.89721544086933, + 4.87461045384407, + 4.89572614431381, + 4.87995475530624, + 4.8364, + 4.91136878728867, + 4.85347867012024, + 4.8853753, + 4.87593680620193, + 4.92792874574661, + 4.9021178483963, + 4.902205, + 4.88204687833786, + 4.772438482658, + 4.89670112729073, + 4.88048851490021, + 4.87697213888168, + 4.8438768, + 4.8208911716938, + 4.85753103547779, + 4.79466319084167, + 4.91293653845787, + 4.87848825752735, + 4.953825, + 4.90546524524689, + 4.8954002559185, + 4.93057484418023, + 4.88310919170289, + 4.8819123, + 4.89844556897879, + 4.8803501018524, + 4.89420533180237, + 4.90738492868036, + 4.89644229999999, + 4.84374225139618, + 4.93466, + 4.88519445061684, + 4.919684, + 4.89332549999995, + 4.89448126405478, + 4.98621582984924, + 4.89441740508482, + 4.89473192953028 + ], + "marker": { + "color": [ + 5, + 4, + 4, + 4, + 3, + 4, + 4, + 0, + 4, + 3, + 0, + 3, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 3, + 2, + 3, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 5, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 4, + 4, + 3, + 4, + 4, + 4, + 1, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 3, + 3, + 5, + 0, + 5, + 2, + 4, + 2, + 4, + 5, + 3, + 4, + 3, + 4, + 3, + 4, + 5, + 3, + 3, + 2, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 5, + 4, + 2, + 4, + 3, + 3, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 4, + 3, + 4, + 4, + 3, + 2, + 3, + 2, + 3, + 3, + 0, + 0, + 4, + 3, + 2, + 2, + 0, + 3, + 5, + 3, + 1, + 0, + 3, + 3, + 5, + 0, + 5, + 3, + 0, + 3, + 4, + 3, + 4, + 0, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 0, + 4, + 5, + 3, + 3, + 4, + 1, + 5, + 4, + 4, + 3, + 3, + 0, + 4, + 3, + 2, + 0, + 3, + 3, + 4, + 2, + 4, + 0, + 3, + 4, + 3, + 4, + 5, + 4, + 5, + 5, + 3, + 5, + 0, + 3, + 2, + 5, + 3, + 5, + 3, + 4, + 2, + 5, + 5, + 3, + 3, + 3, + 5 + ], + "coloraxis": "coloraxis", + "size": [ + 5, + 4, + 4, + 4, + 3, + 4, + 4, + 0, + 4, + 3, + 0, + 3, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 3, + 2, + 3, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 5, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 4, + 4, + 3, + 4, + 4, + 4, + 1, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 3, + 3, + 5, + 0, + 5, + 2, + 4, + 2, + 4, + 5, + 3, + 4, + 3, + 4, + 3, + 4, + 5, + 3, + 3, + 2, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 5, + 4, + 2, + 4, + 3, + 3, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 4, + 3, + 4, + 4, + 3, + 2, + 3, + 2, + 3, + 3, + 0, + 0, + 4, + 3, + 2, + 2, + 0, + 3, + 5, + 3, + 1, + 0, + 3, + 3, + 5, + 0, + 5, + 3, + 0, + 3, + 4, + 3, + 4, + 0, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 0, + 4, + 5, + 3, + 3, + 4, + 1, + 5, + 4, + 4, + 3, + 3, + 0, + 4, + 3, + 2, + 0, + 3, + 3, + 4, + 2, + 4, + 0, + 3, + 4, + 3, + 4, + 5, + 4, + 5, + 5, + 3, + 5, + 0, + 3, + 2, + 5, + 3, + 5, + 3, + 4, + 2, + 5, + 5, + 3, + 3, + 3, + 5 + ], + "sizemode": "area", + "sizeref": 0.022222222222222223 + }, + "mode": "markers", + "name": "", + "showlegend": false, + "subplot": "mapbox", + "type": "scattermapbox" + } + ], + "layout": { + "coloraxis": { + "colorbar": { + "title": { + "text": "stars" + } + }, + "colorscale": [ + [ + 0, + "#000004" + ], + [ + 0.1111111111111111, + "#180f3d" + ], + [ + 0.2222222222222222, + "#440f76" + ], + [ + 0.3333333333333333, + "#721f81" + ], + [ + 0.4444444444444444, + "#9e2f7f" + ], + [ + 0.5555555555555556, + "#cd4071" + ], + [ + 0.6666666666666666, + "#f1605d" + ], + [ + 0.7777777777777778, + "#fd9668" + ], + [ + 0.8888888888888888, + "#feca8d" + ], + [ + 1, + "#fcfdbf" + ] + ] + }, + "height": 1000, + "legend": { + "itemsizing": "constant", + "tracegroupgap": 0 + }, + "mapbox": { + "center": { + "lat": 52.36194237574405, + "lon": 4.890813530014372 + }, + "domain": { + "x": [ + 0, + 1 + ], + "y": [ + 0, + 1 + ] + }, + "style": "open-street-map", + "zoom": 11.5 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hotel Locations in Amsterdam Colored by Star Rating" + }, + "width": 1000 + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter_mapbox(\n", + " df_hotels,\n", + " lat=\"latitude\",\n", + " lon=\"longitude\",\n", + " color=\"stars\", # color by star rating\n", + " size=\"stars\", # size by star rating\n", + " hover_name=\"name\",\n", + " hover_data={\"stars\": True, \"price\": True, \"review_score\": True},\n", + " color_continuous_scale=\"magma\", # good scale for categorical-ish values\n", + " size_max=15,\n", + " zoom=11.5,\n", + " title=\"Hotel Locations in Amsterdam Colored by Star Rating\",\n", + ")\n", + "\n", + "fig.update_layout(\n", + " mapbox_style=\"open-street-map\",\n", + " height=1000,\n", + " width=1000\n", + ")\n", + "\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "68f51cab", + "metadata": {}, + "outputs": [], + "source": [ + "# 4-star hotels form the largest group, and they are distributed evenly across the entire city, showing that this category is widespread and not limited to specific neighbourhoods.\n", + "# 3-star hotels are the second largest group, also spread broadly, but they appear more concentrated in the city center, and toward the south and west, where many mid-range tourist accommodations are located.\n", + "# 5-star hotels cluster mainly around the historic city center, close to major attractions, canals, and premium shopping streets.\n", + "# Lower-star hotels (0–2 stars) also tend to cluster near the historic center, likely due to the high demand in that area even for budget options.\n", + "# Across all categories, the strongest overall clustering of hotels is around the historic canal belt and the Museum Quarter, which are the key tourism zones of Amsterdam." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "7d99a3bb", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Stars=%{x}
Average Price (USD)=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "", + "offsetgroup": "", + "orientation": "v", + "showlegend": false, + "textposition": "auto", + "type": "bar", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5 + ], + "xaxis": "x", + "y": [ + 391.9511111111111, + 507.5875, + 442.3878571428572, + 378.2377142857143, + 348.0937362637363, + 834.05 + ], + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average Price by Star Rating" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Stars" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Average Price (USD)" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "avg_price_by_stars = (\n", + " df_hotels.groupby(\"stars\", as_index=False)[\"price\"].mean()\n", + ")\n", + "\n", + "fig = px.bar(\n", + " avg_price_by_stars,\n", + " x=\"stars\",\n", + " y=\"price\",\n", + " title=\"Average Price by Star Rating\",\n", + " labels={\"stars\": \"Stars\", \"price\": \"Average Price (USD)\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "5f40e1bb", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "alignmentgroup": "True", + "bingroup": "x", + "hovertemplate": "Number of Reviews=%{x}
count=%{y}", + "legendgroup": "", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "", + "nbinsx": 30, + "offsetgroup": "", + "orientation": "v", + "showlegend": false, + "type": "histogram", + "x": [ + 2869, + 3874, + 3679, + 4817, + 12096, + 6343, + 134, + 12687, + 1735, + 9837, + 660, + 4758, + 5026, + 8811, + 13132, + 8717, + 10359, + 1343, + 1052, + 17901, + 2144, + 3203, + 1361, + 3464, + 3901, + 978, + 9671, + 15319, + 10289, + 3553, + 20821, + 9124, + 4538, + 3036, + 8693, + 552, + 2482, + 5664, + 3692, + 2292, + 737, + 9065, + 2237, + 7274, + 3734, + 3780, + 10905, + 12367, + 5555, + 1109, + 2927, + 1286, + 1269, + 5389, + 2897, + 4242, + 905, + 3001, + 1943, + 935, + 11156, + 436, + 4401, + 3207, + 420, + 6323, + 1754, + 6004, + 610, + 3910, + 5984, + 2476, + 1775, + 2201, + 1903, + 8057, + 3077, + 1920, + 1702, + 891, + 2278, + 2265, + 2817, + 1859, + 5080, + 2929, + 563, + 1925, + 3327, + 17522, + 7578, + 7421, + 2757, + 1051, + 6140, + 1315, + 1653, + 7926, + 1376, + 1774, + 1842, + 3332, + 525, + 5284, + 2375, + 1697, + 866, + 1943, + 2206, + 1551, + 3011, + 5340, + 8262, + 2508, + 2129, + 4268, + 1993, + 3694, + 2681, + 599, + 4079, + 2447, + 1630, + 8270, + 7850, + 3258, + 1023, + 5593, + 1967, + 1660, + 3772, + 2338, + 2923, + 2329, + 2751, + 1275, + 3098, + 9845, + 4601, + 79, + 4172, + 10627, + 2709, + 2030, + 1609, + 1709, + 1943, + 1019, + 4926, + 2014, + 226, + 3230, + 6151, + 2678, + 804, + 751, + 188, + 5278, + 4476, + 10472, + 4805, + 1505, + 3284, + 1190, + 1154, + 4303, + 1001, + 1523, + 3191, + 1327, + 1501, + 1370, + 446, + 15598, + 2239, + 3514, + 3173, + 1501, + 2343, + 4057, + 2065, + 3983, + 318, + 5918, + 3559, + 1754, + 249, + 1285, + 5883, + 7118, + 1059, + 2377, + 1698, + 7044, + 1072, + 49, + 3104, + 251, + 2572, + 317, + 852, + 2840, + 59, + 94, + 1994, + 942, + 394, + 7986, + 216, + 1576, + 1887, + 860, + 646, + 259, + 3497, + 3730, + 3922, + 15 + ], + "xaxis": "x", + "yaxis": "y" + } + ], + "layout": { + "barmode": "relative", + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Distribution of Number of Reviews" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0, + 1 + ], + "title": { + "text": "Number of Reviews" + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0, + 1 + ], + "title": { + "text": "count" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.histogram(\n", + " df_hotels,\n", + " x=\"review_count\",\n", + " nbins=30,\n", + " title=\"Distribution of Number of Reviews\",\n", + " labels={\"review_count\": \"Number of Reviews\"}\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc93dfd1", + "metadata": {}, + "outputs": [], + "source": [ + "# The majority of hotels fall within the 0–4,000 review range.\n", + "# The most common group is 1,000–2,000 reviews, indicating many hotels receive steady and consistent guest traffic.\n", + "# Only a small number of properties exceed 5,000 reviews, and very few reach 10,000+, representing the most popular high-volume hotels.\n", + "# Overall, the distribution shows that most hotels have moderate review counts, with only a handful standing out as extremely popular." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "id": "3ede205b", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + 580.97, + 8.4 + ], + [ + 303.13, + 8.9 + ], + [ + 432.32, + 8.1 + ], + [ + 244.4, + 8.4 + ], + [ + 233.49, + 8.2 + ], + [ + 383.23, + 8.5 + ], + [ + 439, + 8.9 + ], + [ + 359.75, + 8 + ], + [ + 406.07, + 8.8 + ], + [ + 374.75, + 7.7 + ], + [ + 495.09, + 8 + ], + [ + 363.57, + 8.2 + ], + [ + 250.07, + 8.5 + ], + [ + 243.83, + 8.7 + ], + [ + 235.57, + 8.1 + ], + [ + 489.82, + 8.6 + ], + [ + 291.52, + 8.2 + ], + [ + 283.23, + 8.5 + ], + [ + 318.95, + 8.3 + ], + [ + 210.65, + 7.9 + ], + [ + 466.54, + 7.2 + ], + [ + 517.74, + 8.3 + ], + [ + 369.27, + 8.7 + ], + [ + 402.02, + 8.6 + ], + [ + 385.54, + 9.1 + ], + [ + 286.66, + 8.6 + ], + [ + 201.77, + 8.1 + ], + [ + 180.16, + 8.1 + ], + [ + 231.36, + 8.5 + ], + [ + 241.1, + 8 + ], + [ + 225.43, + 8.4 + ], + [ + 201.28, + 8.7 + ], + [ + 451.23, + 8.5 + ], + [ + 321.46, + 8.5 + ], + [ + 261.53, + 8.6 + ], + [ + 403.53, + 8.5 + ], + [ + 195.42, + 7.7 + ], + [ + 227.27, + 8.8 + ], + [ + 350.11, + 7.9 + ], + [ + 392.11, + 8.2 + ], + [ + 404.7, + 8.2 + ], + [ + 263.95, + 8.6 + ], + [ + 392.11, + 8 + ], + [ + 198.56, + 7.8 + ], + [ + 219.53, + 8.3 + ], + [ + 522.03, + 8.5 + ], + [ + 244.85, + 8.6 + ], + [ + 280.44, + 8.6 + ], + [ + 274.1, + 8.7 + ], + [ + 373.43, + 8.8 + ], + [ + 383.05, + 8.4 + ], + [ + 238.57, + 8.7 + ], + [ + 369, + 8.6 + ], + [ + 353.11, + 8.2 + ], + [ + 528.87, + 8.4 + ], + [ + 561.05, + 9.2 + ], + [ + 602.76, + 8.7 + ], + [ + 450.48, + 8.1 + ], + [ + 330.69, + 9.1 + ], + [ + 602.76, + 8.8 + ], + [ + 300, + 8.7 + ], + [ + 1195.5, + 6.3 + ], + [ + 318.59, + 9 + ], + [ + 358.72, + 8.7 + ], + [ + 1820.46, + 6.7 + ], + [ + 318.61, + 8.9 + ], + [ + 332.47, + 8 + ], + [ + 233.39, + 8.5 + ], + [ + 571.04, + 8.1 + ], + [ + 214.46, + 7.6 + ], + [ + 399.84, + 8.6 + ], + [ + 421.04, + 8 + ], + [ + 336.97, + 8.5 + ], + [ + 279.36, + 8.2 + ], + [ + 457.29, + 8 + ], + [ + 194.38, + 8.2 + ], + [ + 444.14, + 8.9 + ], + [ + 262.04, + 7.5 + ], + [ + 348.14, + 7.9 + ], + [ + 748.06, + 7.6 + ], + [ + 235.08, + 8.2 + ], + [ + 520.28, + 8.8 + ], + [ + 380.69, + 7.2 + ], + [ + 493.37, + 8.7 + ], + [ + 913.66, + 7.7 + ], + [ + 475.3, + 8.3 + ], + [ + 610.4, + 8.4 + ], + [ + 419.52, + 8.7 + ], + [ + 181.21, + 8.5 + ], + [ + 201.28, + 8.3 + ], + [ + 241.21, + 8.3 + ], + [ + 206.6, + 8.4 + ], + [ + 345.98, + 8.5 + ], + [ + 398.01, + 8.9 + ], + [ + 514.33, + 8.3 + ], + [ + 267.75, + 8.6 + ], + [ + 338.17, + 7 + ], + [ + 406.07, + 7.9 + ], + [ + 414.05, + 7.7 + ], + [ + 558.47, + 8.2 + ], + [ + 340.41, + 8.2 + ], + [ + 212.49, + 8 + ], + [ + 501.52, + 9.1 + ], + [ + 241.26, + 7.9 + ], + [ + 720.87, + 7.6 + ], + [ + 1123.8, + 8.9 + ], + [ + 370.35, + 7.7 + ], + [ + 410.12, + 8 + ], + [ + 359.98, + 8.4 + ], + [ + 558.47, + 7.9 + ], + [ + 358.61, + 8.7 + ], + [ + 262.68, + 7.4 + ], + [ + 199.86, + 7.4 + ], + [ + 358.72, + 8.6 + ], + [ + 455.56, + 8.3 + ], + [ + 215.72, + 8.1 + ], + [ + 284.38, + 9 + ], + [ + 267.24, + 8.6 + ], + [ + 417.49, + 8.4 + ], + [ + 497.44, + 8.7 + ], + [ + 430.18, + 8.6 + ], + [ + 217.96, + 7.5 + ], + [ + 316.35, + 7.6 + ], + [ + 182.87, + 7.9 + ], + [ + 257.6, + 8.3 + ], + [ + 571.04, + 7.3 + ], + [ + 525.35, + 8 + ], + [ + 222.32, + 8.3 + ], + [ + 348.45, + 6.3 + ], + [ + 350.02, + 8 + ], + [ + 239.49, + 8.7 + ], + [ + 284.15, + 9.3 + ], + [ + 235.27, + 8.4 + ], + [ + 500.91, + 8.5 + ], + [ + 235.5, + 7.6 + ], + [ + 683.41, + 8.6 + ], + [ + 271.24, + 7.6 + ], + [ + 245.55, + 8.9 + ], + [ + 347.19, + 7.2 + ], + [ + 929.3, + 9.4 + ], + [ + 211.28, + 8.4 + ], + [ + 201.28, + 8.5 + ], + [ + 374.6, + 8.9 + ], + [ + 347.76, + 8 + ], + [ + 399.72, + 7.5 + ], + [ + 329.93, + 8.2 + ], + [ + 345.2, + 8.7 + ], + [ + 893.35, + 8.9 + ], + [ + 223.11, + 7.9 + ], + [ + 266.48, + 7.6 + ], + [ + 517.57, + 8.9 + ], + [ + 700.47, + 6.9 + ], + [ + 283.14, + 7.7 + ], + [ + 312.42, + 7.9 + ], + [ + 325.49, + 8.6 + ], + [ + 795.76, + 8.8 + ], + [ + 197.25, + 7.4 + ], + [ + 201, + 8.7 + ], + [ + 1027.86, + 6 + ], + [ + 292.41, + 9 + ], + [ + 361.66, + 7.5 + ], + [ + 465.96, + 8.9 + ], + [ + 391.79, + 7.9 + ], + [ + 483.44, + 8.7 + ], + [ + 388.19, + 7.6 + ], + [ + 231.28, + 8.2 + ], + [ + 222.92, + 8.6 + ], + [ + 512.79, + 7.8 + ], + [ + 257.6, + 8 + ], + [ + 464.44, + 8.8 + ], + [ + 235.61, + 9 + ], + [ + 507.59, + 8.8 + ], + [ + 516.72, + 8.5 + ], + [ + 268.58, + 8 + ], + [ + 428.92, + 8.3 + ], + [ + 593.88, + 8.7 + ], + [ + 621.79, + 7.5 + ], + [ + 616.08, + 8.8 + ], + [ + 205.77, + 8.2 + ], + [ + 266.42, + 8.5 + ], + [ + 263.65, + 7.7 + ], + [ + 324.18, + 7.9 + ], + [ + 418.65, + 7.8 + ], + [ + 318.51, + 8.6 + ], + [ + 182.21, + 7.2 + ], + [ + 212.43, + 6.5 + ], + [ + 303.64, + 7.4 + ], + [ + 390.84, + 7.9 + ], + [ + 265.21, + 7.8 + ], + [ + 460.14, + 8.4 + ], + [ + 414.91, + 8.3 + ], + [ + 364.47, + 8.7 + ], + [ + 241.1, + 8.9 + ], + [ + 178.27, + 7.8 + ], + [ + 254.91, + 9.1 + ], + [ + 177.52, + 6 + ], + [ + 403.14, + 7.6 + ], + [ + 1081.16, + 9.1 + ], + [ + 260.11, + 8.4 + ], + [ + 873.05, + 8.6 + ], + [ + 842.59, + 9 + ], + [ + 213.69, + 7.2 + ], + [ + 1332.42, + 8.7 + ], + [ + 981.15, + 9.7 + ], + [ + 875.59, + 6.5 + ], + [ + 346.57, + 7.9 + ], + [ + 913.66, + 9.2 + ], + [ + 407.34, + 8.7 + ], + [ + 1532.06, + 9.5 + ], + [ + 227.15, + 6.9 + ], + [ + 355.31, + 8.6 + ], + [ + 408.06, + 6.9 + ], + [ + 747.42, + 9.4 + ], + [ + 1713.11, + 9.6 + ], + [ + 363.34, + 7.9 + ], + [ + 184.02, + 7.7 + ], + [ + 348.97, + 6.9 + ], + [ + 1407.03, + 9.7 + ] + ], + "hovertemplate": "%{hovertext}

latitude=%{lat}
longitude=%{lon}
price=%{customdata[0]}
review_score=%{customdata[1]}
stars=%{marker.color}", + "hovertext": [ + "Hyatt Regency Amsterdam", + "Chasse Residency Hotel", + "Swissôtel Amsterdam", + "Holiday Inn - the niu, Fender Amsterdam", + "Holiday Inn Express Amsterdam - North Riverside by IHG", + "Mövenpick Hotel Amsterdam City Centre", + "Hotel V Oosterpark", + "Hans Brinker Hostel Amsterdam", + "Citadines Canal Amsterdam", + "ibis Amsterdam Centre", + "Renaissance Amsterdam Hotel", + "Hotel Van Gogh", + "Mercure Amsterdam Sloterdijk Station", + "Ruby Emma Hotel Amsterdam", + "Hampton By Hilton Amsterdam Arena Boulevard", + "Park Plaza Victoria Amsterdam", + "Inntel Hotels Amsterdam Landmark", + "Apollo Hotel Amsterdam, a Tribute Portfolio Hotel", + "DoubleTree by Hilton Amsterdam Centraal Station", + "Holiday Inn Express Amsterdam Arena Towers by IHG", + "ITC Hotel", + "Holiday Inn Express Amsterdam - City Hall by IHG", + "Sir Adam Hotel, part of Sircle Collection", + "Bob W Amsterdam Noord", + "Monet Garden Hotel Amsterdam", + "Bob W Oosterpark", + "Holiday Inn Express Amsterdam - Sloterdijk Station by IHG", + "Via Amsterdam", + "Postillion Hotel Amsterdam", + "Hotel Hortus", + "Park Inn by Radisson Amsterdam City West", + "XO Hotels Couture", + "Clayton Hotel Amsterdam American", + "DoubleTree by Hilton Amsterdam - NDSM Wharf", + "Olympic Hotel", + "Sir Albert Hotel, part of Sircle Collection", + "The Concert Hotel", + "Van der Valk Hotel Amsterdam - Amstel", + "ibis Amsterdam Centre Stopera", + "ibis Styles Amsterdam City", + "Stanley Collection Hotel Hegra Amsterdam", + "Leonardo Royal Hotel Amsterdam", + "ibis Styles Amsterdam Amstel", + "Joy Hotel", + "Mercure Amsterdam City Hotel", + "Pestana Amsterdam Riverside", + "The Social Hub Amsterdam City", + "Motel One Amsterdam", + "Van der Valk Hotel Amsterdam Zuidas -Rai", + "Avani Museum Quarter Amsterdam Hotel", + "Hampton by Hilton Amsterdam Centre East", + "Crowne Plaza Amsterdam - South by IHG", + "Residence Inn by Marriott Amsterdam Houthavens", + "Inntel Hotels Amsterdam Centre", + "Conscious Hotel The Tire Station", + "Hotel Estheréa", + "Canal House", + "Leonardo Boutique Museumhotel", + "PREMIER SUITES Amsterdam", + "Banks Mansion - All Inclusive Boutique Hotel", + "Jaz in the City Amsterdam", + "Camp-Inn Hotel", + "Mercure Amsterdam North Station", + "Huygens Place Amsterdam", + "Triple G Hotels", + "INNSiDE by Meliá Amsterdam", + "Leonardo Hotel Amsterdam City Center", + "Novotel Amsterdam City", + "The Crown Hotel", + "Fletcher Hotel Amsterdam", + "Room Mate Aitana, Amsterdam", + "NH Amsterdam Schiller", + "Adam Suites Hotel", + "Moxy Amsterdam Houthavens", + "The Times Hotel", + "XO Hotels Blue Tower", + "citizenM Amstel Amsterdam", + "Hotel Atlas Vondelpark", + "Hotel Fine Harmony", + "W Amsterdam", + "De Bedstee Boutique Capsules", + "Kimpton De Witt Amsterdam by IHG", + "Hotel Washington", + "Dikker & Thijs Hotel", + "Mozart Hotel", + "Hotel Arena", + "The Diamond Amsterdam", + "The Bank Hotel", + "Courtyard by Marriott Amsterdam Arena Atlas", + "Hotel Levell", + "YOTEL Amsterdam", + "Bunk Hotel Amsterdam", + "Conscious Hotel Westerpark", + "Hotel Okura Amsterdam – The Leading Hotels of the World", + "Hotel New Kit", + "Boutique Hotel View", + "Quentin England Hotel", + "Generator Amsterdam", + "De Jonker Urban Suites", + "Hotel Mansion", + "Leonardo Hotel Amsterdam Leidse Square", + "ibis Amsterdam City West", + "Morgan & Mees Amsterdam", + "XO Hotel Inner", + "Hotel Allure", + "Met Hotel Amsterdam", + "Limehome Amsterdam Gatwickstraat", + "Quentin Zoo hotel", + "The Manor Amsterdam", + "Amsterdam Marriott Hotel", + "Boutique Hotel Notting Hill", + "Nadia Hotel", + "OZO Hotels Arena Amsterdam", + "Krisotel", + "Nova Hotel", + "Holiday Inn Amsterdam - Arena Towers by IHG", + "Element Amsterdam", + "Pension Homeland", + "Park Centraal Amsterdam, part of Sircle Collection", + "Nova Apartments Amsterdam", + "Park Plaza Vondelpark Amsterdam", + "Mercure Hotel Amsterdam West", + "Hotel Espresso", + "XO Hotels Blue Square", + "Leonardo Hotel Amsterdam Rembrandtpark", + "The Old Nickel Hotel", + "Max Brown Hotel Canal District, part of Sircle Collection", + "Corendon Amsterdam New-West, a Tribute Portfolio Hotel", + "Quentin Amsterdam Hotel", + "NH Amsterdam Caransa", + "Hotel2Stay", + "The July - Boat & Co", + "Urban Lodge Hotel", + "Conscious Hotel Vondelpark", + "easyHotel Amsterdam City Centre South", + "The IF Boutique hotel", + "Hotel Old Quarter", + "Hotel Casa Amsterdam", + "Delta Hotel City Center", + "Studio Koggeschip", + "Hotel Jansen Amsterdam Bajeskwartier", + "XO Hotels Park West", + "Amsterdam ID Aparthotel", + "Weber Hotel", + "Hotel Pagi", + "Golden Mansion Aparthotel", + "Hotel Fita", + "Pulitzer Amsterdam", + "Qbic Amsterdam WTC", + "Hotel Corner House", + "Amsterdam-Houseboat-Amstel", + "OZO Hotels Cordial Amsterdam", + "The Alfred Hotel", + "Bilderberg Garden Hotel", + "hotel calisto", + "Andaz Amsterdam, Prinsengracht, By Hyatt", + "Hotel Victorie", + "Volkshotel", + "Belfort Hotel", + "nhow Amsterdam Rai", + "Avenue Hotel", + "Jan Luyken Amsterdam", + "Heart of Amsterdam Hostel", + "Conscious Hotel Museum Square", + "Cityview Hotel", + "Four Elements Hotel", + "NH Amsterdam Noord", + "Ciao Papa Hotel Amsterdam Central Station", + "Holiday Inn Express Amsterdam - South by IHG", + "Hotel Omega", + "Outside Inn", + "INK Hotel Amsterdam - MGallery Collection", + "The College Hotel Amsterdam, Autograph Collection", + "ClinkNOORD Hostel", + "Hotel Residence Le Coin", + "art'otel amsterdam, Powered by Radisson Hotels", + "Hotel Abba", + "Tivoli Doelen Amsterdam Hotel", + "NH Amsterdam Zuid", + "The Social Hub Amsterdam West 4 star", + "Hotel Park Plantage", + "Hotel & Wellness Zuiver", + "Limehome Amsterdam Leidsekruisstraat", + "citizenM Amsterdam South", + "Bastion Hotel Amsterdam Amstel", + "MAX Hotel Amsterdam", + "City Rooms Amsterdam Hemonystraat - Digital access", + "Max Brown Hotel Museum Square, part of Sircle Collection", + "Hotel Fogo Amsterdam", + "Radisson Blu Hotel, Amsterdam City Center", + "Weber Hotel 397", + "The Delphi - Amsterdam Townhouse", + "Skotel Amsterdam, Hotelschool The Hague", + "XO Hotels Infinity", + "The July - Twenty Eight", + "Westlake Hotels Amsterdam", + "Leonardo Boutique Hotel The Lancaster Hotel Amsterdam", + "Conservatorium Hotel - Operated by Mandarin Oriental", + "Via Suites", + "InterContinental Amstel Amsterdam by IHG", + "Sofitel Legend The Grand Amsterdam", + "Q-Factory Hotel", + "Rosewood Amsterdam", + "Leidse Square 5 star Luxury Apartment", + "OZO Hotels Armada Amsterdam", + "Weber Hotel 117", + "De L’Europe Amsterdam – The Leading Hotels of the World", + "Motel One Amsterdam-Waterlooplein", + "Waldorf Astoria Amsterdam", + "Bastion Hotel Amsterdam Zuidwest", + "The Hoxton Lloyd Amsterdam City Centre East", + "Quentin Golden Bear Hotel", + "Pillows Grand Boutique Hotel Maurits at the Park - Small Luxury Hotels", + "Hotel TwentySeven - Small Luxury Hotels of the World", + "Prinsengracht Hotel", + "Campanile Hotel & Restaurant Amsterdam Zuid-Oost", + "Hotel Doria", + "Crane Hotel Faralda" + ], + "lat": [ + 52.361798, + 52.351902, + 52.3735015639879, + 52.3689672, + 52.3841044464671, + 52.3778244039078, + 52.3618697208272, + 52.3636789, + 52.361026, + 52.3795419603305, + 52.3777675899871, + 52.3590558708137, + 52.387911, + 52.338347, + 52.3130603489422, + 52.3773479298031, + 52.3734396516721, + 52.3485731229379, + 52.3767126229996, + 52.3095778808935, + 52.3622245746876, + 52.370508, + 52.3837837705751, + 52.3965941042896, + 52.3697879175963, + 52.3549487, + 52.3882024042909, + 52.326207, + 52.3336117162739, + 52.3667708460243, + 52.390137, + 52.3511038699022, + 52.363893, + 52.4006568133759, + 52.341453, + 52.3545448464899, + 52.3549105780971, + 52.3333118146981, + 52.3700479003282, + 52.3579747412563, + 52.3714185900611, + 52.332426, + 52.3578952935714, + 52.3052759309378, + 52.3352390967979, + 52.3533287816013, + 52.3545938706784, + 52.3389789, + 52.336339, + 52.3557710388443, + 52.37133354, + 52.3358045267172, + 52.401722, + 52.3761845581983, + 52.357210691928, + 52.3704728678235, + 52.3762435052799, + 52.3612528575306, + 52.3375320353285, + 52.3653832244084, + 52.3142104, + 52.3826261860431, + 52.402437, + 52.362523087804, + 52.382749, + 52.3399845540409, + 52.3621398113363, + 52.333801725009, + 52.374897, + 52.2944386032995, + 52.3842761, + 52.3657488663193, + 52.3805227130876, + 52.401708, + 52.3754755496354, + 52.3793250181387, + 52.360949, + 52.3577085499967, + 52.3742253375528, + 52.3727871, + 52.3557911065058, + 52.3771969, + 52.3548896909311, + 52.3650847306161, + 52.3635697104527, + 52.3609924189596, + 52.3637926, + 52.38093936996, + 52.310162, + 52.3043624730413, + 52.391486, + 52.38808, + 52.3866061, + 52.3484551548406, + 52.378758, + 52.3648906471507, + 52.3614788973101, + 52.360993770212, + 52.3660603421124, + 52.3741996, + 52.364136, + 52.3922488195172, + 52.3743254, + 52.3569550152757, + 52.3618286015023, + 52.362654, + 52.3905283, + 52.36676, + 52.3590874033621, + 52.3626582165351, + 52.3584051486544, + 52.3738200603831, + 52.304806261585, + 52.365747, + 52.3712343600445, + 52.3096565954741, + 52.3318032874812, + 52.3730475260495, + 52.361593145237, + 52.3545784300335, + 52.3542499654985, + 52.3375048702365, + 52.3628600898999, + 52.3785865880488, + 52.3679418353713, + 52.3763294696329, + 52.3788935865371, + 52.3466449, + 52.3642477907647, + 52.3664514799061, + 52.387052242092, + 52.394036005692, + 52.3856494, + 52.3578617125481, + 52.3522127755719, + 52.359005091078, + 52.3759119269223, + 52.3498912311701, + 52.3756892358625, + 52.3773253, + 52.339954, + 52.3856249128608, + 52.3874575746578, + 52.3648857336342, + 52.3692724674063, + 52.3590162611425, + 52.3592102572324, + 52.37282362571, + 52.3402687108229, + 52.3742711914492, + 52.3581028827505, + 52.3707029544915, + 52.3535724695694, + 52.3513157924539, + 52.3823596305708, + 52.3678574924207, + 52.3468297845623, + 52.3537109, + 52.3576802926766, + 52.338489, + 52.3766373025148, + 52.3597614573926, + 52.3723323595859, + 52.3554163721413, + 52.379748, + 52.3544748942031, + 52.3921931674547, + 52.378642, + 52.3258551826725, + 52.355843, + 52.326535, + 52.3755639716479, + 52.3527640630135, + 52.3841992220711, + 52.3678173680479, + 52.3776721292375, + 52.3627085825928, + 52.3682186101361, + 52.3266731785754, + 52.37226, + 52.3664334643127, + 52.3310022397142, + 52.3636477, + 52.3418435228634, + 52.3337378043121, + 52.357917817414, + 52.35813, + 52.3599989709438, + 52.355375399345, + 52.3701379708517, + 52.3649577984884, + 52.3505248757999, + 52.3692891, + 52.381116191928, + 52.3432309277564, + 52.3623732172734, + 52.3658921741934, + 52.3585869750682, + 52.326138, + 52.3600415594456, + 52.3711983327514, + 52.3575427561554, + 52.36573564045, + 52.365333, + 52.3640545225574, + 52.3651023703734, + 52.3676388550903, + 52.3699794423125, + 52.364638, + 52.3575345009985, + 52.374241, + 52.3656137470407, + 52.362194, + 52.3724914, + 52.36198338772, + 52.3117288441657, + 52.372422425451, + 52.3992798782431 + ], + "legendgroup": "", + "lon": [ + 4.911744, + 4.924964, + 4.89331215620041, + 4.9463418, + 4.91952350926207, + 4.91414219141006, + 4.92270692381791, + 4.88805460000003, + 4.893588, + 4.89696532487869, + 4.89438101649284, + 4.88014921545982, + 4.834296, + 4.92086, + 4.94809359312057, + 4.89777535200119, + 4.92843508863831, + 4.88510727882385, + 4.90566909313202, + 4.94186959259036, + 4.89858202636242, + 4.90835, + 4.90240858888546, + 4.90684051779097, + 4.90726228255619, + 4.9285033, + 4.83745515346527, + 4.953709, + 4.92219427514647, + 4.90905001759529, + 4.842565, + 4.84125409510648, + 4.881296, + 4.89350185850526, + 4.853175, + 4.88731205463409, + 4.87704757601023, + 4.91446652778632, + 4.90765661001205, + 4.90066040307283, + 4.88726913928986, + 4.917847, + 4.90029025822878, + 4.95023131370544, + 4.9135098606348, + 4.90716399999997, + 4.91263214907383, + 4.89257459999999, + 4.887724, + 4.88620162010193, + 4.934809346, + 4.87454742193222, + 4.874767, + 4.89444941282272, + 4.85544981739667, + 4.88849088549614, + 4.88632701337337, + 4.88415978848934, + 4.86796079629515, + 4.89309288561344, + 4.93931620000001, + 4.85761788032187, + 4.931234, + 4.87563338130713, + 4.85784, + 4.87108765145111, + 4.87834140658379, + 4.88854050636292, + 4.89999, + 4.94534432888031, + 4.89465280000002, + 4.8966957628727, + 4.8869948329575, + 4.874811, + 4.88894149661064, + 4.84565332531929, + 4.905943, + 4.87398952245712, + 4.90481983743439, + 4.89000590000001, + 4.87775735557079, + 4.8955395, + 4.88353483378887, + 4.88395091146231, + 4.88622978329659, + 4.91579040884972, + 4.8833159, + 4.89037379622459, + 4.94645200000002, + 4.95098888346706, + 4.903551, + 4.91425, + 4.87529649999999, + 4.89281058311462, + 4.837766, + 4.87977102398872, + 4.87710893154144, + 4.91903621904908, + 4.91230891408611, + 4.90487689999998, + 4.878342, + 4.8501044511795, + 4.87461831349185, + 4.87741805613041, + 4.91056948900223, + 4.835317, + 4.841889, + 4.911423, + 4.92611087858677, + 4.87966239452362, + 4.89892099052668, + 4.88560751080513, + 4.94765461349175, + 4.879751, + 4.89013105630875, + 4.94188032142642, + 4.87750001904908, + 4.91685894973762, + 4.88302554935217, + 4.87975794821978, + 4.86642569303513, + 4.81692954897881, + 4.87637232989073, + 4.82055857777596, + 4.84405875205994, + 4.89954560995102, + 4.89205554127693, + 4.83109839999997, + 4.87990915775299, + 4.89692106842995, + 4.8394093674591, + 4.88258942460629, + 4.83444299999996, + 4.85650956630707, + 4.89166025072336, + 4.90271598100662, + 4.89886298775673, + 4.91888970136643, + 4.89610970020294, + 4.89305579999996, + 4.924154, + 4.84716810286045, + 4.83446717262268, + 4.88023370504379, + 4.89186644554138, + 4.89794578650822, + 4.87968116998672, + 4.88328203558922, + 4.87348794937134, + 4.89150166511536, + 4.89719734750327, + 4.89241696894169, + 4.87214963988117, + 4.87409010529518, + 4.8874618914017, + 4.88283142447472, + 4.90290641784668, + 4.91191600000002, + 4.85044240951538, + 4.891107, + 4.89465594291687, + 4.88107189536095, + 4.89758223295212, + 4.87812280654907, + 4.892712, + 5.00559633862306, + 4.91089671850204, + 4.895241, + 4.8670694231987, + 4.875724, + 4.931027, + 4.89289775490761, + 4.88361194729805, + 4.90390362334097, + 4.89441722631454, + 4.89721544086933, + 4.87461045384407, + 4.89572614431381, + 4.87995475530624, + 4.8364, + 4.91136878728867, + 4.85347867012024, + 4.8853753, + 4.87593680620193, + 4.92792874574661, + 4.9021178483963, + 4.902205, + 4.88204687833786, + 4.772438482658, + 4.89670112729073, + 4.88048851490021, + 4.87697213888168, + 4.8438768, + 4.8208911716938, + 4.85753103547779, + 4.79466319084167, + 4.91293653845787, + 4.87848825752735, + 4.953825, + 4.90546524524689, + 4.8954002559185, + 4.93057484418023, + 4.88310919170289, + 4.8819123, + 4.89844556897879, + 4.8803501018524, + 4.89420533180237, + 4.90738492868036, + 4.89644229999999, + 4.84374225139618, + 4.93466, + 4.88519445061684, + 4.919684, + 4.89332549999995, + 4.89448126405478, + 4.98621582984924, + 4.89441740508482, + 4.89473192953028 + ], + "marker": { + "color": [ + 5, + 4, + 4, + 4, + 3, + 4, + 4, + 0, + 4, + 3, + 0, + 3, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 3, + 2, + 3, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 5, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 4, + 4, + 4, + 4, + 2, + 4, + 4, + 3, + 4, + 4, + 4, + 1, + 4, + 4, + 4, + 4, + 4, + 3, + 4, + 4, + 3, + 3, + 5, + 0, + 5, + 2, + 4, + 2, + 4, + 5, + 3, + 4, + 3, + 4, + 3, + 4, + 5, + 3, + 3, + 2, + 3, + 4, + 3, + 3, + 3, + 4, + 3, + 3, + 4, + 0, + 4, + 4, + 5, + 4, + 2, + 4, + 3, + 3, + 4, + 4, + 0, + 4, + 4, + 4, + 4, + 3, + 3, + 4, + 1, + 3, + 4, + 3, + 4, + 3, + 4, + 4, + 3, + 2, + 3, + 2, + 3, + 3, + 0, + 0, + 4, + 3, + 2, + 2, + 0, + 3, + 5, + 3, + 1, + 0, + 3, + 3, + 5, + 0, + 5, + 3, + 0, + 3, + 4, + 3, + 4, + 0, + 4, + 3, + 4, + 4, + 3, + 3, + 3, + 0, + 4, + 5, + 3, + 3, + 4, + 1, + 5, + 4, + 4, + 3, + 3, + 0, + 4, + 3, + 2, + 0, + 3, + 3, + 4, + 2, + 4, + 0, + 3, + 4, + 3, + 4, + 5, + 4, + 5, + 5, + 3, + 5, + 0, + 3, + 2, + 5, + 3, + 5, + 3, + 4, + 2, + 5, + 5, + 3, + 3, + 3, + 5 + ], + "coloraxis": "coloraxis", + "size": 12 + }, + "mode": "markers", + "name": "", + "showlegend": false, + "subplot": "mapbox", + "type": "scattermapbox" + } + ], + "layout": { + "coloraxis": { + "colorbar": { + "title": { + "text": "stars" + } + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "height": 1000, + "legend": { + "tracegroupgap": 0 + }, + "mapbox": { + "center": { + "lat": 52.36194237574405, + "lon": 4.890813530014372 + }, + "domain": { + "x": [ + 0, + 1 + ], + "y": [ + 0, + 1 + ] + }, + "style": "open-street-map", + "zoom": 11.5 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Hotel Star Ratings in Amsterdam" + }, + "width": 1000 + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.scatter_mapbox(\n", + " df_hotels,\n", + " lat=\"latitude\",\n", + " lon=\"longitude\",\n", + " color=\"stars\",\n", + " hover_name=\"name\",\n", + " hover_data={\"price\": True, \"review_score\": True},\n", + " zoom=11.5,\n", + " title=\"Hotel Star Ratings in Amsterdam\",\n", + ")\n", + "fig.update_traces(marker=dict(size=12)) # ← make dots bigger (default is 6)\n", + "\n", + "fig.update_layout(\n", + " mapbox_style=\"open-street-map\",\n", + " height=1000,\n", + " width=1000\n", + ")\n", + "\n", + "fig.show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}