├── .gitignore ├── README.md ├── assets ├── fonts │ ├── DM_Sans │ │ ├── DMSans-Bold.ttf │ │ ├── DMSans-BoldItalic.ttf │ │ ├── DMSans-Italic.ttf │ │ ├── DMSans-Medium.ttf │ │ ├── DMSans-MediumItalic.ttf │ │ ├── DMSans-Regular.ttf │ │ └── OFL.txt │ └── Karla │ │ ├── Karla-Bold.ttf │ │ ├── Karla-BoldItalic.ttf │ │ ├── Karla-ExtraBold.ttf │ │ ├── Karla-ExtraBoldItalic.ttf │ │ ├── Karla-ExtraLight.ttf │ │ ├── Karla-ExtraLightItalic.ttf │ │ ├── Karla-Italic.ttf │ │ ├── Karla-Light.ttf │ │ ├── Karla-LightItalic.ttf │ │ ├── Karla-Medium.ttf │ │ ├── Karla-MediumItalic.ttf │ │ ├── Karla-Regular.ttf │ │ ├── Karla-SemiBold.ttf │ │ ├── Karla-SemiBoldItalic.ttf │ │ ├── OFL.txt │ │ └── README.txt └── stylesheets │ └── soc_base.mplstyle ├── figuring_figures_out_2 ├── data │ └── seriea_2017_2018_table.csv ├── figures │ ├── data_coordinates.png │ ├── empty_fig_transforms.png │ ├── figure_coordinates.png │ ├── s_letter.png │ ├── scatter_axes_figure.png │ ├── scatter_logo_axes_figure.png │ ├── scatter_logo_excercise.png │ └── seriea_table.png └── main_notebook.ipynb ├── intro_monte_carlo ├── data │ ├── match_info_data.csv │ └── ucl_shot_data.csv ├── figures │ └── dice_game_hist.png └── main_notebook.ipynb ├── intro_to_efficient_scraping ├── figures │ ├── serie_a_predictions.png │ └── serie_a_predictions_tr.png └── main_notebook.ipynb ├── requirements.txt └── tables_tutorial ├── data └── real_madrid_playing_time.csv ├── figures ├── a_very_basic_table.png ├── final_table.png ├── final_table_bkg.png ├── first_useful_table.png ├── flag_example.png └── pretty_example.png └── main_notebook.ipynb /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .TutorialsVenv 106 | .env 107 | .venv 108 | env/ 109 | venv/ 110 | ENV/ 111 | env.bak/ 112 | venv.bak/ 113 | 114 | # Spyder project settings 115 | .spyderproject 116 | .spyproject 117 | 118 | # Rope project settings 119 | .ropeproject 120 | 121 | # mkdocs documentation 122 | /site 123 | 124 | # mypy 125 | .mypy_cache/ 126 | .dmypy.json 127 | dmypy.json 128 | 129 | # Pyre type checker 130 | .pyre/ 131 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SON OF A CORNER Python Tutorials 2 | 3 | The Jupyter notebooks behind my [python tutorials](https://www.sonofacorner.com/tag/tutorials/). 4 | 5 | -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/DMSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/DM_Sans/DMSans-Bold.ttf -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/DMSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/DM_Sans/DMSans-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/DMSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/DM_Sans/DMSans-Italic.ttf -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/DMSans-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/DM_Sans/DMSans-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/DMSans-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/DM_Sans/DMSans-MediumItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/DMSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/DM_Sans/DMSans-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/DM_Sans/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2014-2017 Indian Type Foundry (info@indiantypefoundry.com). Copyright 2019 Google LLC. 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-Bold.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-ExtraBold.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-ExtraLight.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-Italic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-LightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-Medium.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-MediumItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-SemiBold.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/Karla-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/assets/fonts/Karla/Karla-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/Karla/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2019 The Karla Project Authors (https://github.com/googlefonts/karla) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /assets/fonts/Karla/README.txt: -------------------------------------------------------------------------------- 1 | Karla Variable Font 2 | =================== 3 | 4 | This download contains Karla as both variable fonts and static fonts. 5 | 6 | Karla is a variable font with this axis: 7 | wght 8 | 9 | This means all the styles are contained in these files: 10 | Karla-VariableFont_wght.ttf 11 | Karla-Italic-VariableFont_wght.ttf 12 | 13 | If your app fully supports variable fonts, you can now pick intermediate styles 14 | that aren’t available as static fonts. Not all apps support variable fonts, and 15 | in those cases you can use the static font files for Karla: 16 | static/Karla-ExtraLight.ttf 17 | static/Karla-Light.ttf 18 | static/Karla-Regular.ttf 19 | static/Karla-Medium.ttf 20 | static/Karla-SemiBold.ttf 21 | static/Karla-Bold.ttf 22 | static/Karla-ExtraBold.ttf 23 | static/Karla-ExtraLightItalic.ttf 24 | static/Karla-LightItalic.ttf 25 | static/Karla-Italic.ttf 26 | static/Karla-MediumItalic.ttf 27 | static/Karla-SemiBoldItalic.ttf 28 | static/Karla-BoldItalic.ttf 29 | static/Karla-ExtraBoldItalic.ttf 30 | 31 | Get started 32 | ----------- 33 | 34 | 1. Install the font files you want to use 35 | 36 | 2. Use your app's font picker to view the font family and all the 37 | available styles 38 | 39 | Learn more about variable fonts 40 | ------------------------------- 41 | 42 | https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts 43 | https://variablefonts.typenetwork.com 44 | https://medium.com/variable-fonts 45 | 46 | In desktop apps 47 | 48 | https://theblog.adobe.com/can-variable-fonts-illustrator-cc 49 | https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts 50 | 51 | Online 52 | 53 | https://developers.google.com/fonts/docs/getting_started 54 | https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide 55 | https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts 56 | 57 | Installing fonts 58 | 59 | MacOS: https://support.apple.com/en-us/HT201749 60 | Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux 61 | Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows 62 | 63 | Android Apps 64 | 65 | https://developers.google.com/fonts/docs/android 66 | https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts 67 | 68 | License 69 | ------- 70 | Please read the full license text (OFL.txt) to understand the permissions, 71 | restrictions and requirements for usage, redistribution, and modification. 72 | 73 | You can use them freely in your products & projects - print or digital, 74 | commercial or otherwise. 75 | 76 | This isn't legal advice, please consider consulting a lawyer and see the full 77 | license for all details. 78 | -------------------------------------------------------------------------------- /assets/stylesheets/soc_base.mplstyle: -------------------------------------------------------------------------------- 1 | # SOC Matplotlib style 2 | 3 | #### FONTS 4 | 5 | font.family: Karla 6 | xtick.labelsize: 10 7 | ytick.labelsize: 10 8 | 9 | #### FIGURE SIZE 10 | 11 | figure.figsize: 7.5, 3.25 12 | 13 | ### COLORS 14 | 15 | figure.facecolor: efe9e6 16 | axes.facecolor: efe9e6 17 | axes.prop_cycle: cycler(color=["287271","495371"]) 18 | axes.spines.top: False 19 | axes.spines.right: False 20 | 21 | ### OTHERS 22 | 23 | ytick.color: 000000 24 | xtick.color: 000000 25 | axes.edgecolor: 000000 26 | 27 | legend.fontsize: 10 28 | legend.frameon: False 29 | 30 | -------------------------------------------------------------------------------- /figuring_figures_out_2/data/seriea_2017_2018_table.csv: -------------------------------------------------------------------------------- 1 | ,team_id,team_name,points 2 | 0,9885,Juventus,95 3 | 1,9875,SSC Napoli,91 4 | 2,8686,Roma,77 5 | 3,8636,Inter,72 6 | 4,8543,Lazio,72 7 | 5,8564,AC Milan,64 8 | 6,8524,Atalanta,60 9 | 7,8535,Fiorentina,57 10 | 8,9804,Torino,54 11 | 9,9882,Sampdoria,54 12 | 10,7943,Sassuolo,43 13 | 11,10233,Genoa,41 14 | 12,8600,Udinese,40 15 | 13,8533,ChievoVerona,40 16 | 14,9857,Bologna,39 17 | 15,8529,Cagliari,39 18 | 16,8547,SPAL 2013,38 19 | 17,9884,Crotone,35 20 | 18,9876,Hellas Verona,25 21 | 19,6266,Benevento,21 22 | -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/data_coordinates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/data_coordinates.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/empty_fig_transforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/empty_fig_transforms.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/figure_coordinates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/figure_coordinates.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/s_letter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/s_letter.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/scatter_axes_figure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/scatter_axes_figure.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/scatter_logo_axes_figure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/scatter_logo_axes_figure.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/scatter_logo_excercise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/scatter_logo_excercise.png -------------------------------------------------------------------------------- /figuring_figures_out_2/figures/seriea_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/figuring_figures_out_2/figures/seriea_table.png -------------------------------------------------------------------------------- /intro_monte_carlo/data/match_info_data.csv: -------------------------------------------------------------------------------- 1 | ,date,match_id,home_team_id,home_team_name,away_team_id,away_team_name,home_team_score,away_team_score,finished,cancelled,result,league_id,league_name 2 | 0,2022-09-07 18:45:00,4010118,8593,Ajax,8548,Rangers,4,0,True,False,Home,42,Champions League 3 | 1,2022-09-07 21:00:00,4010119,9875,Napoli,8650,Liverpool,4,1,True,False,Home,42,Champions League 4 | 2,2022-09-07 21:00:00,4010138,9906,Atletico Madrid,9773,FC Porto,2,1,True,False,Home,42,Champions League 5 | 3,2022-09-07 21:00:00,4010139,8342,Club Brugge,8178,Leverkusen,1,0,True,False,Home,42,Champions League 6 | 4,2022-09-07 21:00:00,4010163,8634,Barcelona,6033,Viktoria Plzen,5,1,True,False,Home,42,Champions League 7 | 5,2022-09-07 21:00:00,4010164,8636,Inter,9823,Bayern München,0,2,True,False,Away,42,Champions League 8 | 6,2022-09-07 18:45:00,4010181,9810,Frankfurt,9768,Sporting CP,0,3,True,False,Away,42,Champions League 9 | 7,2022-09-07 21:00:00,4010182,8586,Tottenham,8592,Marseille,2,0,True,False,Home,42,Champions League 10 | 0,2022-09-06 18:45:00,4010132,10156,Dinamo Zagreb,8455,Chelsea,1,0,True,False,Home,42,Champions League 11 | 1,2022-09-06 21:00:00,4010133,10013,Salzburg,8564,Milan,1,1,True,False,Draw,42,Champions League 12 | 2,2022-09-06 21:00:00,4010150,9925,Celtic,8633,Real Madrid,0,3,True,False,Away,42,Champions League 13 | 3,2022-09-06 21:00:00,4010151,178475,RB Leipzig,9728,Shakhtar Donetsk,1,4,True,False,Away,42,Champions League 14 | 4,2022-09-06 18:45:00,4010156,9789,Dortmund,8391,FC København,3,0,True,False,Home,42,Champions League 15 | 5,2022-09-06 21:00:00,4010157,8302,Sevilla,8456,Man City,0,4,True,False,Away,42,Champions League 16 | 6,2022-09-06 21:00:00,4010176,9772,Benfica,10185,Maccabi Haifa,2,0,True,False,Home,42,Champions League 17 | 7,2022-09-06 21:00:00,4010175,9847,PSG,9885,Juventus,2,1,True,False,Home,42,Champions League 18 | 0,2022-09-14 21:00:00,4010121,8548,Rangers,9875,Napoli,0,3,True,False,Away,42,Champions League 19 | 1,2022-09-14 18:45:00,4010205,8564,Milan,10156,Dinamo Zagreb,3,1,True,False,Home,42,Champions League 20 | 2,2022-09-14 21:00:00,4010206,8455,Chelsea,10013,Salzburg,1,1,True,False,Draw,42,Champions League 21 | 3,2022-09-14 18:45:00,4010211,9728,Shakhtar Donetsk,9925,Celtic,1,1,True,False,Draw,42,Champions League 22 | 4,2022-09-14 21:00:00,4010212,8633,Real Madrid,178475,RB Leipzig,2,0,True,False,Home,42,Champions League 23 | 5,2022-09-14 21:00:00,4010231,8391,FC København,8302,Sevilla,0,0,True,False,Draw,42,Champions League 24 | 6,2022-09-14 21:00:00,4010230,8456,Man City,9789,Dortmund,2,1,True,False,Home,42,Champions League 25 | 7,2022-09-14 21:00:00,4010237,9885,Juventus,9772,Benfica,1,2,True,False,Away,42,Champions League 26 | 8,2022-09-14 21:00:00,4010236,10185,Maccabi Haifa,9847,PSG,1,3,True,False,Away,42,Champions League 27 | 0,2022-09-13 21:00:00,4010120,8650,Liverpool,8593,Ajax,2,1,True,False,Home,42,Champions League 28 | 1,2022-09-13 21:00:00,4010140,8178,Leverkusen,9906,Atletico Madrid,2,0,True,False,Home,42,Champions League 29 | 2,2022-09-13 21:00:00,4010141,9773,FC Porto,8342,Club Brugge,0,4,True,False,Away,42,Champions League 30 | 3,2022-09-13 18:45:00,4010166,6033,Viktoria Plzen,8636,Inter,0,2,True,False,Away,42,Champions League 31 | 4,2022-09-13 21:00:00,4010165,9823,Bayern München,8634,Barcelona,2,0,True,False,Home,42,Champions League 32 | 5,2022-09-13 18:45:00,4010184,9768,Sporting CP,8586,Tottenham,2,0,True,False,Home,42,Champions League 33 | 6,2022-09-13 21:00:00,4010183,8592,Marseille,9810,Frankfurt,0,1,True,False,Away,42,Champions League 34 | 0,2022-10-04 21:00:00,4010124,8593,Ajax,9875,Napoli,1,6,True,False,Away,42,Champions League 35 | 1,2022-10-04 21:00:00,4010125,8650,Liverpool,8548,Rangers,2,0,True,False,Home,42,Champions League 36 | 2,2022-10-04 21:00:00,4010143,8342,Club Brugge,9906,Atletico Madrid,2,0,True,False,Home,42,Champions League 37 | 3,2022-10-04 21:00:00,4010142,9773,FC Porto,8178,Leverkusen,2,0,True,False,Home,42,Champions League 38 | 4,2022-10-04 18:45:00,4010167,9823,Bayern München,6033,Viktoria Plzen,5,0,True,False,Home,42,Champions League 39 | 5,2022-10-04 21:00:00,4010168,8636,Inter,8634,Barcelona,1,0,True,False,Home,42,Champions League 40 | 6,2022-10-04 19:05:00,4010185,8592,Marseille,9768,Sporting CP,4,1,True,False,Home,42,Champions League 41 | 7,2022-10-04 21:00:00,4010186,9810,Frankfurt,8586,Tottenham,0,0,True,False,Draw,42,Champions League 42 | 0,2022-10-05 18:45:00,4010134,10013,Salzburg,10156,Dinamo Zagreb,1,0,True,False,Home,42,Champions League 43 | 1,2022-10-05 21:00:00,4010135,8455,Chelsea,8564,Milan,3,0,True,False,Home,42,Champions League 44 | 2,2022-10-05 18:45:00,4010152,178475,RB Leipzig,9925,Celtic,3,1,True,False,Home,42,Champions League 45 | 3,2022-10-05 21:00:00,4010153,8633,Real Madrid,9728,Shakhtar Donetsk,2,1,True,False,Home,42,Champions League 46 | 4,2022-10-05 21:00:00,4010158,8456,Man City,8391,FC København,5,0,True,False,Home,42,Champions League 47 | 5,2022-10-05 21:00:00,4010159,8302,Sevilla,9789,Dortmund,1,4,True,False,Away,42,Champions League 48 | 6,2022-10-05 21:00:00,4010178,9772,Benfica,9847,PSG,1,1,True,False,Draw,42,Champions League 49 | 7,2022-10-05 21:00:00,4010177,9885,Juventus,10185,Maccabi Haifa,3,1,True,False,Home,42,Champions League 50 | 0,2022-10-12 18:45:00,4010126,9875,Napoli,8593,Ajax,4,2,True,False,Home,42,Champions League 51 | 1,2022-10-12 21:00:00,4010127,8548,Rangers,8650,Liverpool,1,7,True,False,Away,42,Champions League 52 | 2,2022-10-12 18:45:00,4010145,9906,Atletico Madrid,8342,Club Brugge,0,0,True,False,Draw,42,Champions League 53 | 3,2022-10-12 21:00:00,4010144,8178,Leverkusen,9773,FC Porto,0,3,True,False,Away,42,Champions League 54 | 4,2022-10-12 21:00:00,4010169,8634,Barcelona,8636,Inter,3,3,True,False,Draw,42,Champions League 55 | 5,2022-10-12 21:00:00,4010170,6033,Viktoria Plzen,9823,Bayern München,2,4,True,False,Away,42,Champions League 56 | 6,2022-10-12 21:00:00,4010188,9768,Sporting CP,8592,Marseille,0,2,True,False,Away,42,Champions League 57 | 7,2022-10-12 21:00:00,4010187,8586,Tottenham,9810,Frankfurt,3,2,True,False,Home,42,Champions League 58 | 0,2022-10-11 21:00:00,4010136,10156,Dinamo Zagreb,10013,Salzburg,1,1,True,False,Draw,42,Champions League 59 | 1,2022-10-11 21:00:00,4010137,8564,Milan,8455,Chelsea,0,2,True,False,Away,42,Champions League 60 | 2,2022-10-11 21:00:00,4010155,9925,Celtic,178475,RB Leipzig,0,2,True,False,Away,42,Champions League 61 | 3,2022-10-11 21:00:00,4010154,9728,Shakhtar Donetsk,8633,Real Madrid,1,1,True,False,Draw,42,Champions League 62 | 4,2022-10-11 18:45:00,4010160,8391,FC København,8456,Man City,0,0,True,False,Draw,42,Champions League 63 | 5,2022-10-11 21:00:00,4010161,9789,Dortmund,8302,Sevilla,1,1,True,False,Draw,42,Champions League 64 | 6,2022-10-11 18:45:00,4010179,10185,Maccabi Haifa,9885,Juventus,2,0,True,False,Home,42,Champions League 65 | 7,2022-10-11 21:00:00,4010180,9847,PSG,9772,Benfica,1,1,True,False,Draw,42,Champions League 66 | 0,2022-10-26 21:00:00,4010129,8593,Ajax,8650,Liverpool,0,3,True,False,Away,42,Champions League 67 | 1,2022-10-26 21:00:00,4010128,9875,Napoli,8548,Rangers,3,0,True,False,Home,42,Champions League 68 | 2,2022-10-26 18:45:00,4010146,8342,Club Brugge,9773,FC Porto,0,4,True,False,Away,42,Champions League 69 | 3,2022-10-26 21:00:00,4010147,9906,Atletico Madrid,8178,Leverkusen,2,2,True,False,Draw,42,Champions League 70 | 4,2022-10-26 18:45:00,4010171,8636,Inter,6033,Viktoria Plzen,4,0,True,False,Home,42,Champions League 71 | 5,2022-10-26 21:00:00,4010172,8634,Barcelona,9823,Bayern München,0,3,True,False,Away,42,Champions League 72 | 6,2022-10-26 21:00:00,4010189,9810,Frankfurt,8592,Marseille,2,1,True,False,Home,42,Champions League 73 | 7,2022-10-26 21:00:00,4010190,8586,Tottenham,9768,Sporting CP,1,1,True,False,Draw,42,Champions League 74 | 0,2022-10-25 18:45:00,4010207,10013,Salzburg,8455,Chelsea,1,2,True,False,Away,42,Champions League 75 | 1,2022-10-25 21:00:00,4010208,10156,Dinamo Zagreb,8564,Milan,0,4,True,False,Away,42,Champions League 76 | 2,2022-10-25 21:00:00,4010213,9925,Celtic,9728,Shakhtar Donetsk,1,1,True,False,Draw,42,Champions League 77 | 3,2022-10-25 21:00:00,4010214,178475,RB Leipzig,8633,Real Madrid,3,2,True,False,Home,42,Champions League 78 | 4,2022-10-25 18:45:00,4010232,8302,Sevilla,8391,FC København,3,0,True,False,Home,42,Champions League 79 | 5,2022-10-25 21:00:00,4010233,9789,Dortmund,8456,Man City,0,0,True,False,Draw,42,Champions League 80 | 6,2022-10-25 21:00:00,4010238,9772,Benfica,9885,Juventus,4,3,True,False,Home,42,Champions League 81 | 7,2022-10-25 21:00:00,4010239,9847,PSG,10185,Maccabi Haifa,7,2,True,False,Home,42,Champions League 82 | 0,2022-11-01 21:00:00,4010130,8650,Liverpool,9875,Napoli,2,0,True,False,Home,42,Champions League 83 | 1,2022-11-01 21:00:00,4010131,8548,Rangers,8593,Ajax,1,3,True,False,Away,42,Champions League 84 | 2,2022-11-01 18:45:00,4010149,8178,Leverkusen,8342,Club Brugge,0,0,True,False,Draw,42,Champions League 85 | 3,2022-11-01 18:45:00,4010148,9773,FC Porto,9906,Atletico Madrid,2,1,True,False,Home,42,Champions League 86 | 4,2022-11-01 21:00:00,4010173,9823,Bayern München,8636,Inter,2,0,True,False,Home,42,Champions League 87 | 5,2022-11-01 21:00:00,4010174,6033,Viktoria Plzen,8634,Barcelona,2,4,True,False,Away,42,Champions League 88 | 6,2022-11-01 21:00:00,4010192,8592,Marseille,8586,Tottenham,1,2,True,False,Away,42,Champions League 89 | 7,2022-11-01 21:00:00,4010191,9768,Sporting CP,9810,Frankfurt,1,2,True,False,Away,42,Champions League 90 | 0,2022-11-02 21:00:00,4010210,8455,Chelsea,10156,Dinamo Zagreb,2,1,True,False,Home,42,Champions League 91 | 1,2022-11-02 21:00:00,4010209,8564,Milan,10013,Salzburg,4,0,True,False,Home,42,Champions League 92 | 2,2022-11-02 18:45:00,4010215,8633,Real Madrid,9925,Celtic,5,1,True,False,Home,42,Champions League 93 | 3,2022-11-02 18:45:00,4010216,9728,Shakhtar Donetsk,178475,RB Leipzig,0,4,True,False,Away,42,Champions League 94 | 4,2022-11-02 21:00:00,4010235,8391,FC København,9789,Dortmund,1,1,True,False,Draw,42,Champions League 95 | 5,2022-11-02 21:00:00,4010234,8456,Man City,8302,Sevilla,3,1,True,False,Home,42,Champions League 96 | 6,2022-11-02 21:00:00,4010241,9885,Juventus,9847,PSG,1,2,True,False,Away,42,Champions League 97 | 7,2022-11-02 21:00:00,4010240,10185,Maccabi Haifa,9772,Benfica,1,6,True,False,Away,42,Champions League 98 | -------------------------------------------------------------------------------- /intro_monte_carlo/figures/dice_game_hist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/intro_monte_carlo/figures/dice_game_hist.png -------------------------------------------------------------------------------- /intro_to_efficient_scraping/figures/serie_a_predictions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/intro_to_efficient_scraping/figures/serie_a_predictions.png -------------------------------------------------------------------------------- /intro_to_efficient_scraping/figures/serie_a_predictions_tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/intro_to_efficient_scraping/figures/serie_a_predictions_tr.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/requirements.txt -------------------------------------------------------------------------------- /tables_tutorial/data/real_madrid_playing_time.csv: -------------------------------------------------------------------------------- 1 | ,,,,,Playing Time,,,,Starts,,,Subs,,,Team Success,,,,,,Team Success (xG),,,,,,-additional 2 | Player,Nation,Pos,Age,MP,Min,Mn/MP,Min%,90s,Starts,Mn/Start,Compl,Subs,Mn/Sub,unSub,PPM,onG,onGA,+/-,+/-90,On-Off,onxG,onxGA,xG+/-,xG+/-90,On-Off,Matches,-9999 3 | Thibaut Courtois,be BEL,GK,29,36,3240,90,94.7,36.0,36,90,36,0,,1,2.36,79,29,+50,+1.39,+1.89,71.3,41.4,+29.8,+0.83,+1.95,Matches,1840e36d 4 | Éder Militão,br BRA,DF,23,34,3031,89,88.6,33.7,34,89,32,0,,2,2.18,63,30,+33,+0.98,-2.72,62.5,41.0,+21.4,+0.64,-0.79,Matches,2784f898 5 | Karim Benzema,fr FRA,FW,33,32,2593,81,75.8,28.8,31,83,18,1,31,1,2.44,64,23,+41,+1.42,+0.55,57.5,30.6,+26.9,+0.93,+0.86,Matches,70d74ece 6 | Casemiro,br BRA,MF,29,32,2569,80,75.1,28.5,31,82,22,1,30,2,2.13,52,23,+29,+1.02,-1.10,51.2,34.3,+16.9,+0.59,-0.54,Matches,4d224fe8 7 | Vinicius Júnior,br BRA,FW,21,35,2690,77,78.7,29.9,30,86,15,5,21,0,2.34,65,22,+43,+1.44,+0.70,56.6,32.9,+23.8,+0.80,+0.32,Matches,7111d552 8 | David Alaba,at AUT,DF,29,30,2642,88,77.3,29.4,30,88,27,0,,0,2.30,60,26,+34,+1.16,-0.58,53.9,32.2,+21.7,+0.74,+0.06,Matches,05439de2 9 | Toni Kroos,de GER,MF,31,28,2103,75,61.5,23.4,25,81,15,3,22,2,2.14,37,18,+19,+0.81,-1.24,43.3,26.6,+16.7,+0.72,-0.03,Matches,6ce1f46f 10 | Luka Modrić,hr CRO,MF,35,28,2032,73,59.4,22.6,25,79,6,3,22,2,2.29,47,20,+27,+1.20,-0.23,43.3,26.4,+16.9,+0.75,+0.06,Matches,6025fab1 11 | Lucas Vázquez,es ESP,DF,30,29,1833,63,53.6,20.4,20,83,11,9,20,8,2.24,39,18,+21,+1.03,-0.56,38.9,28.0,+10.9,+0.54,-0.41,Matches,fd51b456 12 | Ferland Mendy,fr FRA,DF,26,22,1734,79,50.7,19.3,20,84,14,2,24,2,2.36,41,12,+29,+1.51,+0.44,40.4,20.5,+19.9,+1.03,+0.62,Matches,3cefcaef 13 | Federico Valverde,uy URU,MF,23,31,1833,59,53.6,20.4,19,83,11,12,21,2,2.26,44,19,+25,+1.23,-0.13,40.0,26.3,+13.7,+0.67,-0.12,Matches,0959c2a2 14 | Marco Asensio,es ESP,FWMF,25,31,1731,56,50.6,19.2,19,79,7,12,20,2,2.39,42,13,+29,+1.51,+0.44,41.6,24.1,+17.4,+0.91,+0.36,Matches,45af8a54 15 | Nacho,es ESP,DF,31,28,1555,56,45.5,17.3,17,87,14,11,7,8,2.25,42,19,+23,+1.33,+0.08,37.0,27.1,+10.0,+0.58,-0.27,Matches,2946f9a1 16 | Dani Carvajal,es ESP,DF,29,24,1551,65,45.4,17.2,17,81,9,7,25,4,2.46,37,13,+24,+1.39,+0.19,35.9,18.0,+17.9,+1.04,+0.57,Matches,4958bfb2 17 | Rodrygo,br BRA,FW,20,33,1523,46,44.5,16.9,17,68,2,16,23,1,2.21,38,13,+25,+1.48,+0.34,33.4,24.3,+9.1,+0.54,-0.34,Matches,8f5e92a6 18 | Eduardo Camavinga,fr FRA,MF,18,26,1236,48,36.1,13.7,13,71,6,13,24,8,2.42,33,13,+20,+1.46,+0.26,28.7,21.3,+7.4,+0.54,-0.29,Matches,7b9c2d84 19 | Eden Hazard,be BEL,FWMF,30,18,717,40,21.0,8.0,7,74,1,11,18,11,1.89,11,10,+1,+0.13,-1.47,13.5,8.7,+4.9,+0.61,-0.15,Matches,a39bb753 20 | Marcelo,br BRA,DF,33,12,525,44,15.4,5.8,5,82,2,7,17,12,2.25,10,0,+10,+1.71,+0.50,9.1,5.2,+3.9,+0.67,-0.07,Matches,603116a7 21 | Jesús Vallejo,es ESP,DF,24,5,341,68,10.0,3.8,4,83,3,1,8,26,2.00,11,2,+9,+2.38,+1.21,9.2,8.1,+1.0,+0.27,-0.51,Matches,c2111b45 22 | Gareth Bale,wls WAL,FW,32,5,280,56,8.2,3.1,4,66,0,1,17,8,2.20,5,3,+2,+0.64,-0.70,4.2,4.0,+0.2,+0.06,-0.72,Matches,a58bb1e1 23 | Mariano,do DOM,FW,27,9,342,38,10.0,3.8,3,77,1,6,19,15,2.11,8,4,+4,+1.05,-0.26,7.6,8.0,-0.4,-0.11,-0.93,Matches,5c4dc0ff 24 | Isco,es ESP,MFFW,29,14,331,24,9.7,3.7,3,62,0,11,13,14,2.21,11,2,+9,+2.45,+1.28,7.8,4.2,+3.6,+0.97,+0.26,Matches,a0b4bb3e 25 | Miguel Gutiérrez,es ESP,DF,20,3,260,87,7.6,2.9,3,87,1,0,,8,3.00,12,3,+9,+3.12,+1.98,6.6,3.5,+3.1,+1.09,+0.39,Matches,7e98cff1 26 | Dani Ceballos,es ESP,MF,24,11,276,25,8.1,3.1,2,80,1,9,13,6,2.64,8,2,+6,+1.96,+0.73,7.7,5.5,+2.2,+0.73,+0.01,Matches,c0617e2b 27 | Andriy Lunin,ua UKR,GK,22,2,180,90,5.3,2.0,2,90,2,0,,32,0.50,1,2,-1,-0.50,-1.89,3.2,5.4,-2.2,-1.12,-1.95,Matches,3061e1ec 28 | Luka Jović,rs SRB,FW,23,15,369,25,10.8,4.1,1,60,0,14,22,12,2.07,13,2,+11,+2.68,+1.56,10.9,5.8,+5.1,+1.25,+0.59,Matches,4d8cd038 29 | Blanco,es ESP,MF,21,1,31,31,0.9,0.3,0,,0,1,31,14,3.00,2,0,+2,+5.81,+4.56,0.7,0.7,0.0,+0.07,-0.66,Matches,506daeac 30 | Peter González,do DOM,MFDF,19,3,27,9,0.8,0.3,0,,0,3,9,1,2.00,1,0,+1,+3.33,+2.06,1.4,0.5,+0.9,+2.90,+2.19,Matches,1ccd3dae 31 | Mario Gila,es ESP,DF,20,2,25,13,0.7,0.3,0,,0,2,13,1,3.00,2,0,+2,+7.20,+5.95,0.7,0.1,+0.6,+2.05,+1.33,Matches,9c435456 32 | Sergio Santos,es ESP,DF,20,1,11,11,0.3,0.1,0,,0,1,11,0,3.00,1,0,+1,+8.18,+6.91,0.5,0.4,+0.1,+1.01,+0.28,Matches,cf59e05f 33 | Latasa,es ESP,FW,20,1,9,9,0.3,0.1,0,,0,1,9,2,1.00,0,0,0,0.00,-1.29,0.3,0.2,+0.1,+1.09,+0.37,Matches,2bea832e 34 | Toni Fuidias,es ESP,GK,20,0,,,,,0,,0,0,,18,,,,,,,,,,,,Matches,33d2c795 35 | Luis López,es ESP,GK,20,0,,,,,0,,0,0,,8,,,,,,,,,,,,Matches,ccb491d0 36 | Álvaro Odriozola,es ESP,DF,25,0,,,,,0,,0,0,,2,,,,,,,,,,,,Matches,1d1691ad 37 | Diego Piñeiro,es ESP,GK,17,0,,,,,0,,0,0,,9,,,,,,,,,,,,Matches,ef6a4afe 38 | Rafa,es ESP,DF,19,0,,,,,0,,0,0,,4,,,,,,,,,,,,Matches,3239a8ed 39 | Squad Total,,,27.7,38,3420,90,100,38.0,418,83,256,163,19,248,2.26,80,31,+49,+1.29,,74.4,46.8,+27.6,+0.73,,,-9999 40 | Opponent Total,,,27.6,38,3420,90,100,38.0,418,83,256,163,19,246,0.53,,,,,,46.8,74.4,-27.6,-0.73,,,-9999 41 | -------------------------------------------------------------------------------- /tables_tutorial/figures/a_very_basic_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/tables_tutorial/figures/a_very_basic_table.png -------------------------------------------------------------------------------- /tables_tutorial/figures/final_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/tables_tutorial/figures/final_table.png -------------------------------------------------------------------------------- /tables_tutorial/figures/final_table_bkg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/tables_tutorial/figures/final_table_bkg.png -------------------------------------------------------------------------------- /tables_tutorial/figures/first_useful_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/tables_tutorial/figures/first_useful_table.png -------------------------------------------------------------------------------- /tables_tutorial/figures/flag_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/tables_tutorial/figures/flag_example.png -------------------------------------------------------------------------------- /tables_tutorial/figures/pretty_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonofacorner/matplotlib-tutorials/db2d4090ed7bc04176f6e8677323f001f0429396/tables_tutorial/figures/pretty_example.png --------------------------------------------------------------------------------