From c248a068d08dc92a1554ad32e410c4920cc8c8e5 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Fri, 17 Jan 2020 12:00:06 -0500 Subject: [PATCH 1/2] add a geojson dataset and link from election dataset --- .../python/plotly/plotly/data/__init__.py | 89 ++++++++++++------ .../package_data/datasets/election.csv.gz | Bin 1568 -> 1656 bytes 2 files changed, 60 insertions(+), 29 deletions(-) diff --git a/packages/python/plotly/plotly/data/__init__.py b/packages/python/plotly/plotly/data/__init__.py index e47a730822f..dfedcfd28a7 100644 --- a/packages/python/plotly/plotly/data/__init__.py +++ b/packages/python/plotly/plotly/data/__init__.py @@ -5,69 +5,100 @@ def gapminder(): """ - Each row represents a country on a given year. +Each row represents a country on a given year. - https://www.gapminder.org/data/ +https://www.gapminder.org/data/ - Returns: - A `pandas.DataFrame` with 1704 rows and the following columns: `['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap', - 'iso_alpha', 'iso_num']`. - """ +Returns: + A `pandas.DataFrame` with 1704 rows and the following columns: + `['country', 'continent', 'year', 'lifeExp', 'pop', 'gdpPercap', + 'iso_alpha', 'iso_num']`. +""" return _get_dataset("gapminder") def tips(): """ - Each row represents a restaurant bill. +Each row represents a restaurant bill. - https://vincentarelbundock.github.io/Rdatasets/doc/reshape2/tips.html +https://vincentarelbundock.github.io/Rdatasets/doc/reshape2/tips.html - Returns: - A `pandas.DataFrame` with 244 rows and the following columns: `['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size']`. - """ +Returns: + A `pandas.DataFrame` with 244 rows and the following columns: + `['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size']`. +""" return _get_dataset("tips") def iris(): """ - Each row represents a flower. +Each row represents a flower. - https://en.wikipedia.org/wiki/Iris_flower_data_set +https://en.wikipedia.org/wiki/Iris_flower_data_set - Returns: - A `pandas.DataFrame` with 150 rows and the following columns: `['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species', - 'species_id']`. - """ +Returns: + A `pandas.DataFrame` with 150 rows and the following columns: + `['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species', 'species_id']`. +""" return _get_dataset("iris") def wind(): """ - Each row represents a level of wind intensity in a cardinal direction, and its frequency. +Each row represents a level of wind intensity in a cardinal direction, and its frequency. - Returns: - A `pandas.DataFrame` with 128 rows and the following columns: `['direction', 'strength', 'frequency']`. - """ +Returns: + A `pandas.DataFrame` with 128 rows and the following columns: + `['direction', 'strength', 'frequency']`. +""" return _get_dataset("wind") def election(): """ - Each row represents voting results for an electoral district in the 2013 Montreal mayoral election. +Each row represents voting results for an electoral district in the 2013 Montreal +mayoral election. - Returns: - A `pandas.DataFrame` with 58 rows and the following columns: `['district', 'Coderre', 'Bergeron', 'Joly', 'total', 'winner', 'result']`. - """ +Returns: + A `pandas.DataFrame` with 58 rows and the following columns: + `['district', 'Coderre', 'Bergeron', 'Joly', 'total', 'winner', 'result', 'district_id']`. +""" return _get_dataset("election") -def carshare(): +def election_geojson(): """ - Each row represents the availability of car-sharing services near the centroid of a zone in Montreal. +Each feature represents an electoral district in the 2013 Montreal mayoral election. + +Returns: + A GeoJSON-formatted `dict` with 58 polygon or multi-polygon features whose `id` + is an electoral district numerical ID and whose `district` property is the ID and + district name. +""" + import gzip + import json + import os + + path = os.path.join( + os.path.dirname(os.path.dirname(__file__)), + "package_data", + "datasets", + "election.geojson.gz", + ) + with gzip.GzipFile(path, "r") as f: + result = json.loads(f.read().decode("utf-8")) + return result + - Returns: - A `pandas.DataFrame` with 249 rows and the following columns: `['centroid_lat', 'centroid_lon', 'car_hours', 'peak_hour']`. +def carshare(): """ +Each row represents the availability of car-sharing services near the centroid of a zone +in Montreal. + +Returns: + A `pandas.DataFrame` with 249 rows and the following columns: + `['centroid_lat', 'centroid_lon', 'car_hours', 'peak_hour']`. +""" return _get_dataset("carshare") diff --git a/packages/python/plotly/plotly/package_data/datasets/election.csv.gz b/packages/python/plotly/plotly/package_data/datasets/election.csv.gz index 9038c29a41e1fa8ab1d4c36685b2bd8f85f9fdb7..e97ee221f1698d634c84b5fbaa34a0de4ac4f6ba 100644 GIT binary patch literal 1656 zcmV-;28a0{iwFpd;2~ZB17&PwV{~b6ZZ2bUb^vXcO>!GY5{36Tg?8RlJG%a>mL~M$ zV30C{Qq0!T0&2*10NtEMgEHp^-pnDq@n}Ccz{TcEg0L85Z4e3wS@|;ay_d;#zniCi zHLK;gF4I)hS($FiG!E)~+&rjxoV$(s+7CmS)Kqr+&8*f>A;0$Pg>H3oHuk$_U7Cx& z>~=*Nm$cH!WMy09RJ7I|-@4oEr*6~F4~i%vO|$IononIn%*}bX`q#efl<~$Zt%Fr2 zM6ZJ7U$27ALTlo{(scXg`tWTvZZ>6BWJ=1!*z$}uDh1#EUDmUBaua{qZ%XrSSSuX? z=wdQNX{T~)+wV=-cE63&F-pQr^R`^@#kQv%S~B@;ErmJ7n&yqgJY8NCu_UO}obJr7VX_7Qb^Wm&Y@<63bvKrl7bZ@Rkq6@A1 zy}6pYeqv0@J0B<@v^0%+b?e>tN4`Th6m3lN?1j%$*?!sZf|IuC6saJAC%fQl4+sj| zT=)0=;lERXCc9@KC|hNpln$Ut*6Z2}big)0-R_5Z*RPbxWV8;0 zx6lq*PU|8gTLK-v-uH-vC$v$#;FM|6X*6)Q@`Svgo8{qub9p9h+Mc8|Sd&T3=<30= z&za`qIBmP3xm;azQyG-gtrOl0VGQcD$ybAEoIg$O;_z)8m|XL2hrBa2C+4k#(~OZC zUem>s+nbl+zu+yi@)o>WCtzd>NiOEv3jhcw06&*u>aWV&(}%NhKi!NsLwSJ1GEq=2fFtn zbx5#fF-<;OE%+vJ5j{ zvxBg0UezWA;bx`|Ew+sajaa);&Qv`F2gZO;{2#ce;1R0Y=Uqvw5?4u8s~j!}*g zkMSCG6+?QZYy8&w=3;ypHyxC4pmS_C6Ud9*`d7dA3(R%Bf3xfct}D(Rj~z-wpcGkN zoje#SetP~R8);jn2R7(?Hl3V2R<115`lAs# zF`btw?ZTgqtS2)a_dRQ0NX!^uNYt{uL(O4uVN7^gR{f^A`jP2T|!jd zhR4wSGL(GwWJk?e|8H?*uTi)W^*j#KylhXfi{MU%^q~wz?wfnotBet-Op*F(Xn|*n@&#)CI{6QU7<4alF zswLvy(KbJiVujsJC;A9-TIA!+9dlc~MWbCrcVq$goVciGenyKIS_p)j)f_3h1*_tC z$SgPA)U9CbqbITdX{`sRt{4-`f?e^;eZQ8tGCkf;!SH7Vype;ITcCYLzVCr%f!~vA zPvrFjyvwZ90O6cL$!#zdl$bqUf6kqDcME~K{TD7juH+VBS}4R+bEtL`m&fF<$1eqe z$%)YIb{&!uqwy#=9~obZvCXa`c7OQBZOAHv;tnS0Kx=DpZt;KiwxD&k4FCX4 C8&gsM literal 1568 zcmV+*2H*J~iwFpAGUHtU17&PwV{~b6ZZ2bUb^v`>%TgOh6y4`5Tx_zLcJ=$Q4Dzce zuqkk5-@} zwHJ->GBk=y-8iN6_e{6#RAQUQhdEZVMZ9I#F?S<7i_1T!G$7na(+FWzBds%yRrqu? zTp$uvusE@+?c=g<+k{5&ns20Y9Ep@{yfyr=x#t-KyU1-~ue;SrBOL0~&PxOe-2|@q zvsrB7=f3O%C3}_5@y|`Bc?f#W1f|fi){Wp!yLzl*XDMQk>>_qc)FiYqjWQuLQVENB zx#tf*D_K5`>w0Q$Ges-Ri)JS9MXSbBidw%?u=DuhvPXi1v3+5eCFYW8>P8!jJ}k!o z(YWA7Kg)C2ft2hZ$H$U3pIXYHX@bH#G~!WI(AHE_D0Y?a^7h}70G;8m5cJ;!;~Qa7 zkyl34awzuO&D4!UUIH`$uPTkorFW_c5^Jo^P>H7@ZojVjDHdA3m#(pz13F$1{J5!a zUr9ucInfSZrC}4xnBs&YloF_a#-B$6+}k<~lw!Z z?N7SU01#$|G|Lfb@e9hLcO?KPsZmOhCRDMY!P~M*w7~@$0FLi67(_{gY>-1Yl7q-j z5|(R81Y2zX8`B~Eu>|z4B#;#FK34gYc*)-PWfMDgu{@6@p$9FvCQ1;9B>1bmsfL^V zBG0#veTPM|*8@pFK=U355LOFp6|GbtWaN(tK0t$z!YEWNghwd>?Rf1%Er;C~@h){G zU#2l*9;f|O*8RFmPej@M#^NTHnJHKgmaMD?@11Xg!k42OXZHnOLh80(H#1nJ0WKsD zlJfY*@ldC{6ZGolwndinU$=j^JHB1_X)434mX7if(ICW;vVhB3x@fmf^EMA*kI`Kdn0aBKTw(uU*#fw1dB1s*%tg1`UKulS(*I&le4VnI5 zY7{J7P?$O*jTKd5;Z8j9KoSKkkb#?KiO@AQ#!Z;HCyYl^qyWGR6xmi42q$2Xx{-d4 z^989#ZXvyGw6&`83Y7a5D3rVPNG%D{daxAJkRX(nb*X`7@0Ds`?^9mSAhL9=1EgLM z4GooCg97yWy6f*(^ScHbFAT@yuqPK`hAZMQS@fk$hT$t&wTQoBYR_@))L%v z)*t7;GVHv6=-Y@Hag8!Hj-#}A9U^UxhCq^6(~Cvy$g#mj8AvG22Y|y{$E_4(`0OQa z+9s6;oZ|kjpH~U|HB_U(bl_}w6{uRVH+>m#%Gx&0UP_UNlicj&Q`d)Vwf+>;9T zQzjolNXKq~A1BBR*s3T&z!zzmTXy*pTfN660YwdVBFM$a07v9JuVN6|eVOU!RDT+0 zGdJrP{6`4bu|L@C0S+xmVFzBHrtWjxY=)l7^~<=2C`nY za0&g)Ll4h0-NE{H>nT0CKw#5pLKk?X1T-xORhLw!*t?#zG_K>!Bulm>?99FkyzYIS z-T?&8aaLl3y-Go9ssJyjVO7s?cXn23(Z&*C7p<8k4b}p~HYixsbPbp1!(CocXev9K zW+nc#0jkI(!)Ng4=sbwU@xX%Fom}_fLEM8WwJ#E z?DzNs!{F+RVC(b6&A946C9sh^NE`-CS!)t018)^}#Ha@A{of{_<=yrXp%|0}6Er{~ SEZLOfq5lKHqfE3*4gdh@LjsTh From 9b14481bfbde9fab17918ea82037952e7c74764e Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Fri, 17 Jan 2020 12:02:06 -0500 Subject: [PATCH 2/2] add a geojson dataset and link from election dataset --- .../package_data/datasets/election.geojson.gz | Bin 0 -> 31857 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/python/plotly/plotly/package_data/datasets/election.geojson.gz diff --git a/packages/python/plotly/plotly/package_data/datasets/election.geojson.gz b/packages/python/plotly/plotly/package_data/datasets/election.geojson.gz new file mode 100644 index 0000000000000000000000000000000000000000..3cb20e44dddde09d3ecd32491d9700e43bc1ebb3 GIT binary patch literal 31857 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�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 literal 0 HcmV?d00001