Skip to content

Instantly share code, notes, and snippets.

@adamsilverstein
Last active December 11, 2024 17:56
Show Gist options
  • Save adamsilverstein/75f9755bd2c5fec411761d24c06c9452 to your computer and use it in GitHub Desktop.
Save adamsilverstein/75f9755bd2c5fec411761d24c06c9452 to your computer and use it in GitHub Desktop.
Modern Image Formats (new)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/adamsilverstein/75f9755bd2c5fec411761d24c06c9452/modern-image-formats-colab.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KcAZ2RHCg_Ze"
},
"source": [
"## Modern Images Colab\n",
"\n",
"Research the adoption and impact of modern image formats on the web, in WordPress in particular. Also track adoption and impact of the Modern Image Format plugin from the Performance team."
]
},
{
"cell_type": "markdown",
"source": [
"## Setup"
],
"metadata": {
"id": "4G2WkwMPzxbT"
}
},
{
"cell_type": "markdown",
"metadata": {
"id": "qTmLBxDxBAZL"
},
"source": [
"### Provide your credentials to the runtime"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "SeTJb51SKs_W",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "aaac2376-7de1-411b-f70f-f772dbe4d9f5"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Authenticated\n"
]
}
],
"source": [
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"print('Authenticated')\n",
"project_id = 'wpp-research'"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "goQQ96EDKs_7"
},
"source": [
"### Declare the Cloud project ID which will be used throughout this notebook\n",
"\n"
]
},
{
"cell_type": "code",
"source": [
"from google.cloud.bigquery import magics\n",
"# Update with your own Google Cloud Platform project name\n",
"magics.context.project = 'wpp-research'"
],
"metadata": {
"id": "YdTgQYtSoOoE"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Add a helper to get the latest dataset"
],
"metadata": {
"id": "yV85Ec6A9FED"
}
},
{
"cell_type": "code",
"source": [
"from datetime import datetime, timedelta\n",
"\n",
"def get_first_of_previous_month():\n",
" today = datetime.now()\n",
" first_day_previous_month = datetime(today.year, today.month - 1, 1) if today.month > 1 else datetime(today.year - 1, 12, 1)\n",
" return first_day_previous_month.strftime('%Y_%m_%d')\n",
"\n",
"dataset = get_first_of_previous_month() # eg. \"2023_06_01\" - datasets are updated monthly, indicate the latest"
],
"metadata": {
"id": "stNLljYnR355"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "UMKGkkZEPVRu"
},
"source": [
"### Optional: Enable data table display\n",
"\n",
"Colab includes the ``google.colab.data_table`` package that can be used to display large pandas dataframes as an interactive data table.\n",
"It can be enabled with:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"id": "LMNA-vBHPyHz"
},
"outputs": [],
"source": [
"%load_ext google.colab.data_table"
]
},
{
"cell_type": "code",
"source": [
"from google.colab import data_table\n",
"data_table.enable_dataframe_formatter()"
],
"metadata": {
"id": "JlBfb2k3JpRS"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# WebP"
],
"metadata": {
"id": "2FfbQTTPMspu"
}
},
{
"cell_type": "markdown",
"source": [
"### WebP by WordPress version"
],
"metadata": {
"id": "2W5DFa9iu4NX"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"SELECT\n",
" mobile.version,\n",
" ROUND(pct_webp_mobile, 3) AS pct_webp_mobile,\n",
" ROUND(pct_webp_desktop, 3) AS pct_webp_desktop,\n",
" mobile_pages + desktop_pages AS total_pages,\n",
" pages_with_webp_mobile + pages_with_webp_desktop AS total_pages_with_webp\n",
"FROM\n",
" (\n",
" SELECT\n",
" version,\n",
" pct_webp AS pct_webp_mobile,\n",
" pages AS mobile_pages,\n",
" pages_with_webp AS pages_with_webp_mobile\n",
" FROM\n",
" (\n",
" SELECT\n",
" version,\n",
" COUNTIF(has_webp) AS pages_with_webp,\n",
" COUNT(0) AS pages,\n",
" COUNTIF(has_webp) / COUNT(0) AS pct_webp\n",
" FROM\n",
" (\n",
" SELECT DISTINCT\n",
" url,\n",
" REGEXP_EXTRACT(info, r'(\\d\\.\\d+)') AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_mobile`\n",
" WHERE\n",
" app = 'WordPress'\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" url,\n",
" has_webp\n",
" FROM\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_webp\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_mobile`\n",
" GROUP BY\n",
" pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_mobile`\n",
" )\n",
" USING (pageid)\n",
" )\n",
" USING (url)\n",
" WHERE version IS NOT NULL\n",
" GROUP BY\n",
" version\n",
" ORDER BY\n",
" version ASC\n",
" )\n",
" WHERE pages > 1500\n",
" ) AS mobile\n",
"JOIN\n",
" (\n",
" SELECT\n",
" version,\n",
" pct_webp AS pct_webp_desktop,\n",
" pages AS desktop_pages,\n",
" pages_with_webp AS pages_with_webp_desktop\n",
" FROM\n",
" (\n",
" SELECT\n",
" version,\n",
" COUNTIF(has_webp) AS pages_with_webp,\n",
" COUNT(0) AS pages,\n",
" COUNTIF(has_webp) / COUNT(0) AS pct_webp\n",
" FROM\n",
" (\n",
" SELECT DISTINCT\n",
" url,\n",
" REGEXP_EXTRACT(info, r'(\\d\\.\\d+)') AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_desktop`\n",
" WHERE\n",
" app = 'WordPress'\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" url,\n",
" has_webp\n",
" FROM\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_webp\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_desktop`\n",
" GROUP BY\n",
" pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_desktop`\n",
" )\n",
" USING (pageid)\n",
" )\n",
" USING (url)\n",
" WHERE version IS NOT NULL\n",
" GROUP BY\n",
" version\n",
" ORDER BY\n",
" version ASC\n",
" )\n",
" WHERE pages > 1500\n",
" ) AS desktop\n",
" ON mobile.version = desktop.version\n",
" ORDER BY mobile.version ASC\n",
"\"\"\"\n",
"\n",
"web_in_wordpress = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "mZ5a7Nthsizg"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"web_in_wordpress.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 670
},
"id": "G9m_NEKntUcI",
"outputId": "84b5052f-ec97-49de-d9ca-909465dc7f3f"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" version pct_webp_mobile pct_webp_desktop total_pages \\\n",
"0 4.1 0.007 0.053 3944 \n",
"1 4.2 0.007 0.067 5086 \n",
"2 4.3 0.006 0.066 6649 \n",
"3 4.4 0.013 0.075 8618 \n",
"4 4.5 0.010 0.073 8207 \n",
"5 4.6 0.009 0.060 9228 \n",
"6 4.7 0.010 0.078 25190 \n",
"7 4.8 0.012 0.082 22769 \n",
"8 4.9 0.013 0.083 101664 \n",
"9 5.0 0.014 0.082 17970 \n",
"10 5.1 0.014 0.084 32130 \n",
"11 5.2 0.022 0.097 48657 \n",
"12 5.3 0.023 0.093 51962 \n",
"13 5.4 0.027 0.096 64712 \n",
"14 5.5 0.028 0.096 58340 \n",
"15 5.6 0.022 0.092 55816 \n",
"16 5.7 0.033 0.091 72101 \n",
"17 5.8 0.072 0.135 105848 \n",
"18 5.9 0.071 0.128 112696 \n",
"19 6.0 0.098 0.156 124077 \n",
"20 6.1 0.104 0.166 160986 \n",
"21 6.2 0.114 0.172 190152 \n",
"22 6.3 0.143 0.195 148865 \n",
"23 6.4 0.157 0.207 356878 \n",
"24 6.5 0.169 0.221 469739 \n",
"25 6.6 0.216 0.265 2016481 \n",
"26 6.7 0.241 0.284 2143724 \n",
"\n",
" total_pages_with_webp \n",
"0 103 \n",
"1 165 \n",
"2 196 \n",
"3 337 \n",
"4 302 \n",
"5 280 \n",
"6 976 \n",
"7 942 \n",
"8 4315 \n",
"9 760 \n",
"10 1399 \n",
"11 2595 \n",
"12 2728 \n",
"13 3597 \n",
"14 3324 \n",
"15 2640 \n",
"16 4191 \n",
"17 10501 \n",
"18 10737 \n",
"19 15200 \n",
"20 21025 \n",
"21 26465 \n",
"22 24614 \n",
"23 63689 \n",
"24 89839 \n",
"25 481130 \n",
"26 555392 "
],
"text/html": [
"\n",
" <div id=\"df-942494cc-7c12-46b6-a0db-642da7c28124\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>version</th>\n",
" <th>pct_webp_mobile</th>\n",
" <th>pct_webp_desktop</th>\n",
" <th>total_pages</th>\n",
" <th>total_pages_with_webp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4.1</td>\n",
" <td>0.007</td>\n",
" <td>0.053</td>\n",
" <td>3944</td>\n",
" <td>103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.2</td>\n",
" <td>0.007</td>\n",
" <td>0.067</td>\n",
" <td>5086</td>\n",
" <td>165</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.3</td>\n",
" <td>0.006</td>\n",
" <td>0.066</td>\n",
" <td>6649</td>\n",
" <td>196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.4</td>\n",
" <td>0.013</td>\n",
" <td>0.075</td>\n",
" <td>8618</td>\n",
" <td>337</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4.5</td>\n",
" <td>0.010</td>\n",
" <td>0.073</td>\n",
" <td>8207</td>\n",
" <td>302</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>4.6</td>\n",
" <td>0.009</td>\n",
" <td>0.060</td>\n",
" <td>9228</td>\n",
" <td>280</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>4.7</td>\n",
" <td>0.010</td>\n",
" <td>0.078</td>\n",
" <td>25190</td>\n",
" <td>976</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>4.8</td>\n",
" <td>0.012</td>\n",
" <td>0.082</td>\n",
" <td>22769</td>\n",
" <td>942</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>4.9</td>\n",
" <td>0.013</td>\n",
" <td>0.083</td>\n",
" <td>101664</td>\n",
" <td>4315</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>5.0</td>\n",
" <td>0.014</td>\n",
" <td>0.082</td>\n",
" <td>17970</td>\n",
" <td>760</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>5.1</td>\n",
" <td>0.014</td>\n",
" <td>0.084</td>\n",
" <td>32130</td>\n",
" <td>1399</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>5.2</td>\n",
" <td>0.022</td>\n",
" <td>0.097</td>\n",
" <td>48657</td>\n",
" <td>2595</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>5.3</td>\n",
" <td>0.023</td>\n",
" <td>0.093</td>\n",
" <td>51962</td>\n",
" <td>2728</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>5.4</td>\n",
" <td>0.027</td>\n",
" <td>0.096</td>\n",
" <td>64712</td>\n",
" <td>3597</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>5.5</td>\n",
" <td>0.028</td>\n",
" <td>0.096</td>\n",
" <td>58340</td>\n",
" <td>3324</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>5.6</td>\n",
" <td>0.022</td>\n",
" <td>0.092</td>\n",
" <td>55816</td>\n",
" <td>2640</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>5.7</td>\n",
" <td>0.033</td>\n",
" <td>0.091</td>\n",
" <td>72101</td>\n",
" <td>4191</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>5.8</td>\n",
" <td>0.072</td>\n",
" <td>0.135</td>\n",
" <td>105848</td>\n",
" <td>10501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>5.9</td>\n",
" <td>0.071</td>\n",
" <td>0.128</td>\n",
" <td>112696</td>\n",
" <td>10737</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>6.0</td>\n",
" <td>0.098</td>\n",
" <td>0.156</td>\n",
" <td>124077</td>\n",
" <td>15200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>6.1</td>\n",
" <td>0.104</td>\n",
" <td>0.166</td>\n",
" <td>160986</td>\n",
" <td>21025</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>6.2</td>\n",
" <td>0.114</td>\n",
" <td>0.172</td>\n",
" <td>190152</td>\n",
" <td>26465</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>6.3</td>\n",
" <td>0.143</td>\n",
" <td>0.195</td>\n",
" <td>148865</td>\n",
" <td>24614</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>6.4</td>\n",
" <td>0.157</td>\n",
" <td>0.207</td>\n",
" <td>356878</td>\n",
" <td>63689</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>6.5</td>\n",
" <td>0.169</td>\n",
" <td>0.221</td>\n",
" <td>469739</td>\n",
" <td>89839</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>6.6</td>\n",
" <td>0.216</td>\n",
" <td>0.265</td>\n",
" <td>2016481</td>\n",
" <td>481130</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>6.7</td>\n",
" <td>0.241</td>\n",
" <td>0.284</td>\n",
" <td>2143724</td>\n",
" <td>555392</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-942494cc-7c12-46b6-a0db-642da7c28124')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-942494cc-7c12-46b6-a0db-642da7c28124 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-942494cc-7c12-46b6-a0db-642da7c28124');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-819de7ea-8be5-4b12-b016-2f8e7df57bcb\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-819de7ea-8be5-4b12-b016-2f8e7df57bcb')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-819de7ea-8be5-4b12-b016-2f8e7df57bcb button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "web_in_wordpress",
"summary": "{\n \"name\": \"web_in_wordpress\",\n \"rows\": 27,\n \"fields\": [\n {\n \"column\": \"version\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27,\n \"samples\": [\n \"4.9\",\n \"5.4\",\n \"5.0\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_webp_mobile\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.06960869464636131,\n \"min\": 0.006,\n \"max\": 0.241,\n \"num_unique_values\": 22,\n \"samples\": [\n 0.007,\n 0.071,\n 0.023\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_webp_desktop\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0641514634003797,\n \"min\": 0.053,\n \"max\": 0.284,\n \"num_unique_values\": 25,\n \"samples\": [\n 0.083,\n 0.128,\n 0.053\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"total_pages\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 27,\n \"samples\": [\n 101664,\n 64712,\n 17970\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"total_pages_with_webp\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 27,\n \"samples\": [\n 4315,\n 3597,\n 760\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"4.1\",\n{\n 'v': 0.007,\n 'f': \"0.007\",\n },\n{\n 'v': 0.053,\n 'f': \"0.053\",\n },\n{\n 'v': 3944,\n 'f': \"3944\",\n },\n{\n 'v': 103,\n 'f': \"103\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"4.2\",\n{\n 'v': 0.007,\n 'f': \"0.007\",\n },\n{\n 'v': 0.067,\n 'f': \"0.067\",\n },\n{\n 'v': 5086,\n 'f': \"5086\",\n },\n{\n 'v': 165,\n 'f': \"165\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"4.3\",\n{\n 'v': 0.006,\n 'f': \"0.006\",\n },\n{\n 'v': 0.066,\n 'f': \"0.066\",\n },\n{\n 'v': 6649,\n 'f': \"6649\",\n },\n{\n 'v': 196,\n 'f': \"196\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"4.4\",\n{\n 'v': 0.013,\n 'f': \"0.013\",\n },\n{\n 'v': 0.075,\n 'f': \"0.075\",\n },\n{\n 'v': 8618,\n 'f': \"8618\",\n },\n{\n 'v': 337,\n 'f': \"337\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"4.5\",\n{\n 'v': 0.01,\n 'f': \"0.01\",\n },\n{\n 'v': 0.073,\n 'f': \"0.073\",\n },\n{\n 'v': 8207,\n 'f': \"8207\",\n },\n{\n 'v': 302,\n 'f': \"302\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"4.6\",\n{\n 'v': 0.009,\n 'f': \"0.009\",\n },\n{\n 'v': 0.06,\n 'f': \"0.06\",\n },\n{\n 'v': 9228,\n 'f': \"9228\",\n },\n{\n 'v': 280,\n 'f': \"280\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"4.7\",\n{\n 'v': 0.01,\n 'f': \"0.01\",\n },\n{\n 'v': 0.078,\n 'f': \"0.078\",\n },\n{\n 'v': 25190,\n 'f': \"25190\",\n },\n{\n 'v': 976,\n 'f': \"976\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"4.8\",\n{\n 'v': 0.012,\n 'f': \"0.012\",\n },\n{\n 'v': 0.082,\n 'f': \"0.082\",\n },\n{\n 'v': 22769,\n 'f': \"22769\",\n },\n{\n 'v': 942,\n 'f': \"942\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"4.9\",\n{\n 'v': 0.013,\n 'f': \"0.013\",\n },\n{\n 'v': 0.083,\n 'f': \"0.083\",\n },\n{\n 'v': 101664,\n 'f': \"101664\",\n },\n{\n 'v': 4315,\n 'f': \"4315\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"5.0\",\n{\n 'v': 0.014,\n 'f': \"0.014\",\n },\n{\n 'v': 0.082,\n 'f': \"0.082\",\n },\n{\n 'v': 17970,\n 'f': \"17970\",\n },\n{\n 'v': 760,\n 'f': \"760\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"5.1\",\n{\n 'v': 0.014,\n 'f': \"0.014\",\n },\n{\n 'v': 0.084,\n 'f': \"0.084\",\n },\n{\n 'v': 32130,\n 'f': \"32130\",\n },\n{\n 'v': 1399,\n 'f': \"1399\",\n }],\n [{\n 'v': 11,\n 'f': \"11\",\n },\n\"5.2\",\n{\n 'v': 0.022,\n 'f': \"0.022\",\n },\n{\n 'v': 0.097,\n 'f': \"0.097\",\n },\n{\n 'v': 48657,\n 'f': \"48657\",\n },\n{\n 'v': 2595,\n 'f': \"2595\",\n }],\n [{\n 'v': 12,\n 'f': \"12\",\n },\n\"5.3\",\n{\n 'v': 0.023,\n 'f': \"0.023\",\n },\n{\n 'v': 0.093,\n 'f': \"0.093\",\n },\n{\n 'v': 51962,\n 'f': \"51962\",\n },\n{\n 'v': 2728,\n 'f': \"2728\",\n }],\n [{\n 'v': 13,\n 'f': \"13\",\n },\n\"5.4\",\n{\n 'v': 0.027,\n 'f': \"0.027\",\n },\n{\n 'v': 0.096,\n 'f': \"0.096\",\n },\n{\n 'v': 64712,\n 'f': \"64712\",\n },\n{\n 'v': 3597,\n 'f': \"3597\",\n }],\n [{\n 'v': 14,\n 'f': \"14\",\n },\n\"5.5\",\n{\n 'v': 0.028,\n 'f': \"0.028\",\n },\n{\n 'v': 0.096,\n 'f': \"0.096\",\n },\n{\n 'v': 58340,\n 'f': \"58340\",\n },\n{\n 'v': 3324,\n 'f': \"3324\",\n }],\n [{\n 'v': 15,\n 'f': \"15\",\n },\n\"5.6\",\n{\n 'v': 0.022,\n 'f': \"0.022\",\n },\n{\n 'v': 0.092,\n 'f': \"0.092\",\n },\n{\n 'v': 55816,\n 'f': \"55816\",\n },\n{\n 'v': 2640,\n 'f': \"2640\",\n }],\n [{\n 'v': 16,\n 'f': \"16\",\n },\n\"5.7\",\n{\n 'v': 0.033,\n 'f': \"0.033\",\n },\n{\n 'v': 0.091,\n 'f': \"0.091\",\n },\n{\n 'v': 72101,\n 'f': \"72101\",\n },\n{\n 'v': 4191,\n 'f': \"4191\",\n }],\n [{\n 'v': 17,\n 'f': \"17\",\n },\n\"5.8\",\n{\n 'v': 0.072,\n 'f': \"0.072\",\n },\n{\n 'v': 0.135,\n 'f': \"0.135\",\n },\n{\n 'v': 105848,\n 'f': \"105848\",\n },\n{\n 'v': 10501,\n 'f': \"10501\",\n }],\n [{\n 'v': 18,\n 'f': \"18\",\n },\n\"5.9\",\n{\n 'v': 0.071,\n 'f': \"0.071\",\n },\n{\n 'v': 0.128,\n 'f': \"0.128\",\n },\n{\n 'v': 112696,\n 'f': \"112696\",\n },\n{\n 'v': 10737,\n 'f': \"10737\",\n }],\n [{\n 'v': 19,\n 'f': \"19\",\n },\n\"6.0\",\n{\n 'v': 0.098,\n 'f': \"0.098\",\n },\n{\n 'v': 0.156,\n 'f': \"0.156\",\n },\n{\n 'v': 124077,\n 'f': \"124077\",\n },\n{\n 'v': 15200,\n 'f': \"15200\",\n }],\n [{\n 'v': 20,\n 'f': \"20\",\n },\n\"6.1\",\n{\n 'v': 0.104,\n 'f': \"0.104\",\n },\n{\n 'v': 0.166,\n 'f': \"0.166\",\n },\n{\n 'v': 160986,\n 'f': \"160986\",\n },\n{\n 'v': 21025,\n 'f': \"21025\",\n }],\n [{\n 'v': 21,\n 'f': \"21\",\n },\n\"6.2\",\n{\n 'v': 0.114,\n 'f': \"0.114\",\n },\n{\n 'v': 0.172,\n 'f': \"0.172\",\n },\n{\n 'v': 190152,\n 'f': \"190152\",\n },\n{\n 'v': 26465,\n 'f': \"26465\",\n }],\n [{\n 'v': 22,\n 'f': \"22\",\n },\n\"6.3\",\n{\n 'v': 0.143,\n 'f': \"0.143\",\n },\n{\n 'v': 0.195,\n 'f': \"0.195\",\n },\n{\n 'v': 148865,\n 'f': \"148865\",\n },\n{\n 'v': 24614,\n 'f': \"24614\",\n }],\n [{\n 'v': 23,\n 'f': \"23\",\n },\n\"6.4\",\n{\n 'v': 0.157,\n 'f': \"0.157\",\n },\n{\n 'v': 0.207,\n 'f': \"0.207\",\n },\n{\n 'v': 356878,\n 'f': \"356878\",\n },\n{\n 'v': 63689,\n 'f': \"63689\",\n }],\n [{\n 'v': 24,\n 'f': \"24\",\n },\n\"6.5\",\n{\n 'v': 0.169,\n 'f': \"0.169\",\n },\n{\n 'v': 0.221,\n 'f': \"0.221\",\n },\n{\n 'v': 469739,\n 'f': \"469739\",\n },\n{\n 'v': 89839,\n 'f': \"89839\",\n }],\n [{\n 'v': 25,\n 'f': \"25\",\n },\n\"6.6\",\n{\n 'v': 0.216,\n 'f': \"0.216\",\n },\n{\n 'v': 0.265,\n 'f': \"0.265\",\n },\n{\n 'v': 2016481,\n 'f': \"2016481\",\n },\n{\n 'v': 481130,\n 'f': \"481130\",\n }],\n [{\n 'v': 26,\n 'f': \"26\",\n },\n\"6.7\",\n{\n 'v': 0.241,\n 'f': \"0.241\",\n },\n{\n 'v': 0.284,\n 'f': \"0.284\",\n },\n{\n 'v': 2143724,\n 'f': \"2143724\",\n },\n{\n 'v': 555392,\n 'f': \"555392\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"version\"], [\"number\", \"pct_webp_mobile\"], [\"number\", \"pct_webp_desktop\"], [\"number\", \"total_pages\"], [\"number\", \"total_pages_with_webp\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-d8bb5645-0469-4cbc-8b2d-0eb728b5b701\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-d8bb5645-0469-4cbc-8b2d-0eb728b5b701')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-d8bb5645-0469-4cbc-8b2d-0eb728b5b701 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 8
}
]
},
{
"cell_type": "code",
"source": [
"df = web_in_wordpress.copy()\n",
"# Plot the data\n",
"plt.figure(figsize=(15, 6))\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))\n",
"\n",
"# show percentage formatted as percentage\n",
"plt.plot(df['version'], df['pct_webp_mobile'], marker='o', label='Mobile')\n",
"plt.plot(df['version'], df['pct_webp_desktop'], marker='o', label='Desktop')\n",
"\n",
"\n",
"plt.grid(True)\n",
"plt.legend() # Add legend to distinguish multiple lines\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 522
},
"id": "bzzDnVuSthDk",
"outputId": "92441065-fe12-4455-c25a-b1b421b1805d"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1500x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABMYAAAH5CAYAAABqGTITAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACwlklEQVR4nOzdd3hUZeL28e/MpJMCAUISSgggYEB6FYKIUhRBRGUVGxZcEdvqIq6+iujq2nX9qaxiRcDewBIUEQGlN4UgUmIoCTWkt8nMef84IRASICGTnElyf65rrsw5c2bmngm6cu9TbIZhGIiIiIiIiIiIiNQzdqsDiIiIiIiIiIiIWEHFmIiIiIiIiIiI1EsqxkREREREREREpF5SMSYiIiIiIiIiIvWSijEREREREREREamXVIyJiIiIiIiIiEi9pGJMRERERERERETqJR+rA3iC2+0mJSWFkJAQbDab1XFERERERERERMRChmGQlZVFdHQ0dvvJx4XViWIsJSWFli1bWh1DRERERERERES8yO7du2nRosVJH68TxVhISAhgftjQ0FCL03iG0+nk+++/Z9iwYfj6+lodp1zKWHXeng+U0RO8PR94f0ZvzwfK6Aneng+U0RO8PR8ooyd4ez5QRk/w9nygjJ7g7fnA+zN6ez6oHRkrKzMzk5YtW5Z0RidTJ4qxo9MnQ0ND61QxFhQURGhoqNf+oVTGqvP2fKCMnuDt+cD7M3p7PlBGT/D2fKCMnuDt+UAZPcHb84EyeoK35wNl9ARvzwfen9Hb80HtyHimTrfklhbfFxERERERERGReknFmIiIiIiIiIiI1EsqxkREREREREREpF6qE2uMVZTL5cLpdFodo0KcTic+Pj7k5+fjcrmsjlMuT2f09fXF4XB4IJmIiIiIiIiIyOnVi2LMMAz27dtHenq61VEqzDAMIiMj2b1792kXirNKdWRs2LAhkZGRXvuZRURERERERKTuqBfF2NFSLCIigqCgoFpRurjdbrKzswkODsZu984Zr57MaBgGubm5HDhwAICoqChPRBQREREREREROak6X4y5XK6SUqxx48ZWx6kwt9tNYWEhAQEBXl2MeTJjYGAgAAcOHCAiIkLTKkVERERERESkWnln4+JBR9cUCwoKsjiJVMTR31NtWQtORERERERERGqvOl+MHVUbpk+Kfk8iIiIiIiIi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CzsTKsZERERERERERGojZz4sehyWv2IeN24HY2dC8x7W5qpFVIyJiIiIiIiIiNQ2+xPhs1vgwGbzuNdNMOzf4NfA2ly1jN3qAGKtd999l4YNG1odQ0REREREREQqwu2GFTPgjcFmKRbUBK7+EC55UaXYGVAxVhluFyQthd8/NX+6XdX6drfffjsOhwObzYavry/NmjVj6NChvP3227jd7mp976MWL16MzWYjPT29Rt5PRERERERERE4iax/MuRwSHgBXAZw1DG5fDh0usjpZraWplBWVOA8SpkJmyrFzodEw4mmIG11tbzt8+HDeffddXC4X+/fvJyEhgbvvvptPP/2UefPm4eOjX6GIiIiIiIhInbdlPsy7C/LSwCfAnDbZ+xaw2axOVqtpxFhFJM6Dj68vXYoBZKaa5xPnVdtb+/v7ExkZSfPmzenRowcPPvggX331Fd999x3vvvsuAOnp6dxyyy00bdqU0NBQhgwZwsaNG0teY+PGjZx//vmEhIQQGhpKz549WbNmTbnvd/DgQXr16sVll13G1q1bOf/88wFo1KgRNpuNCRMmAFBQUMDdd9/NWWedRVBQEAMHDmT16tUlr3N0pNk333xDly5dCAgIoF+/fmzatKl6vigRERERERGRuqggG766Az661izFIrvA35dAn4kqxTygfhZjhgGFORW75WfCd/cDRnkvZP5ImGpeV5HXM8p7ncoZMmQIXbt25fPPPwfgyiuv5MCBA3z33XesXbuWHj16cMEFF5CWlgbANddcQ4sWLVi9ejVr167lgQcewNfXt8zr7t69m/j4eDp37synn35Ku3bt+OyzzwDYunUrqamp/Pe//wXg/vvv5/PPP+e1115jzZo1tGvXjuHDh5e851FTpkzh+eefZ/Xq1TRt2pRRo0bhdDqr/B2IiIiIiIiI1Hl71sLr8bD+fcAGA+6GW36Eph2sTlZn1M95eM5ceDLaQy9mmCPJnmpZscsfTPHIYngdO3bkt99+Y9myZaxatYoDBw7g7+8PwHPPPceXX37Jp59+yq233squXbuYMmUKHTt2BOCss84q83pbt25l6NChXHbZZbz00kvYilvn8PBwACIiIkoW6c/JyWHGjBm8/fbbDB06lNDQUGbOnMkPP/zAW2+9xZQpU0ped9q0aQwdOhSA9957jxYtWvDFF18wbty4Kn8HIiIiIiIi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A0OHDsXX19fqOOVSxqrz9nygjJ7g7fnA+zN6ez5QRk/w9nygjJ7g7flAGT3B2/OBMnqCt+cDZfQEb88HNZDRMHB8cAX2pJ9xt7kA11Ufgs3mPfk8oDZkrKzMzEyaNGly2mLsjKZS3nHHHXz99dcsWbLklKUYQN++fQFOWoy98847NGzYkEsvvZSxY8cyZswYfH19ufLKK3nkkUfKfU1/f3/8/f3LnPf19a0zv8CjasNnUsaq8/Z8oIye4O35wPszens+UEZP8PZ8oIye4O35QBk9wdvzgTJ6grfnA2X0BG/PB9WYcdNnkPQzOPyxX/Icdj+/M3qZev0dWqCin6NSxZhhGNx555188cUXLF68mNjY2NM+Z8OGDQBERUWVeezgwYM89thjJVMxXS5XqXmtLperMvFERERERERERDwnPxMSHjTvx98H4W2szSMeV6libPLkycydO5evvvqKkJAQ9u3bB0BYWBiBgYHs2LGDuXPncvHFF9O4cWN+++03/vGPfzBo0KCSRfaPd88993DffffRvHlzAAYMGMD777/PsGHDeOONNxgwYIAHPqKIiIiIiIiIyBn46UnI3gfhbWHA3VankWpgr8zFM2bMICMjg8GDBxMVFVVy++ijjwDw8/Nj4cKFDBs2jI4dO3Lfffdx+eWXM3/+/DKvtWDBArZv387tt99ecu6OO+6gTZs29O3bl8LCQqZNm1bFjyciIiIiIiIicgZSN8Kq1837I58D3wBr80i1qPRUylNp2bIlP//8c4Vea/jw4QwfPrzUuaCgID7++OPKRBIRERERERER8Sy3G76+Fww3dBoLbYdYnUiqSaVGjImIiIiIiIiI1Hnr3oO9a8AvBIY/aXUaqUYqxkREREREREREjso5BAsfNe8PeQhCy24mWJe43AYrk9JYe8jGyqQ0XO5Tzxasayo1lVJEREREREREpE774RHIT4fIc6D3RKvTVKuETalMn59IakY+4GDWtjVEhQUwbVQcIzrX7ULwKI0YExEREREREREBSP4VNswBbDDyRXDU3fFECZtSmTR7XXEpdsy+jHwmzV5HwqZUi5LVLBVjIiIiIiIiIiIup7ngPkDPG6Blb2vzVCOX22D6/ETKmzR59Nz0+Yn1YlqlijERERERERERkRWvwcEtENQYLphmdZpqtSoprcxIseMZQGpGPquS0moulEVUjImIiIiIiIhI/ZaxBxY/Zd4f+jgEhVubp5odyDp5KXYm19VmKsZEREREREREpH77bio4c6FVf+h6tdVpql1ESIBHr6vNVIyJiIiIiIiISP315wL442uwOWDkC2Cv+1VJh2Yh+DpsJ33cBkSFBdAntm6PnAMVYyIiIiIiIiJSXxXmwrdTzPv9b4dmcdbmqQEHsvIZ/+YKnK7yF9Y/WpdNGxWHw37y8qyuUDEmIiIiIiIiIvXTshcgPRlCm8N5D1idptrtTsvlyv8t5499WTQN8ef/XXI2UWGlp0tGhgUw49oejOgcZVHKmuVjdQARERERERERkRp3aBsse8m8P+Ip8A+2NE51+3N/Fte+uZIDWQW0DA9k9s19iWncgBvPjWX59gN8v3Qlw+L70r9dRL0YKXaUijERERERERERqV8MA765D9xOOGsYnD3K6kTVav2uI9z47mrSc510aBbCrJv70CzUHCnmsNvoGxvO4S0GfWPD61UpBirGRERERERERKS+2fQZJP0MPgFw0TNgq7tl0LJth7j1/TXkFrro3qoh70zoTcMgP6tjeQ0VYyIiIiIiIiJSf+RnwIIHzfvx/4TwWGvzVKOETanc9cEGCl1u4s9qwv+u7UkDf1VBx9O3ISIiIiIiIiL1x6InIHs/NG4HA+6yOk21+Xj1bh74/DfcBlzUOZKXruqGv4/D6lheR8WYiIiIiIiIiNQPKRtg9Uzz/sjnwcff0jjVZeaSnTzx7RYA/tarJU+OPaferR1WUSrGRERERERERKTuc7vgm3vBcEPnK6DNYKsTeZxhGDz3/VZe/WkHAH8f1IYHLuqIrQ6voVZVKsZEREREREREpO5b9x7sXQv+oTD8CavTeJzbbfDIvE3MXrELgPtHdOD2we0sTuX9VIyJiIiIiIiISN2WfRAWPmreH/L/ICTS0jieVljk5r5PNjJ/Ywo2G/x7TGeu6RtjdaxaQcWYiIiIiIiIiNRtPzxs7kYZ2QV63Wx1Go/KK3Qxac5aFm89iK/DxgvjujGqa7TVsWoNFWMiIiIiIiIiUnf9tQw2fgDY4JIXwVF3qpCMPCe3vLea1X8dIcDXzv+u7cngDhFWx6pV6s6fBhERERERERGR4xUVwjf3mfd7ToAWvSyN40kHswq4/u1VbEnNJCTAh3cm9KZX63CrY9U6KsZEREREREREpG5a8Roc/AOCmsCF06xO4zG703K57q2V/HU4lybB/sy6qQ9x0aFWx6qVVIyJiIiIiIiISN2Tvgt+ftq8P+xxCGxkbR4P2bY/i+veWsW+zHxaNApk9s19ad2kgdWxai0VYyIiIiIiIiJS9yT8C5y5EDMAul5tdRqP2Lg7nQnvrOJIrpOzIoJ5/+a+RIYFWB2rVlMxJiIiIiIiIiJ1y9YE+ONrsPvAyOfBZrM6UZX9uuMQE99bQ06hi64tG/LuhN40auBndaxaT8WYiIiIiIiIiNQdhbnw3RTzfv/JEHG2tXk8YMHmfdz5wXoKi9wMaNeY16/rRbC/Kh1P0LcoIiIiIiIiInXH0ufM9cVCW8B5U61OU2Wfrt3D/Z9uxG3A8E7NePnq7vj7OKyOVWeoGBMRERERERGRuuHgn/DLy+b9i54Gv9q9KP1by5J4/OtEAK7s2YL/jD0HH4fd4lR1i4oxEREREREREan9DAO+uRfcTmg/AjqOtDrRGTMMgxd/+JOXF20H4JaBsTw08mxsdWCtNG+jYkxEREREREREaie3C1vyMpqnLcf+83r4ayn4BJqjxWppieR2Gzw6fzOzlicDMGV4B24f3FalWDVRMSYiIiIiIiIitU/iPEiYik9mCr0AkovPdxwJjVpbl6sKnC43//xkI19tSMFmg8cu7cx1/WKsjlWnaWKqiIiIiIiIiNQuifPg4+shM6XsY5s+Mx+vZfKdLv7+/lq+2pCCj93GS3/rplKsBqgYExEREREREZHaw+2ChKmAcfJrEh4wr6slMvOdXP/2Khb9cQB/Hzszr+/Fpd2aWx2rXlAxJiIiIiIiIiK1R/Kv5Y8UK2FA5l7zulrgUHYBV7+xglVJaYQE+DD7lr6c3zHC6lj1htYYExEREREREZHaI3u/Z6+z0N70PK57cyU7D+XQJNiP927qQ6foMKtj1SsqxkRERERERESkdijMhaSlFbs2uFn1Zqmi7Qeyue6tlaRm5NO8YSCzb+lLbJMGVseqd1SMiYiIiIiIiIh3KyqAte/B0ucqMBLMBqHREHNujUQ7E7/vyeCGd1aRllNIu4hg3r+5D1FhgVbHqpdUjImIiIiIiIiId3IVwcYP4OenIWO3ea5hK2g/AlbNLL7o+EX4beaPEU+B3VGTScvlchusTEpj7SEbjZPS6N8uglVJaUyctYbsgiK6tAjj3Rv7EN7Az+qo9ZaKMRERERERERHxLm43JH4BPz0Jh7eb54Ij4bwp0P168PGD1vHm7pTHL8QfGm2WYnGjrcl9nIRNqUyfn0hqRj7gYNa2NTQK8iUrv4git0H/No2ZeUMvgv1VzVhJ376IiIiIiIiIeAfDgD8TYNETsP9381xgOMTfC71vAd/jphvGjYaOIynauYQNSxfQLX44Pm0GecVIsYRNqUyava7UWDaAI7lOALq0COOdG3sT4Gt91vpOxZiIiIiIiIiIWG/nz7Docdiz2jz2D4X+d0C/SRAQWv5z7A6MmIHs3ZxJ15iBXlGKudwG0+cnlinFjncwqwBfh73GMsnJqRgTEREREREREevsXg2LHoOkJeaxTyD0/TsMuBuCwq3NdgZWJaUVT588udSMfFYlpdG/beMaSiUno2JMRERERERERGrevt/NKZN/fmce232h140Qfx+ERFqbrQoOZJ26FKvsdVK9VIyJiIiIiIiISM05tM1cVH/z5+axzQ7dxsN5U80dJ2u5iJAAj14n1UvFmIiIiIiIiIhUv/RdsPhp2DgXDLd5rvPlMPhBaNLO2mwe1Cc2nKiwgJNOp7QBkWEB9ImtfdNE6yIVYyIiIiIiIiJSfbL2w9LnYM074DZ3ZaT9RTDkIYg8x9ps1cBhtzFtVBy3zV5X5jFb8c9po+Jw2G1lHpeap2JMRERERERERDwvNw1+eQlWvgFFeea52PNgyMPQsrel0aqbv0/5u2NGhgUwbVQcIzpH1XAiORkVYyIiIiIiIiLiOfmZsGIGLH8FCjLNcy16m4VYm/OszVYDnC43j3+TCMAt8bEMPqsx3y9dybD4vvRvF6GRYl5GxZiIiIiIiIiIVJ0zD1bNhGUvQl6aea7ZOTDk/0H74WCrH4XQ+8uT2Xkwh8YN/LjrgrMIdMDhLQZ9Y8NVinkhFWMiIiIiIiIicuaKCmH9LPj5WcjeZ55rfBac/yDEjQG73dJ4NelITiEvLfwTgPuGdSA0wBen02lxKjkVFWMiIiIiIiIiUnluF/z2ESz+j7njJEBYKxg8FbpcBY76Vzm8uPBPMvOL6BgZwt96t7Q6jlRA/ftTKiIiIiIiIiKn53ZhS15G87Tl2JJDoc0gsDvA7YYtX8FPT8Ihc3QUwc1g0BTocT34+Fub2yJ/7s9izkqzIHxEu07WGirGRERERERERKS0xHmQMBWfzBR6ASTPgNBo6Doetn0P+34zrwtsBAP/Ab0ngl+QlYktZRgGj3+diMttMLxTM85t28TqSFJBKsZERERERERE5JjEefDx9YBR+nxmCix9zrzvFwL9J0P/2yEgrMYjepufth5g6bZD+DnsPHjx2VbHkUpQMSYiIiIiIiIiJrcLEqZSphQ7nl8w3LkOQiJqLJY3Kyxy8++vtwBw48DWxDRuYHEiqYz6szWEiIiIiIiIiJxa8q/myLBTKcyGQ1trJk8tMGv5X+w8lEOTYD/uOL+d1XGkklSMiYiIiIiIiAjkZ8L69yt2bfb+6s1SS6TlFPLfH7cB8M9hHQgJ8LU4kVSWplKKiIiIiIiI1Gfpu2Dl67D2PSjMqthzgptVb6Za4oUftpKVX0RcVChX9mppdRw5AyrGREREREREROqjPWth+SuQ+BUYLvNc47Mg5yDkZ1D+OmM2c3fKmHNrMqlX2rovi7krdwHwyKg4HHabxYnkTKgYExEREREREakv3C744xtY/irsXnHsfJvB0P8OaHsB/PF18a6UNkqXY8XFz4inwO6oucxeyDAMHv86EbcBF3WOpF+bxlZHkjOkYkxERERERESkrivIhg1zYMVrcOQv85zdF865EvrfDpHnHLs2bjSMm2XuTnn8Qvyh0WYpFje6RqN7ox+3HGDZ9kP4Oez866KzrY4jVaBiTERERERERKSuytgLq16HNe9CQYZ5LrAR9LoZ+kyEkMjynxc3GjqOpGjnEjYsXUC3+OH4tBlU70eKARQWuXni2y0A3BwfS6vGQRYnkqqo1K6U//nPf+jduzchISFEREQwZswYtm4tvUVrfn4+kydPpnHjxgQHB3P55Zezf/+x3SrS0tIYNWoUwcHBdO/enfXr15d6/uTJk3n++eer8JFERERERERE6rmU9fDZLfDfLvDLf81SrHE7GPkC/CMRLnj45KXYUXYHRsxA9ob3x4gZqFKs2Kzlf5F0KIcmwf5MPr+d1XGkiipVjP38889MnjyZFStW8MMPP+B0Ohk2bBg5OTkl1/zjH/9g/vz5fPLJJ/z888+kpKQwduzYksefeOIJsrKyWLduHYMHD2bixIklj61YsYKVK1dyzz33VP2TiYiIiIiIiNQnbjf88S28MxLeGAy/fwLuImgdD1d/CJNXQ++bwU8jnM7U4ewC/vvjNgDuH96BYH9NxKvtKvUbTEhIKHX87rvvEhERwdq1axk0aBAZGRm89dZbzJ07lyFDhgDwzjvvcPbZZ7NixQr69evHli1buOqqq2jfvj233norb7zxBgBOp5PbbruNN998E4dDLbSIiIiIiIhIhRTmwIa5sGIGpO0wz9l9oPPl0O92iO5maby65IUf/iQrv4hO0aFc0bOF1XHEA6pUbWZkmPOTw8PDAVi7di1Op5MLL7yw5JqOHTvSqlUrli9fTr9+/ejatSuLFi3illtuYcGCBXTp0gWAZ555hsGDB9OrV6/Tvm9BQQEFBQUlx5mZmYBZrjmdzqp8JK9x9HN48+dRxqrz9nygjJ7g7fnA+zN6ez5QRk/w9nygjJ7g7flAGT3B2/OBMnqCt+eDepAxKxX7mrexr38XW94RAIyAMNzdb8DdayKERh19E2vy1ZCayvjHviw+WLULgIcu6oDLVYTLdfrn6Tu0RkU/i80wDOP0l5XldrsZPXo06enpLFu2DIC5c+dy4403liqtAPr06cP555/P008/TUZGBpMmTeKXX36hdevWzJgxA19fX0aOHMny5ct56KGH+P777+nVqxczZ84kLCyszHs/+uijTJ8+vcz5uXPnEhSkIaEiIiIiIiJSd4XmJtP2YAItjqzAbpjNTLZfBDsjhrMrPB6XI8DihHWPYcCriXa2Zdrp1tjNje3dVkeS08jNzWX8+PFkZGQQGhp60uvOeMTY5MmT2bRpU0kpVlFhYWHMnTu31LkhQ4bw7LPPMmfOHHbu3MnWrVuZOHEijz32WLkL8f/rX//i3nvvLTnOzMykZcuWDBs27JQftjZxOp388MMPDB06FF9fX6vjlEsZq87b84EyeoK35wPvz+jt+UAZPcHb84EyeoK35wNl9ARvzwfK6Aneng/qWEbDjW37QuyrZmD/a2nJaXfLfrj73o7/WcM52+7gbKvyWagmMi7ccoBtKzbg52PnxRviadEo0KvyVVVtyFhZR2cXns4ZFWN33HEHX3/9NUuWLKFFi2NzaiMjIyksLCQ9PZ2GDRuWnN+/fz+RkeXvdvHOO+/QsGFDLr30UsaOHcuYMWPw9fXlyiuv5JFHHin3Of7+/vj7+5c57+vrW2d+gUfVhs+kjFXn7flAGT3B2/OB92f09nygjJ7g7flAGT3B2/OBMnqCt+cDZfQEb88HtTxjYS789iEsfw0Om4u+Y3NApzHQbzL2Fj0rt6uep/N5kerKWFDk4qkFfwIwMT6W2IgzG5BTn79DK1T0c1SqGDMMgzvvvJMvvviCxYsXExsbW+rxnj174uvry48//sjll18OwNatW9m1axf9+/cv83oHDx7kscceKxl15nK5Ss1rdVVksq6IiIiIiIhIbeR2YUteRvO05diSQ6HNILAXb0aXtR9Wv2ne8tLMc/6h0PMG6PN3aNjSutz1zHu//kXy4VyahvgzaXA7q+OIh1WqGJs8eTJz587lq6++IiQkhH379gHm9MjAwEDCwsK4+eabuffeewkPDyc0NJQ777yT/v37069fvzKvd88993DffffRvHlzAAYMGMD777/PsGHDeOONNxgwYIAHPqKIiIiIiIiIl0mcBwlT8clMoRdA8gwIjYb+d8D+RPj9Y3AVmtc2bAV9J0GP68A/xMrU9c6h7AL+78ftANw/vAPB/lXaw1C8UKV+ozNmzABg8ODBpc6/8847TJgwAYAXX3wRu93O5ZdfTkFBAcOHD+e1114r81oLFixg+/btvP/++yXn7rjjDtasWUPfvn3p06cP06ZNq+THEREREREREfFyifPg4+uBE/bCy0yBBQ8eO27RB/pPho6XgEOFjBWe//5PsgqKOKd5GJf3aHH6J0itU+mplKcTEBDAq6++yquvvnrK64YPH87w4cNLnQsKCuLjjz+uTCQRERERERGR2sPtgoSplCnFjucTCNd9ATFllySSmpOYkslHq3cB8MioOOx2m8WJpDrUxBp9IiIiIiIiIgKQ/Ks5MuxUivLAXVQzeaRchmHw2NebcRswsksUvVuHWx1JqomKMREREREREZGakr3fs9dJtViweT8rdqbh52PnXxd1tDqOVCMVYyIiIiIiIiI1JS+9YtcFN6vWGHJyBUUunvx2CwC3xrehRaMgixNJddLqfSIiIiIiIiI1YfMXpRfXL5fN3J0y5twaiSRlvfPLX+xKyyUixJ9Jg9taHUeqmUaMiYiIiIiIiFQnw4Clz8MnE8BVAFHdAFvx7XjFxyOeArujRiOK6WBWAa8s2g7A1BEdaeCv8UR1nYoxERERERERkepSVAjz7oAfHzOP+94GExfBuFkQGlX62tBo83zc6JrPKQA8//1WsguK6NoijMu6N7c6jtQAVZ8iIiIiIiIi1SHvCHx8PSQtAZsdRjwNfW81H4sbDR1HUrRzCRuWLqBb/HB82gzS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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"df = web_in_wordpress.copy()\n",
"# Plot the data\n",
"plt.figure(figsize=(15, 6))\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))\n",
"\n",
"plt.plot(df['version'], df['total_pages_with_webp'], marker='o', label='Total pages using WebP')\n",
"\n",
"\n",
"plt.grid(True)\n",
"plt.legend() # Add legend to distinguish multiple lines\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 522
},
"id": "-YDRorzQvXSy",
"outputId": "721e3b0c-ffa5-45e5-cbcb-9c958e4d394f"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1500x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABPsAAAH5CAYAAAD3FDubAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACF80lEQVR4nOzdeXhTZeL28TtJl7SFlhboApSCsllB9qUuCA5QFXB3XAfcFUEFfqMOMw6LOiM6CqggOorihqK+zowLIoiAIqsILiCIAq0KLUuhBbqlyXn/aBNaugbS5iT9fq6Li+bknPROWgi9eRaLYRiGAAAAAAAAAAQ8q78DAAAAAAAAAPANyj4AAAAAAAAgSFD2AQAAAAAAAEGCsg8AAAAAAAAIEpR9AAAAAAAAQJCg7AMAAAAAAACCBGUfAAAAAAAAECRC/B0AVXO5XNqzZ4+aNm0qi8Xi7zgAAAAAAADwE8MwdOTIEbVq1UpWa81j9yj7TGrPnj1KTk72dwwAAAAAAACYxK+//qo2bdrUeA5ln0k1bdpUUukXMTo62s9pfMPhcGjJkiUaNmyYQkND/R2nErPnk8joC2bPJ5HRF8yeTyKjL5g9n0RGXzB7PomMvmD2fJL5M5o9n0RGXzB7PomMvmD2fBIZ/SEvL0/JycmevqgmlH0m5Z66Gx0dHVRlX2RkpKKjo035B83s+SQy+oLZ80lk9AWz55PI6AtmzyeR0RfMnk8ioy+YPZ9k/oxmzyeR0RfMnk8ioy+YPZ9ERn+qy1JvbNABAAAAAAAABAnKPgAAAAAAACBIUPYBAAAAAAAAQYI1+wKc0+mUw+Hwd4w6cTgcCgkJUWFhoZxOp7/jVGL2fBIZfaGqfKGhobLZbH5OBgAAAADAqaPsC1CGYSgrK0uHDx/2d5Q6MwxDiYmJ+vXXX+u0oGRDM3s+iYy+UF2+Zs2aKTEx0ZSZAQAAAACoK8q+AOUu+uLj4xUZGRkQBYXL5dLRo0fVpEkTWa3mm0Fu9nwSGX3hxHyGYSg/P1/79u2TJCUlJfk5IQAAAAAAJ4+yLwA5nU5P0de8eXN/x6kzl8ul4uJi2e1205ZAZs4nkdEXqsoXEREhSdq3b5/i4+OZ0gsAAAAACFjm+0kctXKv0RcZGennJEDwcP95CpQ1MAEAAAAAqAplXwALhKm7QKDgzxMAAAAAIBhQ9gEAAAAAAABBgrIPAAAAAAAACBKUfY2Y02VozS8H9b/Nv2vNLwfldBn+juRzFotF//3vf/0dw3SmTp2qHj16+DvGSdm9e7csFos2b97s7ygAAAAAAJgOZV8jtfiHvTr38c913Ytrdd/bm3Xdi2t17uOfa/EPe+vl81ksFtlsNsXGxspms8lisVT4NXXq1GqvpdzxvT//+c9atmxZvX6OxYsXy2KxKCsrq8LxpKQktWvXrsIx99fYV5ncj+f+1bx5cw0bNkybNm3yyeMDAAAAAGBWlH2N0OIf9mrMG99ob25hheNZuYUa88Y39VL47d27V7///ru2bdummTNnKjo6Wnv37vX8+vOf/+zzz4nqNWnSRM2bN6/Xz3HuuecqJCREK1as8Bz78ccfVVBQoEOHDmn37t2e48uXL1d4eLjOOeccn2b47LPPtHfvXn366ac6evSoLrroIh0+fNinnwMAAAAAYC5Ol6F1u3K08YBF63blBOVMxppQ9gUBwzCUX1xSp19HCh2a8sEWVfVt7j429YOtOlLoqNPjGUbd/sAkJiYqMTFRCQkJio6OlsVi8RyLj4/XjBkz1KZNG4WHh6tHjx5avHix59r27dtLknr27CmLxaJBgwZJkjZs2KChQ4eqRYsWiomJ0fnnn69vvvnGq9du0KBBGjdunMaNG6fY2Fidfvrpmjx5coXn9frrr6tPnz5q2rSpEhMTdf3112vfvn0VHueDDz5Qx44dZbfbNXjwYL366quyWCwViqVVq1bpvPPOU0REhJKTk3Xvvffq2LFjnvufe+45z2MkJCToqquuqjb3tGnTKk3DnTVrVoURcytWrFC/fv0UFRWlZs2a6ZxzzlFGRoakytN4b7rpJl122WV68sknlZSUpObNm2vs2LFyOByec/bu3avhw4crIiJC7du314IFC9SuXTvNmjWryoxNmjRR3759K5R9K1as0Lnnnqtzzjmn0vEBAwbIbrdLkl566SWdccYZstvt6tKli5577rlKj79t2zadffbZstvt6tq1q1auXFnpnObNmysxMVF9+vTRk08+qezsbK1bt66aVxUAAAAAEOjcMxlvfPlrvbbDphtf/rpeZzKaUYi/A+DUFTicSp38qU8ey5CUlVeoblOX1On8rQ+nKzLs1L6Nnn76aT311FN64YUX1LNnT7388su65JJLtGXLFnXs2FHr169Xv3799Nlnn+nMM89UWFiYJOnIkSMaPXq0nn32WRmGoaeeekoXX3yxduzYoaZNm9b587/66qu69dZbtXbtWn355ZeaMGGCUlJSdPvtt0uSHA6HHnnkEXXu3Fn79u3TxIkTddNNN2nRokWSpF27dumqq67Sfffdp9tuu02bNm2qNFLxl19+0YUXXqhHH31UL7/8svbv3+8pGV955RV9/fXXuvfee/X666/r7LPPVk5Ojr788suTfk1LSkp02WWX6fbbb9dbb72l4uJirV+/XhaLpdprli9frqSkJC1fvlw///yzrrnmGvXo0cPzOowaNUoHDhzQihUrFBoaqokTJ1YqPU80ePBgvffeexU+x6BBg+R0OrV8+XLddNNNkkrLvltuuUWS9Oabb2ry5MmaPXu2evbsqU2bNun2229XVFSURo8e7Xms+++/X7NmzVJqaqpmzJihkSNHateuXdWOWIyIiJAkFRcX1/4CAgAAAAACjnsm44nDktwzGefe2EsXdk3yS7aGRNkHv3vyySf14IMP6tprr5UkPf7441q+fLlmzZqlOXPmqGXLlpKOj9Jyu+CCCyo8zr///W81a9ZMK1eu1IgRI+r8+ZOTkzVz5kwZhqGkpCT98ssvmjlzpqfkcpdQknTaaafpmWeeUd++fXX06FE1adJEL7zwgjp37qx//etfkqTOnTvrhx9+0D/+8Q/PdY899phuuOEGjR8/XpLUsWNHPfPMMzr//PM1d+5cZWZmKioqSiNGjFDTpk2VkpKinj17evEqVpSXl6fc3FyNGDFCp59+uiTpjDPOqPGa2NhYzZ49WzabTV26dNHw4cO1bNky3X777dq2bZs+++wzbdiwQX369JFUOvquY8eONT7m4MGD9c9//lN79+5VUlKSVq5cqfvvv18lJSWaO3euJGnnzp3KzMzU4MGDJUlTpkzRU089pSuuuEJS6cjOrVu36oUXXqhQ9o0bN05XXnmlJGnu3LlavHix5s2bpwceeKBSjsOHD+uRRx5RkyZN1K9fv7q8hAAAAACAAOJ0GZr24dZqZzJaJE37cKuGpibKZq1+IEwwoOwLAhGhNm19OL1O567flaObXtlQ63nzb+6rfu3j6vS5T0VeXp727NlTaa22c845R99++22N12ZnZ+uhhx7SihUrtG/fPjmdTuXn5yszM9OrDAMGDJDFYvFM3R0wYIBmzJghp9Mpm82mjRs3aurUqfr222916NAhuVwuSVJmZqZSU1O1fft29e3bt8Jjnlgoffvtt/ruu+/05ptveo4ZhiGXy6Vdu3Zp6NChSklJ0WmnnaYLL7xQF154oS6//HJFRkZ69Vzc4uLidNNNNyk9PV1Dhw7VkCFD9Mc//lFJSdX/D8aZZ54pm+341zMpKUnff/+9JGn79u0KCQlRr169PPd36NBBsbGxNeY4++yzFRYWphUrVqh79+4qKChQr1695HK5tH//fu3atUsrVqxQRESEBgwYoGPHjumXX37Rrbfe6ilbpdKRijExMRUeOy0tzfNxSEiI+vTpox9//LHS57darTp27JhOO+00LVy4UAkJCcrLy6sxNwAAAAAgsKzflVNpb4LyDEl7cwu1fleO0k6v3zXs/Y2yLwhYLJY6T6U9r2NLJcXYlZVbWGXbbZGUGGPXeR1bmr7pHj16tA4ePKinn35aKSkpCg8PV1pamk+naR47dkzp6elKT0/Xm2++qZYtWyozM1Pp6elefZ6jR4/qzjvv1L333lvpvrZt2yosLEzffPONVqxYoSVLlmjy5MmaOnWqNmzYoGbNmlW6xmq1Vlovsfz6epL0yiuv6N5779XixYu1cOFCPfTQQ1q6dKkGDBhQZcbQ0NAKty0Wi6fYPFmRkZHq16+fli9frpycHJ177rmy2Wyy2Ww6++yztXz5ci1fvlznnHOOwsLCdOjQIUnSiy++qP79+1d4rPJFZF0tXLhQqampat68ued1PNXnBAAAAAAwn31Hqi/6Tua8QMYGHY2MzWrRlJGpkkqLvfLct6eMTG2woi86OlqtWrXSV199VeH4V199pdTU0pzuNfqcTmelc+69915dfPHFOvPMMxUeHq4DBw54neHEDRvWrVunjh07ymazadu2bTp48KCmT5+u8847T126dKm0Tl3nzp319ddfVzi2YUPF0ZO9evXS1q1b1aFDh0q/3M8vJCREQ4YM0RNPPKHvvvtOu3fv1ueff15l5hYtWigrK6tC4bd58+ZK5/Xs2VOTJk3S6tWr1bVrVy1YsKDOr8uJz7GkpESbNm3yHPv555895VxNBg8erBUrVmjFihWezVUkaeDAgVqxYoVWrlzpmcKbkJCgVq1aaefOnZVeJ/dGLW5r1671fFxSUqKNGzdWmqqcnJys008/vcrCFAAAAAAQPOKb2n16XiCj7GuELuyapLk39lJiTMVv8MQYu18Wq7z//vv1+OOPa+HChdq+fbv+8pe/aPPmzbrvvvskSfHx8YqIiNDixYuVnZ2t3NxcSaXr3r3++uv68ccftW7dOt1www2eTRi8kZmZqYkTJ2r79u167733NHv2bM/ndo+6e/bZZ7Vz50598MEHeuSRRypcf+edd2rbtm168MEH9dNPP+mdd97R/PnzJcmzIcaDDz6o1atXa9y4cdq8ebN27Nih//3vfxo3bpwk6aOPPtIzzzyjzZs3KyMjQ6+99ppcLpc6d+5cZeZBgwZp//79euKJJ/TLL79ozpw5+uSTTzz379q1S5MmTdKaNWuUkZGhJUuWaMeOHbWu21edLl26aMiQIbrjjju0fv16bdq0SXfccYciIiJq3PRDKi37duzYoU8//VTnn3++5/j555+v//73v/r11189ZZ9UutPwY489pmeeeUY//fSTvv/+e73yyiuaMWNGhcedM2eO/vOf/2jbtm0aO3asDh06VGF9RQAAAABA49GvfZziIsOqvd8iKSnGXqclywIdZV8jdWHXJK168AK9dfsAPX1tD711+wCtevACv+xKc++992rixIn6v//7P3Xr1k2LFy/WBx984Nn8ISQkRM8884xeeOEFtWrVSpdeeqkkad68eTp06JB69eqlP/3pT7r33nsVHx/v9ecfNWqUCgoKNGDAAN1///269957dccdd0iSWrZsqfnz5+vdd99Vamqqpk+frieffLLC9e3bt9d7772n999/X2eddZbmzp2rv/3tb5Kk8PBwSdJZZ52llStX6qefftJ5552nnj17avLkyWrVqpUkqVmzZnr//fd1wQUX6IwzztDzzz+vt956S2eeeWaVmc844ww999xzmjNnjrp3767169dX2AE4MjJS27Zt05VXXqlOnTrpjjvu0NixY3XnnXd6/fq4vfbaa0pISNDAgQN1+eWX6/bbb1fTpk1lt9f8vyJpaWkKDw+XYRjq3bu353j//v3lcDjUpEmTCmse3nbbbXrppZf0yiuvqFu3bjr//PM1f/78SiP7pk+frunTp6t79+5atWqVPvjgA7Vo0eKknx8AAAAAIHAdyi+Wo5plm/wxk9GfWLOvEbNZLX5ZlPKmm26qMALLarVqypQpmjJlSrXX3HbbbbrtttsqHOvZs2el6bJXXXVVhdsnrmtXldDQ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/v2VkpKid955RxEREd48VNC4/PLLdfnll3tur1y5Ut99952effZZdejQQW+99ZYSExPVr18/DRw4UPHx8VU+zqRJkyps8JGXl6fk5GQNGzYsaNb8czgcWrp0qYYOHarQ0FB/x6nE7PkkMvqC2fNJZPQFs+eTyOgLZs8nkdEXzJ5PIqMvmD2fZP6MZs8nkdEXzJ5PIqMvmD2fVHvGvAKHHp+zRi4V6pKzkjTl6m6myxhovNn81etpvOU1a9ZMnTp10s8//6yhQ4equLhYhw8frjCiLjs7W4mJiZKkxMTESrvmunfILX/OibvmZmdnKzo6WhEREbLZbLLZbFWeU/4xGiLLiYqKinT33Xfr9ddf188//6ySkhKdf/75kqROnTpp3bp1GjlyZFUvpcLDwxUeXnk3mtDQ0KD4pizP7M/J7PkkMvqC2fNJZPQFs+eTyOgLZs8nkdEXzJ5PIqMvmD2fZP6MZs8nkdEXzJ5PIqMvmD2fVHVGwzA0+aPvtSe3UG3jIvWPK7r59XkEwutYF948B6836Cjv6NGj+uWXX5SUlKTevXsrNDRUy5Yt89y/fft2ZWZmKi0tTZKUlpam77//vsKuuUuXLlV0dLRSU1M955R/DPc57scICwtT7969K5zjcrm0bNkyzzkNleVEjz76qC688EL16tVLTqdTJSUlnvscDoeczoaZlw4AAAAAAOAP7379mz7+bq9CrBY9c11PNbUHftEWaLwa2ffnP/9ZI0eOVEpKivbs2aMpU6bIZrPpuuuuU0xMjG699VZNnDhRcXFxio6O1j333KO0tDQNGDBAkjRs2DClpqbqT3/6k5544gllZWXpoYce0tixYz2j2u666y7Nnj1bDzzwgG655RZ9/vnneuedd/Txxx97ckycOFGjR49Wnz591K9fP82aNUvHjh3TzTffLEkNmsVt69atWrhwoTZt2iSpdEMQq9WqefPmKTExUdu2bVPfvn29/foAAAAAAAAEhF/2H9WUD0pX5ps4rJN6JDfzb6BGyquy77ffftN1112ngwcPqmXLljr33HO1du1atWzZUpI0c+ZMWa1WXXnllSoqKlJ6erqee+45z/U2m00fffSRxowZo7S0NEVFRWn06NF6+OGHPee0b99eH3/8sSZMmKCnn35abdq00UsvvaT09HTPOddcc43279+vyZMnKysrSz169NDixYsr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8MILOuussyocnzBhgj788EO9++67Wrlypfbs2aMrrrjCc7/T6dTw4cNVXFys1atX69VXX9X8+fM1efJkzzm7du3S8OHDNXjwYG3evFnjx4/Xbbfdpk8//dRzzsKFCzVx4kRNmTJF33zzjbp376709HTt27evQbMcOHBAt912m5588kktWbJEb7zxhj766CPP9XfffbemT5+u6Ojok32pAQAAAAAAGkRmTumovmaRoYqJCPVzGpyMkyr7jh49qhtuuEEvvviiYmNjPcdzc3M1b948zZgxQxdccIF69+6tV155RatXr9batWslSUuWLNHWrVv1xhtvqEePHrrooov0yCOPaM6cOSouLpYkPf/882rfvr2eeuopnXHGGRo3bpyuuuoqzZw50/O5ZsyYodtvv10333yzUlNT9fzzzysyMlIvv/xyg2bZuXOnYmJidM0116hv374aPHiwfvzxR0nSW2+9pdDQ0AoFIwAAAAAAgFkdn8LLqL5AFXIyF40dO1bDhw/XkCFD9Oijj3qOb9y4UQ6HQ0OGDPEc69Kli9q2bas1a9ZowIABWrNmjbp166aEhATPOenp6RozZoy2bNminj17as2aNRUew32Oe7pwcXGxNm7cqEmTJnnut1qtGjJkiNasWdOgWTp27Kj8/Hxt2rRJKSkp2rBhg2655RYdOnRIf//737V8+fI6vaZFRUUqKiry3HZP+3U4HHI4HHV6DLNzPw+zPh+z55PI6AtmzyeR0RfMnk8ioy+YPZ9ERl8wez6JjL5g9nyS+TOaPZ9ERl8wez6JjL7g73y79h+RJLWJjag2g78z1kUgZPSGN8/D67Lv7bff1jfffKMNGzZUui8rK0thYWFq1qxZheMJCQnKysrynFO+XHPf776vpnPy8vJUUFCgQ4cOyel0VnnOtm3bGjRLbGysXn31VY0aNUoFBQUaNWqU0tPTdeutt2rcuHHatWuXLrnkEjkcDk2dOlVXXXVVpddNkh577DFNmzat0vElS5YoMjK42vSlS5f6O0KNzJ5PIqMvmD2fREZfMHs+iYy+YPZ8Ehl9wez5JDL6gtnzSebPaPZ8Ehl9wez5JDL6gr/yfbnTKskqR84eLVr0W43nmv01lAIjY13k5+fX+Vyvyr5ff/1V9913n5YuXSq73e51sGB1+eWX6/LLL/fcXrlypb777js9++yz6tChg956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sLAwdejQQb1799Zjjz2m7t276+mnn1ZiYqKKi4t1+PDhCudnZ2crMTFRkpSYmFhpR1z37drOiY6OVkREhFq0aCGbzVblOeUfoyGynKioqEh33323XnjhBf38888qKSnR+eefr86dO6tTp05at25dpWsAAAAAAADqU/nNOXxV9MG8vC77TuRyuVRUVKTevXsrNDRUy5Yt89y3fft2ZWZmKi0tTZKUlpam77//vsKuuUuXLlV0dLRSU1M955R/DPc57scICwtT7969K5zjcrm0bNkyzzkNleVEjz76qC688EL16tVLTqdTJSUlnvscDoecTmeNryUAAAAAAICvZZRtzpESF+XnJGgIXk3jnTRpki666CK1bdtWR44c0YIFC7RixQp9+umniomJ0a233qqJEycqLi5O0dHRuueee5SWlqYBAwZIkoYNG6bU1FT96U9/0hNPPKGsrCw99NBDGjt2rGcK61133aXZs2frgQce0C233KLPP/9c77zzjj7++GNPjokTJ2r06NHq06eP+vXrp1mzZunYsWOe3XkbMovb1q1btXDhQm3atEmS1KVLF1mtVs2bN0+JiYnatm2b+vbt6+3XBwAAAAAA4JRk5pSO7GvbnA1AGwOvyr59+/Zp1KhR2rt3r2JiYnTWWWfp008/1dChQyVJM2fOlNVq1ZVXXqmioiKlp6frueee81xvs9n00UcfacyYMUpLS1NUVJRGjx6thx9+2HNO+/bt9fHHH2vChAl6+umn1aZNG7300ktKT0/3nHPNNddo//79mjx5srKystSjRw8tXry4wmYaDZVFkgzD0B133KEZM2YoKqq0JY+IiND8+fM1duxYFRUVafbs2WrdurU3LzcAAAAAAMAp80zjjaPsawy8KvvmzZtX4/12u11z5szRnDlzqj0nJSVFixYtqvFxBg0a5BkhV51x48Zp3LhxpshisVi0atWqSsdHjBihESNG1HgtAAAAAABAffJM423ONN7G4JTX7AMAAAAAAIA5lThd+u1QgaTSDToQ/Cj7AAAAAAAAgtTe3EKVuAyFhViVGG33dxw0AMo+AAAAAACAIOVery85NkJWq8XPadAQKPsAAAAAAACCVEYO6/U1NpR9AAAAAAAAQSqzbGRfW3bibTQo+wAAAAAAAILUbs9OvJR9jQVlHwAAAAAAQJByr9nXjmm8jQZlHwAAAAAA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p9jYWMXGxmrIkCFav369qTK+//776tOnj5o1a6aoqCj16NFDr7/+uqkylvf222/LYrHosssuq9dcbnXJN3/+fFkslgq/7HZ7g+Sra0ZJOnz4sMaOHaukpCSFh4erU6dOWrRokSnyDRo0qNJraLFYNHz48HrPV9eMkjRr1ix17txZERERSk5O1oQJE1RYWGiajA6HQw8//LBOP/102e12de/eXYsXL663TFOnTq30NevSpUuN17z77rvq0qWL7Ha7unXrVq/fg97m88d7ircZ/fG+4m3Ghn5fOZnvQ7eGek/xNqM/3ldO5nVsyPcVb/P5433lZF7Dhn5f8TZjQ7+vSNLvv/+uG2+8Uc2bN1dERIS6deumr7/+usZrVqxYoV69eik8PFwdOnTQ/PnzTZVx7969uv7669WpUydZrdY6/7u3ofK9//77Gjp0qFq2bKno6GilpaXp008/NVXGVatW6ZxzzvGc36VLF82cOdNUGcv76quvFBISoh49epgm34oVK6r8ezErK8s0GSWpqKhIf/vb35SSkqLw8HC1a9dOL7/8smky3nTTTVW+jmeeeWa9ZfSXEH8HQPDZsGGDXnjhBZ111lk1npefn6/TTjtNV199tSZMmNBA6eqeb8WKFbruuut09tlny2636/HHH9ewYcO0ZcsWtW7d2hQZ4+Li9Le//U1dunRRWFiYPvroI918882Kj49Xenq6KTK67d69W3/+85913nnn1WsuN2/yRUdHa/v27Z7bFoulPqN51DVjcXGxhg4dqvj4eL333ntq3bq1MjIy1KxZM1Pke//991VcXOy5ffDgQXXv3l1XX311veaT6p5xwYIF+stf/qKXX35ZZ599tn766SfPm/2MGTNMkfGhhx7SG2+8oRdffFFdunTRp59+qssvv1yrV69Wz5496yXbmWeeqc8++8xzOySk+n8WrF69Wtddd50ee+wxjRgxQgsWLNBll12mb775Rl27dvV7Pn+9p3iT0V/vK95k9Mf7ijf53Br6PcXbjP54X/Emoz/eV7zJ56/3FW8y+ut9xZuMDf2+cujQIZ1zzjkaPHiwPvnkE7Vs2VI7duxQbGxstdfs2rVLw4cP11133aU333xTy5Yt02233aakpKR6+TvnZDIWFRWpZcuWeuihh+q9oDqZfF988YWGDh2qf/7zn2rWrJleeeUVjRw5UuvWrTPN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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"### WebP adoption over time"
],
"metadata": {
"id": "Ek6fheVwK3WV"
}
},
{
"cell_type": "code",
"source": [
"# Select the data for both desktop and mobile over the last 12 months.\n",
"# starting with WebP images on WordPress sites\n",
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
" wordpress_sites AS (\n",
" SELECT\n",
" url,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.technologies.*`\n",
" WHERE\n",
" app = 'WordPress'\n",
" AND category = 'CMS'\n",
" AND CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 43 MONTH)\n",
" ),\n",
" sites_webp AS (\n",
" SELECT\n",
" url,\n",
" date,\n",
" has_webp\n",
" FROM\n",
" (\n",
" SELECT\n",
" url,\n",
" date\n",
" FROM wordpress_sites\n",
" )\n",
" JOIN\n",
" (\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_webp,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_requests.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 43 MONTH)\n",
" GROUP BY date, pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_pages.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 43 MONTH)\n",
" )\n",
" USING (pageid, date)\n",
" )\n",
" USING (url, date)\n",
" )\n",
"SELECT\n",
" date,\n",
" COUNT(DISTINCT (IF(has_webp, url, NULL))) AS pages_with_webp,\n",
" COUNT(DISTINCT url) AS pages,\n",
" COUNT(DISTINCT (IF(has_webp, url, NULL))) / COUNT(DISTINCT url) AS pct_webp\n",
"FROM sites_webp\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"webp_over_time = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "_h50pXMVK9yi"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"webp_over_time.head(1000)"
],
"metadata": {
"id": "zHhKo-JPLO1Y",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 670
},
"outputId": "8aacd7e0-ba08-4efc-ae77-543e22086e64"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"webp_over_time\",\n \"rows\": 43,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 43,\n \"samples\": [\n \"2024-06-01\",\n \"2023-05-01\",\n \"2023-06-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages_with_webp\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 43,\n \"samples\": [\n 1151202,\n 837639,\n 863231\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 43,\n \"samples\": [\n 5895890,\n 5958637,\n 5968122\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_webp\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.038471996626262925,\n \"min\": 0.09530300082756861,\n \"max\": 0.22452280055258497,\n \"num_unique_values\": 43,\n \"samples\": [\n 0.19525499966926113,\n 0.14057560479015588,\n 0.14464030728594354\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "webp_over_time"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2021-06-01\",\n{\n 'v': 265903,\n 'f': \"265903\",\n },\n{\n 'v': 2661560,\n 'f': \"2661560\",\n },\n{\n 'v': 0.09990494296577947,\n 'f': \"0.09990494296577947\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2021-07-01\",\n{\n 'v': 268874,\n 'f': \"268874\",\n },\n{\n 'v': 2677338,\n 'f': \"2677338\",\n },\n{\n 'v': 0.10042587077163959,\n 'f': \"0.10042587077163959\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2021-08-01\",\n{\n 'v': 271148,\n 'f': \"271148\",\n },\n{\n 'v': 2833514,\n 'f': \"2833514\",\n },\n{\n 'v': 0.09569319226938706,\n 'f': \"0.09569319226938706\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2021-09-01\",\n{\n 'v': 250472,\n 'f': \"250472\",\n },\n{\n 'v': 2585502,\n 'f': \"2585502\",\n },\n{\n 'v': 0.09687557774080237,\n 'f': \"0.09687557774080237\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2021-10-01\",\n{\n 'v': 221300,\n 'f': \"221300\",\n },\n{\n 'v': 1777755,\n 'f': \"1777755\",\n },\n{\n 'v': 0.12448284493645075,\n 'f': \"0.12448284493645075\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2021-11-01\",\n{\n 'v': 273446,\n 'f': \"273446\",\n },\n{\n 'v': 2740533,\n 'f': \"2740533\",\n },\n{\n 'v': 0.09977840077094492,\n 'f': \"0.09977840077094492\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2021-12-01\",\n{\n 'v': 283521,\n 'f': \"283521\",\n },\n{\n 'v': 2778305,\n 'f': \"2778305\",\n },\n{\n 'v': 0.10204819125330013,\n 'f': \"0.10204819125330013\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2022-01-01\",\n{\n 'v': 286396,\n 'f': \"286396\",\n },\n{\n 'v': 2762781,\n 'f': \"2762781\",\n },\n{\n 'v': 0.10366221571669995,\n 'f': \"0.10366221571669995\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2022-02-01\",\n{\n 'v': 265834,\n 'f': \"265834\",\n },\n{\n 'v': 2660396,\n 'f': \"2660396\",\n },\n{\n 'v': 0.09992271827201665,\n 'f': \"0.09992271827201665\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2022-03-01\",\n{\n 'v': 309719,\n 'f': \"309719\",\n },\n{\n 'v': 2883366,\n 'f': \"2883366\",\n },\n{\n 'v': 0.10741577725477792,\n 'f': \"0.10741577725477792\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2022-04-01\",\n{\n 'v': 304928,\n 'f': \"304928\",\n },\n{\n 'v': 2698810,\n 'f': \"2698810\",\n },\n{\n 'v': 0.1129860938710024,\n 'f': \"0.1129860938710024\",\n }],\n [{\n 'v': 11,\n 'f': \"11\",\n },\n\"2022-05-01\",\n{\n 'v': 327818,\n 'f': \"327818\",\n },\n{\n 'v': 2799254,\n 'f': \"2799254\",\n },\n{\n 'v': 0.11710905834197254,\n 'f': \"0.11710905834197254\",\n }],\n [{\n 'v': 12,\n 'f': \"12\",\n },\n\"2022-05-12\",\n{\n 'v': 609428,\n 'f': \"609428\",\n },\n{\n 'v': 6394636,\n 'f': \"6394636\",\n },\n{\n 'v': 0.09530300082756861,\n 'f': \"0.09530300082756861\",\n }],\n [{\n 'v': 13,\n 'f': \"13\",\n },\n\"2022-06-01\",\n{\n 'v': 333016,\n 'f': \"333016\",\n },\n{\n 'v': 2835909,\n 'f': \"2835909\",\n },\n{\n 'v': 0.11742830958257124,\n 'f': \"0.11742830958257124\",\n }],\n [{\n 'v': 14,\n 'f': \"14\",\n },\n\"2022-07-01\",\n{\n 'v': 439981,\n 'f': \"439981\",\n },\n{\n 'v': 3739776,\n 'f': \"3739776\",\n },\n{\n 'v': 0.11764902496834034,\n 'f': \"0.11764902496834034\",\n }],\n [{\n 'v': 15,\n 'f': \"15\",\n },\n\"2022-08-01\",\n{\n 'v': 638000,\n 'f': \"638000\",\n },\n{\n 'v': 5375240,\n 'f': \"5375240\",\n },\n{\n 'v': 0.11869237466606142,\n 'f': \"0.11869237466606142\",\n }],\n [{\n 'v': 16,\n 'f': \"16\",\n },\n\"2022-09-01\",\n{\n 'v': 641027,\n 'f': \"641027\",\n },\n{\n 'v': 5356586,\n 'f': \"5356586\",\n },\n{\n 'v': 0.1196708127154124,\n 'f': \"0.1196708127154124\",\n }],\n [{\n 'v': 17,\n 'f': \"17\",\n },\n\"2022-10-01\",\n{\n 'v': 666989,\n 'f': \"666989\",\n },\n{\n 'v': 5543613,\n 'f': \"5543613\",\n },\n{\n 'v': 0.1203166599111446,\n 'f': \"0.1203166599111446\",\n }],\n [{\n 'v': 18,\n 'f': \"18\",\n },\n\"2022-11-01\",\n{\n 'v': 704152,\n 'f': \"704152\",\n },\n{\n 'v': 5849657,\n 'f': \"5849657\",\n },\n{\n 'v': 0.12037492112785417,\n 'f': \"0.12037492112785417\",\n }],\n [{\n 'v': 19,\n 'f': \"19\",\n },\n\"2022-12-01\",\n{\n 'v': 728577,\n 'f': \"728577\",\n },\n{\n 'v': 5846594,\n 'f': \"5846594\",\n },\n{\n 'v': 0.1246156309126305,\n 'f': \"0.1246156309126305\",\n }],\n [{\n 'v': 20,\n 'f': \"20\",\n },\n\"2023-01-01\",\n{\n 'v': 748619,\n 'f': \"748619\",\n },\n{\n 'v': 5821176,\n 'f': \"5821176\",\n },\n{\n 'v': 0.12860270845616076,\n 'f': \"0.12860270845616076\",\n }],\n [{\n 'v': 21,\n 'f': \"21\",\n },\n\"2023-02-01\",\n{\n 'v': 722389,\n 'f': \"722389\",\n },\n{\n 'v': 5509982,\n 'f': \"5509982\",\n },\n{\n 'v': 0.1311055099635534,\n 'f': \"0.1311055099635534\",\n }],\n [{\n 'v': 22,\n 'f': \"22\",\n },\n\"2023-03-01\",\n{\n 'v': 802915,\n 'f': \"802915\",\n },\n{\n 'v': 6041022,\n 'f': \"6041022\",\n },\n{\n 'v': 0.1329104578662352,\n 'f': \"0.1329104578662352\",\n }],\n [{\n 'v': 23,\n 'f': \"23\",\n },\n\"2023-04-01\",\n{\n 'v': 821111,\n 'f': \"821111\",\n },\n{\n 'v': 6016941,\n 'f': \"6016941\",\n },\n{\n 'v': 0.13646652011379204,\n 'f': \"0.13646652011379204\",\n }],\n [{\n 'v': 24,\n 'f': \"24\",\n },\n\"2023-05-01\",\n{\n 'v': 837639,\n 'f': \"837639\",\n },\n{\n 'v': 5958637,\n 'f': \"5958637\",\n },\n{\n 'v': 0.14057560479015588,\n 'f': \"0.14057560479015588\",\n }],\n [{\n 'v': 25,\n 'f': \"25\",\n },\n\"2023-06-01\",\n{\n 'v': 863231,\n 'f': \"863231\",\n },\n{\n 'v': 5968122,\n 'f': \"5968122\",\n },\n{\n 'v': 0.14464030728594354,\n 'f': \"0.14464030728594354\",\n }],\n [{\n 'v': 26,\n 'f': \"26\",\n },\n\"2023-07-01\",\n{\n 'v': 876439,\n 'f': \"876439\",\n },\n{\n 'v': 5870346,\n 'f': \"5870346\",\n },\n{\n 'v': 0.14929937690214512,\n 'f': \"0.14929937690214512\",\n }],\n [{\n 'v': 27,\n 'f': \"27\",\n },\n\"2023-08-01\",\n{\n 'v': 893415,\n 'f': \"893415\",\n },\n{\n 'v': 5810560,\n 'f': \"5810560\",\n },\n{\n 'v': 0.1537571249586959,\n 'f': \"0.1537571249586959\",\n }],\n [{\n 'v': 28,\n 'f': \"28\",\n },\n\"2023-09-01\",\n{\n 'v': 909371,\n 'f': \"909371\",\n },\n{\n 'v': 5749982,\n 'f': \"5749982\",\n },\n{\n 'v': 0.15815197334530787,\n 'f': \"0.15815197334530787\",\n }],\n [{\n 'v': 29,\n 'f': \"29\",\n },\n\"2023-10-01\",\n{\n 'v': 950475,\n 'f': \"950475\",\n },\n{\n 'v': 5845156,\n 'f': \"5845156\",\n },\n{\n 'v': 0.162609004789607,\n 'f': \"0.162609004789607\",\n }],\n [{\n 'v': 30,\n 'f': \"30\",\n },\n\"2023-11-01\",\n{\n 'v': 972618,\n 'f': \"972618\",\n },\n{\n 'v': 5781783,\n 'f': \"5781783\",\n },\n{\n 'v': 0.16822111794925546,\n 'f': \"0.16822111794925546\",\n }],\n [{\n 'v': 31,\n 'f': \"31\",\n },\n\"2023-12-01\",\n{\n 'v': 972591,\n 'f': \"972591\",\n },\n{\n 'v': 5629121,\n 'f': \"5629121\",\n },\n{\n 'v': 0.17277848530880754,\n 'f': \"0.17277848530880754\",\n }],\n [{\n 'v': 32,\n 'f': \"32\",\n },\n\"2024-01-01\",\n{\n 'v': 934334,\n 'f': \"934334\",\n },\n{\n 'v': 5294033,\n 'f': \"5294033\",\n },\n{\n 'v': 0.17648813296025923,\n 'f': \"0.17648813296025923\",\n }],\n [{\n 'v': 33,\n 'f': \"33\",\n },\n\"2024-02-01\",\n{\n 'v': 1053818,\n 'f': \"1053818\",\n },\n{\n 'v': 5887129,\n 'f': \"5887129\",\n },\n{\n 'v': 0.1790037215083957,\n 'f': \"0.1790037215083957\",\n }],\n [{\n 'v': 34,\n 'f': \"34\",\n },\n\"2024-03-01\",\n{\n 'v': 1075616,\n 'f': \"1075616\",\n },\n{\n 'v': 5935372,\n 'f': \"5935372\",\n },\n{\n 'v': 0.18122132867156432,\n 'f': \"0.18122132867156432\",\n }],\n [{\n 'v': 35,\n 'f': \"35\",\n },\n\"2024-04-01\",\n{\n 'v': 1097735,\n 'f': \"1097735\",\n },\n{\n 'v': 5926995,\n 'f': \"5926995\",\n },\n{\n 'v': 0.1852093683223961,\n 'f': \"0.1852093683223961\",\n }],\n [{\n 'v': 36,\n 'f': \"36\",\n },\n\"2024-05-01\",\n{\n 'v': 1125718,\n 'f': \"1125718\",\n },\n{\n 'v': 5934368,\n 'f': \"5934368\",\n },\n{\n 'v': 0.18969467346817723,\n 'f': \"0.18969467346817723\",\n }],\n [{\n 'v': 37,\n 'f': \"37\",\n },\n\"2024-06-01\",\n{\n 'v': 1151202,\n 'f': \"1151202\",\n },\n{\n 'v': 5895890,\n 'f': \"5895890\",\n },\n{\n 'v': 0.19525499966926113,\n 'f': \"0.19525499966926113\",\n }],\n [{\n 'v': 38,\n 'f': \"38\",\n },\n\"2024-07-01\",\n{\n 'v': 1164474,\n 'f': \"1164474\",\n },\n{\n 'v': 5820225,\n 'f': \"5820225\",\n },\n{\n 'v': 0.20007370849065115,\n 'f': \"0.20007370849065115\",\n }],\n [{\n 'v': 39,\n 'f': \"39\",\n },\n\"2024-08-01\",\n{\n 'v': 1167219,\n 'f': \"1167219\",\n },\n{\n 'v': 5634864,\n 'f': \"5634864\",\n },\n{\n 'v': 0.20714235516598092,\n 'f': \"0.20714235516598092\",\n }],\n [{\n 'v': 40,\n 'f': \"40\",\n },\n\"2024-09-01\",\n{\n 'v': 1232795,\n 'f': \"1232795\",\n },\n{\n 'v': 5779101,\n 'f': \"5779101\",\n },\n{\n 'v': 0.21331951111427191,\n 'f': \"0.21331951111427191\",\n }],\n [{\n 'v': 41,\n 'f': \"41\",\n },\n\"2024-10-01\",\n{\n 'v': 1303533,\n 'f': \"1303533\",\n },\n{\n 'v': 5983704,\n 'f': \"5983704\",\n },\n{\n 'v': 0.2178471729216552,\n 'f': \"0.2178471729216552\",\n }],\n [{\n 'v': 42,\n 'f': \"42\",\n },\n\"2024-11-01\",\n{\n 'v': 1328483,\n 'f': \"1328483\",\n },\n{\n 'v': 5916918,\n 'f': \"5916918\",\n },\n{\n 'v': 0.22452280055258497,\n 'f': \"0.22452280055258497\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"pages_with_webp\"], [\"number\", \"pages\"], [\"number\", \"pct_webp\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-9b598613-b56a-40ed-a0f9-10c83ad6dcf9\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-9b598613-b56a-40ed-a0f9-10c83ad6dcf9')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-9b598613-b56a-40ed-a0f9-10c83ad6dcf9 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-b6a20762-1363-484f-af08-80c966deebb8\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>pages_with_webp</th>\n",
" <th>pages</th>\n",
" <th>pct_webp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2021-06-01</td>\n",
" <td>265903</td>\n",
" <td>2661560</td>\n",
" <td>0.099905</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2021-07-01</td>\n",
" <td>268874</td>\n",
" <td>2677338</td>\n",
" <td>0.100426</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2021-08-01</td>\n",
" <td>271148</td>\n",
" <td>2833514</td>\n",
" <td>0.095693</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2021-09-01</td>\n",
" <td>250472</td>\n",
" <td>2585502</td>\n",
" <td>0.096876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2021-10-01</td>\n",
" <td>221300</td>\n",
" <td>1777755</td>\n",
" <td>0.124483</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2021-11-01</td>\n",
" <td>273446</td>\n",
" <td>2740533</td>\n",
" <td>0.099778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2021-12-01</td>\n",
" <td>283521</td>\n",
" <td>2778305</td>\n",
" <td>0.102048</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2022-01-01</td>\n",
" <td>286396</td>\n",
" <td>2762781</td>\n",
" <td>0.103662</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2022-02-01</td>\n",
" <td>265834</td>\n",
" <td>2660396</td>\n",
" <td>0.099923</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2022-03-01</td>\n",
" <td>309719</td>\n",
" <td>2883366</td>\n",
" <td>0.107416</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2022-04-01</td>\n",
" <td>304928</td>\n",
" <td>2698810</td>\n",
" <td>0.112986</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2022-05-01</td>\n",
" <td>327818</td>\n",
" <td>2799254</td>\n",
" <td>0.117109</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2022-05-12</td>\n",
" <td>609428</td>\n",
" <td>6394636</td>\n",
" <td>0.095303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2022-06-01</td>\n",
" <td>333016</td>\n",
" <td>2835909</td>\n",
" <td>0.117428</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2022-07-01</td>\n",
" <td>439981</td>\n",
" <td>3739776</td>\n",
" <td>0.117649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2022-08-01</td>\n",
" <td>638000</td>\n",
" <td>5375240</td>\n",
" <td>0.118692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2022-09-01</td>\n",
" <td>641027</td>\n",
" <td>5356586</td>\n",
" <td>0.119671</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2022-10-01</td>\n",
" <td>666989</td>\n",
" <td>5543613</td>\n",
" <td>0.120317</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2022-11-01</td>\n",
" <td>704152</td>\n",
" <td>5849657</td>\n",
" <td>0.120375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2022-12-01</td>\n",
" <td>728577</td>\n",
" <td>5846594</td>\n",
" <td>0.124616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>2023-01-01</td>\n",
" <td>748619</td>\n",
" <td>5821176</td>\n",
" <td>0.128603</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2023-02-01</td>\n",
" <td>722389</td>\n",
" <td>5509982</td>\n",
" <td>0.131106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>2023-03-01</td>\n",
" <td>802915</td>\n",
" <td>6041022</td>\n",
" <td>0.132910</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>2023-04-01</td>\n",
" <td>821111</td>\n",
" <td>6016941</td>\n",
" <td>0.136467</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2023-05-01</td>\n",
" <td>837639</td>\n",
" <td>5958637</td>\n",
" <td>0.140576</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>2023-06-01</td>\n",
" <td>863231</td>\n",
" <td>5968122</td>\n",
" <td>0.144640</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>2023-07-01</td>\n",
" <td>876439</td>\n",
" <td>5870346</td>\n",
" <td>0.149299</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>2023-08-01</td>\n",
" <td>893415</td>\n",
" <td>5810560</td>\n",
" <td>0.153757</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>2023-09-01</td>\n",
" <td>909371</td>\n",
" <td>5749982</td>\n",
" <td>0.158152</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>2023-10-01</td>\n",
" <td>950475</td>\n",
" <td>5845156</td>\n",
" <td>0.162609</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>2023-11-01</td>\n",
" <td>972618</td>\n",
" <td>5781783</td>\n",
" <td>0.168221</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>2023-12-01</td>\n",
" <td>972591</td>\n",
" <td>5629121</td>\n",
" <td>0.172778</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>2024-01-01</td>\n",
" <td>934334</td>\n",
" <td>5294033</td>\n",
" <td>0.176488</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>2024-02-01</td>\n",
" <td>1053818</td>\n",
" <td>5887129</td>\n",
" <td>0.179004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>2024-03-01</td>\n",
" <td>1075616</td>\n",
" <td>5935372</td>\n",
" <td>0.181221</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>2024-04-01</td>\n",
" <td>1097735</td>\n",
" <td>5926995</td>\n",
" <td>0.185209</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>2024-05-01</td>\n",
" <td>1125718</td>\n",
" <td>5934368</td>\n",
" <td>0.189695</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>2024-06-01</td>\n",
" <td>1151202</td>\n",
" <td>5895890</td>\n",
" <td>0.195255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>2024-07-01</td>\n",
" <td>1164474</td>\n",
" <td>5820225</td>\n",
" <td>0.200074</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>2024-08-01</td>\n",
" <td>1167219</td>\n",
" <td>5634864</td>\n",
" <td>0.207142</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>2024-09-01</td>\n",
" <td>1232795</td>\n",
" <td>5779101</td>\n",
" <td>0.213320</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>2024-10-01</td>\n",
" <td>1303533</td>\n",
" <td>5983704</td>\n",
" <td>0.217847</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>2024-11-01</td>\n",
" <td>1328483</td>\n",
" <td>5916918</td>\n",
" <td>0.224523</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b6a20762-1363-484f-af08-80c966deebb8')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-b6a20762-1363-484f-af08-80c966deebb8 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-b6a20762-1363-484f-af08-80c966deebb8');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-a2e8988e-5237-429b-91b2-8879f5163467\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a2e8988e-5237-429b-91b2-8879f5163467')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-a2e8988e-5237-429b-91b2-8879f5163467 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" date pages_with_webp pages pct_webp\n",
"0 2021-06-01 265903 2661560 0.099905\n",
"1 2021-07-01 268874 2677338 0.100426\n",
"2 2021-08-01 271148 2833514 0.095693\n",
"3 2021-09-01 250472 2585502 0.096876\n",
"4 2021-10-01 221300 1777755 0.124483\n",
"5 2021-11-01 273446 2740533 0.099778\n",
"6 2021-12-01 283521 2778305 0.102048\n",
"7 2022-01-01 286396 2762781 0.103662\n",
"8 2022-02-01 265834 2660396 0.099923\n",
"9 2022-03-01 309719 2883366 0.107416\n",
"10 2022-04-01 304928 2698810 0.112986\n",
"11 2022-05-01 327818 2799254 0.117109\n",
"12 2022-05-12 609428 6394636 0.095303\n",
"13 2022-06-01 333016 2835909 0.117428\n",
"14 2022-07-01 439981 3739776 0.117649\n",
"15 2022-08-01 638000 5375240 0.118692\n",
"16 2022-09-01 641027 5356586 0.119671\n",
"17 2022-10-01 666989 5543613 0.120317\n",
"18 2022-11-01 704152 5849657 0.120375\n",
"19 2022-12-01 728577 5846594 0.124616\n",
"20 2023-01-01 748619 5821176 0.128603\n",
"21 2023-02-01 722389 5509982 0.131106\n",
"22 2023-03-01 802915 6041022 0.132910\n",
"23 2023-04-01 821111 6016941 0.136467\n",
"24 2023-05-01 837639 5958637 0.140576\n",
"25 2023-06-01 863231 5968122 0.144640\n",
"26 2023-07-01 876439 5870346 0.149299\n",
"27 2023-08-01 893415 5810560 0.153757\n",
"28 2023-09-01 909371 5749982 0.158152\n",
"29 2023-10-01 950475 5845156 0.162609\n",
"30 2023-11-01 972618 5781783 0.168221\n",
"31 2023-12-01 972591 5629121 0.172778\n",
"32 2024-01-01 934334 5294033 0.176488\n",
"33 2024-02-01 1053818 5887129 0.179004\n",
"34 2024-03-01 1075616 5935372 0.181221\n",
"35 2024-04-01 1097735 5926995 0.185209\n",
"36 2024-05-01 1125718 5934368 0.189695\n",
"37 2024-06-01 1151202 5895890 0.195255\n",
"38 2024-07-01 1164474 5820225 0.200074\n",
"39 2024-08-01 1167219 5634864 0.207142\n",
"40 2024-09-01 1232795 5779101 0.213320\n",
"41 2024-10-01 1303533 5983704 0.217847\n",
"42 2024-11-01 1328483 5916918 0.224523"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"import pandas as pd\n",
"\n",
"df = webp_over_time.copy()\n",
"# Plot the data\n",
"plt.figure(figsize=(15, 6))\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('% of pages with WebP Images', fontsize=12)\n",
"plt.title('WebP Image Adoption Over Time', fontsize=14)\n",
"\n",
"# smooth the plot line\n",
"df['pct_webp'] = df['pct_webp'].rolling(window=3).mean()\n",
"\n",
"plt.plot(df['date'], df['pct_webp'], marker='o')\n",
"\n",
"# Get x values for the line\n",
"x_coord = df['date'][6]\n",
"\n",
"# Add the annotation\n",
"plt.axvline(x_coord, color='gray', linestyle='dotted', linewidth=1.5)\n",
"\n",
"# Optionally add text label above the line\n",
"plt.text(\n",
" x_coord,\n",
" plt.ylim()[1],\n",
" \"WordPress 5.8\\nadds WebP support\",\n",
" ha='center',\n",
" va='bottom',\n",
" fontsize=10,\n",
" color='gray',\n",
")\n",
"\n",
"# Format the x-axis dates\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%y'))\n",
"\n",
"# Additional formatting for clarity\n",
"\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle horizontal grid\n",
"\n",
"plt.show()\n",
"\n"
],
"metadata": {
"id": "RRWV_oXQLZQk",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 576
},
"outputId": "40fdd26e-0319-48f2-95db-4b4d9934e519"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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+Pnnn9m8eTNt27Z1OZa/+yaAv78/TZo04aGHHuLJJ5+87nvRqlWrAm35u2Fe6dixY8eIjIx0tq9cuZL33nuPX3/9lVOnTpGbm+s8ln/PIG9Tg8TERKKioqhZs2aB83fp0oVly5a5tBX3XhcmOzubGTNmEBAQwJ133uls79WrF3Xr1mXu3LmcOXOGatWqAbB161Yg7/25VHh4OHXr1iUxMdElv4MHD9KkSRPq1KlT4DW9evXi008/ZcuWLQwfPtzl2JWusWPHDnJyclzu5bXYvHkzQKEbcdSrV4/69euzd+9eMjIyXDZLuvnmmwv8vHp4eFCzZk3Onj1brFiuhdVq5Y477uC7775j69attGzZEsibNpudne1yD/fs2cOZM2eoVasWMTExBc518uRJAHbv3l3gWIcOHUopg6srzmfQbrdz4sQJateuTWZmJtu3b6dWrVq8+eabBfrnT1MuLG8REZHyTIU3uSGdPXuW999/n7FjxxIaGlpon8TERKZPn84LL7yAj49PGUdYuC1btrBkyRL+/Oc/uzsUEakA8tdpW7lyJX/5y19YuXIlPj4+3HLLLQCYzWa6du3qXNct/8/evXs7z5GamgrAhx9+eMVrnT9/3qUYVFix6eL2tLS0AsfWr1/vsqtpSQoMDCzQ5uHhcdVj+V/mIa8Ict999+Hv70///v2JiIjAz88Pk8nEtGnTXNZ4S09PByAkJKTQeAq7P8W914WZN28ep0+f5tFHH3XZWdNsNvPQQw/x97//nZkzZzqLmvnvx5XivbTwdrk84H8Flfx+l57rStfIyMigevXqV8zvcooS1969e0lPT3cpvBX2MwB5Pwd2u/2q161evTqenp6cOnWKrKysK/67ISkpyRnLxYYPH853333HjBkznIW3L7/80rkjeL78n5MdO3awY8eOy17n/PnzBdoud1/KwvV+Bs+cOYNhGBw9erTQgmO+wvIWEREpz1R4EymG5cuXs3v3bp566iln26lTp/jwww9p2bIlQ4YMcbZv2bKFhQsX8sILL+Dp6Xnd196yZQs//PCD83lAQAANGjSgT58+VKlS5brPXx699957dOzYsdS+sItUVC1btqRatWr88ssv5OTkEBsbS8eOHfH29nb26dmzJ4sWLSIxMZGVK1cCrhsr5H8h3r59O82aNSvytU+cOHHFdqvVeq3puN2rr76Kj48PGzdupGHDhi7HvvnmG5fn+fctJSWl0HMVdn+Ke68Lkz96cOrUqc5F/wvrk194y38/ihpvfqyXe5+PHz/u0u9K57q43WQyuRTErtX1xHU9PDw8aN++Pb/88gurVq2if//+l+37888/A9CpUyeX9gEDBhAcHMzXX3/Nm2++yeHDh1m7di39+vVz+SVhfux33XUX33///TXFeb2blLhTft5t27bl999/d3M0IiIiJUe7mooUQ0REBKdPn+bcuXPOtoSEBAIDA11GDEDeyLo6deqUSNEtn7e3N8899xzPPvss0dHR7Nu3j7lz55bY+cuLooxCEKnMzGYzPXr04MKFC8yfP59du3YVmILXo0cPIO8XBmvWrMHf35927do5j+ePjlu/fv01XXvz5s0ufwfmW7NmDZA3FbWiOXDgAE2aNClQdEtOTubgwYMubYGBgURERLB///5Ci1m//PJLgbbi3utLHTp0iJ9//pmaNWsyatSoQv+LjIxk8+bNzqmZ+SOs8t+fS8+XP0rr4vzq16/P/v37OXr0aIHX5BdxC5tCeKVrNG3a1DnN1GKxANf2d33+z1X+9S+WlJTEgQMHqF+//nUV9y7nkUceAWDy5MmF7hoLedOF33nnHQBGjhzpcszDw4P777+fo0ePEhsby1dffYVhGAwbNsylX5MmTQgMDOT33393GZF5owsICKBJkybs2rWrTKb/ioiIlBWNeJNyb//+/axevZqUlBTMZjN16tRhwIABBAUFOfscPXqUhQsXcvLkSUJCQgpdX2bfvn0sWbKE9PR06tSp4/wSku/s2bP8+OOPHD58GLvdTtWqVenbt2+BL2CQt46M2WwmMTHROWrh0KFDtG/fnjVr1nD27FmqVq0K5BXe8r+Y5ObmsmLFCuLj48nKyiIkJIQ+ffoQERHhcv7du3fz008/kZaWRkREBNHR0QVGj+SvVRMQEMAtt9xCbGwsNput0ALfzp07WbVqFampqXh6ehIaGsr999+Pl5cX06ZNIzQ0lAEDBjj7f/PNN/j4+DhH7r333nu0bt2aU6dOsWfPHnx8fOjatavLWjIxMTEMHDiQvXv3kpiYiL+/P3379iUqKsrZ58SJEyxZsoQjR47g6elJkyZN6N+/v/NL2Lx588jKyqJWrVr89ttveHh4YLVaSUtLY+nSpSxduhSASZMmFchRpLLq1asX8+bNc07NurTw1qZNGwICAnj//fdJS0vjtttuc07xAnj00Uf529/+xksvvUTnzp1p2rSpy+szMzPZtm1bgRGnZ8+e5fXXX2fy5MnOtqVLl/Lzzz/TrFmzAuu7VQTh4eHs37+fEydOOKfsZWVlMW7cuEILIA899BCvv/46kyZNYsqUKc72lStXOv++ulhx7/Wlpk6disPhYOzYsZedkvfJJ58wduxYPv/8c/71r3/RtWtXIiMjWbhwIWvXrqVr164AGIbBiy++WGjxa8SIEUyaNImJEycyffp052iqbdu2MW3aNKxWq8sI73xffPEF48ePp0WLFgWukV+8AqhWrRomk6lA0e9KBg8ejNVqZerUqTz55JPOe2gYBi+88AK5ubku1yhJjzzyCJ9//jmrVq3i8ccf5/3333eZcpqWlsbDDz/Mvn37uOeee1ymdOcbPnw4H3zwAV9++SUbNmygSpUqLmv0QV6Bbty4cbz55pv88Y9/5O233y7w//b4+HhCQkIuO3W4onr66acZN24co0ePZtq0aQVG8ickJGAymQr8u0lERKQ8U+FNyr2cnBw6depEzZo1nVOpvv32Wx5//HFMJhM5OTnMnDmTBg0acOedd3L27FmWLFnico60tDS+/fZb2rdvT9u2bTl27FiBRa8XL17s/FLg5eXFyZMnL7v4s5eXF7Vr1yYhIcFZeEtMTKRz584cOnSIhIQEWrduzZkzZ5zFs/xrnDp1irvuuouAgAB2797NjBkzGDdunHO9G5vNxpo1axgyZAgWi4XFixcze/bsAr85v5iHhweGYeBwOAocy8jIYPbs2fTp04cmTZqQnZ3N4cOHi3z/8/3yyy9069aNnj17sn//fpYsWUL16tVp0KCBs09sbCx9+vRhwIABbN26le+//55x48YRHBxMTk4OM2bMoG7duowePZrz588zf/58Fi9e7PLFLSEhAW9vb+dC0wEBAXz00Ue0adOmQn6RFylt+dNG4+Pj8fHxKVC0sVgsdOnSxfn34sXTTAHn1Ld77rmHli1bMmDAABo3bkx2djaJiYmsWrWKzp07F/h7tVu3bkyZMoVff/2Vjh07kpiYyKxZs/D19eWzzz4rxYxLz/jx4xk/fjytW7fm7rvvJjc3l59++gnDMGjZsqVzg4J8L7zwArNnz+ajjz4iPj6ebt26ceTIEb777juio6NZsGABZvP/JhcU915fzOFwMHXqVEwm0xULTPfddx8TJkzgq6++4u2338bHx4dPPvmEgQMH0qdPH+677z5q1arFihUrSE5OpkWLFmzbts3lHH/6059YtGgRX375Jbt27eLWW28lJSWFb7/9ltzcXD799NNCR5b179+fTp06cf/99xMcHMzPP//M77//TseOHRk/fryzn7+/P+3bt2f16tUMHz6chg0bYjabGT58OOHh4YXmFRgYyKeffsoDDzzALbfcwn333UdwcDDLly9n48aNdOjQgeeff/6y9+V6eHp68sMPP3DHHXfwySefsHDhQgYOHEhISIjzF4CnT5/m9ttvv+z03/bt29OoUSNmzpyJzWZj+PDhhS4TERMTw6ZNm/jnP//JokWL6N69u/M627dvZ+vWraxfv/6GK7yNHTuWDRs2MH36dNatW0efPn2oVasWJ06cYPfu3fz666/MnDlThTcREalQNNVUyr2oqCiaNGlCUFAQoaGhDB48mJSUFOeuXtu3b8cwDO644w5CQkK4+eab6dy5s8s5fv/9d4KCgujfvz81atSgRYsWBabHpKWlUbduXWrWrEm1atW4+eabL/sPf8ibbpq/0PbJkyfJzc0lNDSUevXqOdsTExPx8PCgTp06pKWlsWXLFu655x7Cw8MJCgqic+fO1KtXjy1btjjP63A4uO2226hbty61atViyJAhJCUlFTrVB+D06dNs3LiRWrVquazrlO/cuXM4HA6aNGlC1apVqVmzJu3bt7/mHeXq1atH165dqV69OrfccgtRUVHOHfryRUVF0aZNG6pXr07v3r2pVasWcXFxQN77lJuby5AhQwgJCSEyMpKBAweybds2l+lqnp6ezvcyJCQEX19fTCYT3t7e+Pv7F7qLokhl1qxZM+dC/Jeu75Yvf7opFCy8AQwaNIjNmzfzyCOPEB8fzwcffMBXX33FoUOHePTRR/nrX/9a4DX169dn3bp1+Pr68uGHHzJ//nx69uzJmjVrnFMqK5onn3ySjz76iKCgID799FPmzp1Ljx49WL9+vXMU88UCAgJYvXo1o0aNYvfu3bz77rvs3LmTr7/+2nnPL11rrDj3+mLLly/n8OHDdO/e3WU31ktZrVaGDh3K2bNnmTNnDgB9+vTh559/5pZbbmHWrFl88sknhIeHs3btWufupxfz8fFhxYoVvPzyy6Snp/Puu+8678nK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3SkA3NeuLjGDm+LjqSWIKgoV3kQqAJvNxrvvvgvAxIkT8fLycnNEIiIiIiIiUlKWxCcTs2AnyWlZzrbq/l5gwOnzOXh7mPnr4Gbc276uG6OU4lDhTaSCMJu1WKaIiIiIiMiNZkl8MuNmbMK4pP30uRwAavh7Me3RDjSrbS374OS6qfAmUgF4eXnx8ssvuzsMERERERERKUF2h0HMgp0Fim4Xs5hNNAkLLLOYpGRpCI2IiIiIiIiIiBvEJaS6TC8tzIn0bOISUssoIilpKryJiIiIiIiIiLhBSsaVi27X2k/KH001FakAcnNzWbp0KQD9+/fHw0MfXRERERERkYqump9nkfqFBPiUciRSWjTiTaQCcDgc/P777/z+++84HA53hyMiIiIiIiLXKSk1k7eX7rliHxMQZvWhQ2RQ2QQlJU7DZkQqAIvFQo8ePZyPRUREREREpOJavvMEz83aStoFG35eFjJz7JjAZZMF03//nBQdhcVsKuQsUhGo8CZSAVgsFnr27OnuMEREREREROQ62OwO3l62h49XHQSgZd2qfPhga+KPphGzYKfLRguhVh8mRUcxoFmYu8KVEqDCm4iIiIiIiIhIKTuelsX4rzfxW+IZAB7tEsHE25rg5WGmTjU/+kaFEpeQSkpGFiEBedNLNdKt4lPhTaQCMAyD7OxsALy9vTGZ9JeviIiIiIhIRbFm30me+WYLqedz8Pf24K27WzCwuetINovZRKcG1d0UoZQWFd5EKgCbzcabb74JwMSJE/Hy8nJzRCIiIiIiInI1dofBP3/exz9X7MMwICoskH8/1IaIGlXcHZqUERXeRERERERERERK2MmMbCZ8u5l1+08D8ECHekyKjsLHUxvmVSYmwzCMq3er3NLT07FaraSlpREYGOjucKQSMgwDh8MBgNls1lRTERERERGRcuzXg6cZ//VmUjKy8fW08MbQZtzZuo67w5ISVNRakUa8iVQAJpMJi0W/FRERERERESnPHA6Dj1cf5O1le7A7DBqG+PPvh9rQsGaAu0MTN1HhTURERERERETkOp05n8Nzs7ayYncKAENb1+ZvdzbDz0ull8pM775IBWC32/n5558BuPXWWzX6TUREREREpBzZfPgMT83czNGzF/DyMPPaHU25r31dLRMkKryJVAR2u53169cD0LNnTxXeREREREREygHDMJi6LpHJ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ypMy4FG+vr4UjQEA8KB1CanFRrqdLSMnX1sPp6tXiwZVFBUAAKjuylV4GzdunCwWi55++mndc889rt/omaapBg0aaMaMGRo3bpykglFor7zyyjmnpha67rrrdN11153zmCNHjmj8+PFaunSpBg8eXGTfjh07NHToUF1yySW66KKLNHHiRCUnJ6tRo0YaO3aspk2bxhptAAAAOG9xB9PcOi4p89zFOQAAULuUq/AmSWPHjtU999yjDRs26MCBA5Kk6OhoXXrppfL19XUd5+/vryuuuOLCI1XBNNZRo0Zp4sSJuuSSS4rt79ixo2bPnq3s7GwtXbpUERERatiwoebOnSubzaabbrrJrffJzc1Vbm6u63lGRoYkyW63y263S5IsFousVqscDkeRKbeF2/Pz83Vm3wqr1SqLxVLq9sLzFvLxKbg0Z6/nVdp2X19fOZ1OORwO1zbDMOTj41Pq9tJiJydyIidyIidyIidyIqeC2OOPZmrG8t1avvOE3BEWaKv2OdXE60RO5ERO5ERO5FTVOZ39HqUpd+GtMJBevXqpV69eF3Iat02bNk0+Pj7661//WuL+MWPGaOvWrYqNjVXDhg01f/58paWl6emnn9bKlSv15JNPat68eWrRooXeffddNWnSpMTzPP/885o6dWqx7cuWLVOdOnUkSc2aNVPnzp21detWHTx40HVMmzZt1LZtW61bt04nTvzxA1qnTp0UHR2tVatWKTMz07W9V69eCgsL07Jly4pc6H79+ikgIECLFi0qEsOgQYOUnZ2tFStWuLb5+Pho8ODBSk5OdnWSlaTAwED1799fhw4d0ubNm13bGzVqpMsuu0x79uzRrl27XNvJqfrmtGPHDv3222+SpD59+ujSSy/1+pxq4nUiJ3IiJ3Iip5qT02+Z0o8pdRWXWPjLWFO+FsnulKSS1m8zFVbPT91jQvXjyhXVMiep5l0nciInciInciInT+WUlZUldxjmmaXB82S327Vz506lp6eX2Gihb9++5T21DMPQggULdOONN0qSNm7cqMGDBysuLs61tlvz5s01YcIETZgwodTzjB49Wp06dVJMTIwef/xxrV27VtOnT1d8fLw+//zzEl9T0oi3qKgoJScnu6aqemM19uztNaHCXFtyysnJ0UsvvSRJevTRRxUQEOD1OdXE60RO5ERO5ERO3p/T+oQUvb5iv/63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wBP3Qz5fF8YT98SZM2eqQ4cOCgoKch2zePHiykyzRqjqe6Ik/eMf/1Dbtm1Vt25d1zFr166t9FxrCk/cE/l8lZ8n7odneuGFF2QYhiZMmFDBmdVMnrgnnumBBx6QYRh69dVXKyO9GssT98Uz8Tmrfii8oUyffPKJHn74YU2ZMkVxcXHq2LGjrr32WiUlJen06dO65pprZBiGfvjhB/3vf/9TXl6ehgwZIqfTWeQ83333naKjo9WyZUutWrVKV199tRYtWqSNGzeqX79+GjJkiDZt2uQ6/vTp0+rYsaPefPPNqk7Zq53reklSVlaWBg4cqMcff/yc5znf6/Xjjz9q3LhxWrNmjb777jvZ7XZdc801On36dKXm683KulaSdO+99yoxMdH1NX369GLn+eqrr9SvXz/Vq1dPK1eu1IgRI7RixQqtXr1aUVFRuuaaa3TkyBFJBdc/Li5OTz31lOLi4vTFF19o165dGjp0aJXl7c08dT/k81V+nronNm3aVC+88II2btyoDRs2qH///rrhhhv066+/Vmq+3swT90RJat26td544w1t27ZNP//8s5o3b65rrrlGJ06cqJK8vZmn7ol8vsrHU/fDQuvXr9fbb7+tDh06VEp+NY2n7omFFixYoDVr1igyMrJS86xpPHVfLMTnrJoygTJ0797dHDdunOu5w+EwIyMjzeeff95cunSpabFYzPT0dNf+kydPmoZhmN99912R84wZM8acNGlSqe8TGxtrTp06tcR9kswFCxZcWCK1xLmu15lWrFhhSjLT0tJKPM+FXC/TNM2kpCRTkvnjjz+eXwK1SFnX6oorrjAfeuihMs/Tv39/c+bMmSXuy8/PNwMDA80PPvig1NevW7fOlGQeOHDg/BKoharD/dA0+Xydj+pyTzRN06xfv7753//+1/3ga5nqck9MT083JZnff//9+SVQC1WXe6Jp8vlyhyfvh5mZmWarVq3M7777zu3Pcm3nyXvi4cOHzSZNmpjx8fFmdHS0+corr5Q7j9rGk/dFPmfVFyPecE55eXnauHGjBgwY4NpmsVg0YMAArV69Wrm5uTIMQ/7+/q79NptNFotFP//8s2ub0+nUN998oxtuuKHE93E6ncrMzFRoaGjlJVMLlHW93FUR1ys9PV2SuKalcPdazZ07Vw0bNlS7du00efJkZWVlFTnPyZMn9fPPP5c6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\n",
"text/plain": [
"<Figure size 1500x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"### WebP file sizes"
],
"metadata": {
"id": "iSzj4bRXvkRH"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
"mobile_webp_sizes AS (\n",
" SELECT\n",
" has_webp,\n",
" APPROX_QUANTILES(bytesImg, 1000)[OFFSET(500)] / 1024 / 1024 AS median_img_mbytes\n",
" FROM (\n",
" SELECT DISTINCT\n",
" url,\n",
" info AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_mobile`\n",
" WHERE\n",
" app = 'WordPress')\n",
" JOIN (\n",
" SELECT\n",
" url,\n",
" has_webp,\n",
" bytesImg\n",
" FROM (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_webp\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_mobile`\n",
" GROUP BY\n",
" pageid)\n",
" JOIN (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" bytesImg\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_mobile`)\n",
" USING\n",
" (pageid))\n",
" USING\n",
" (url)\n",
" GROUP BY\n",
" has_webp\n",
"),\n",
"desktop_webp_sizes AS (\n",
" SELECT\n",
" has_webp,\n",
" APPROX_QUANTILES(bytesImg, 1000)[OFFSET(500)] / 1024 / 1024 AS median_img_mbytes\n",
" FROM (\n",
" SELECT DISTINCT\n",
" url,\n",
" info AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_desktop`\n",
" WHERE\n",
" app = 'WordPress')\n",
" JOIN (\n",
" SELECT\n",
" url,\n",
" has_webp,\n",
" bytesImg\n",
" FROM (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_webp\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_desktop`\n",
" GROUP BY\n",
" pageid)\n",
" JOIN (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" bytesImg\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_desktop`)\n",
" USING\n",
" (pageid))\n",
" USING\n",
" (url)\n",
" GROUP BY\n",
" has_webp\n",
"),\n",
"all_sizes AS (\n",
"SELECT 'mobile' AS type, has_webp, median_img_mbytes FROM mobile_webp_sizes\n",
"UNION ALL\n",
"SELECT 'desktop' AS type, has_webp, median_img_mbytes FROM desktop_webp_sizes\n",
"GROUP BY type, has_webp, median_img_mbytes\n",
"),\n",
"webp_gains AS (\n",
" SELECT\n",
" type,\n",
" ( MAX(median_img_mbytes) - MIN(median_img_mbytes ) ) / MAX(median_img_mbytes) AS median_webp_reduction\n",
" FROM all_sizes\n",
" GROUP BY type\n",
")\n",
"SELECT * FROM webp_gains\n",
"\n",
"\n",
"\n",
"\"\"\"\n",
"webp_file_sizes = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "10CGwWSEvpe8"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"webp_file_sizes.head(1000)"
],
"metadata": {
"id": "Tsj04pSsweYT",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 165
},
"outputId": "25429a49-6007-495b-f6c0-e62c91d7c7e1"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"webp_file_sizes\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"type\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"desktop\",\n \"mobile\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"median_webp_reduction\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0941955882947979,\n \"min\": 0.08552207672296719,\n \"max\": 0.21873475520518273,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.08552207672296719,\n 0.21873475520518273\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "webp_file_sizes"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"mobile\",\n{\n 'v': 0.21873475520518273,\n 'f': \"0.21873475520518273\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"desktop\",\n{\n 'v': 0.08552207672296719,\n 'f': \"0.08552207672296719\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"type\"], [\"number\", \"median_webp_reduction\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-a35af695-8855-46be-825c-12c2a127dced\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a35af695-8855-46be-825c-12c2a127dced')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-a35af695-8855-46be-825c-12c2a127dced button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-515f2366-d6fc-498a-8a59-48b1379f0680\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>median_webp_reduction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>mobile</td>\n",
" <td>0.218735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>desktop</td>\n",
" <td>0.085522</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-515f2366-d6fc-498a-8a59-48b1379f0680')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-515f2366-d6fc-498a-8a59-48b1379f0680 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-515f2366-d6fc-498a-8a59-48b1379f0680');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-e9ccdfd4-4f02-46ed-ad04-fdd2a3844cb1\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e9ccdfd4-4f02-46ed-ad04-fdd2a3844cb1')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-e9ccdfd4-4f02-46ed-ad04-fdd2a3844cb1 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" type median_webp_reduction\n",
"0 mobile 0.218735\n",
"1 desktop 0.085522"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"# plot out the median_webp_reduction on a chart. Show the percent reduction in size for both mobile and desktop on a bar chart\n",
"plt.figure(figsize=(10, 10))\n",
"plt.bar(webp_file_sizes['type'], webp_file_sizes['median_webp_reduction'] )\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))\n",
"\n",
"\n"
],
"metadata": {
"id": "l6sDNsM7wo--",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 830
},
"outputId": "da957d6c-bdf7-4c88-96b3-9f11d0efd90c"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAMtCAYAAABdPqrFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArg0lEQVR4nO3de7TVdZ3/8dcJFQ04hxDkopi3MLVEJxUJdShNvIRWlqsytXSyCCUGsnQyNS9LzbyUunTUUisdtZXaxVLzcrAMNBG8FDraQKImTSoHMD3iYf/+6NeeOcGoKEes9+Ox1nd59vf6+Zy1PHs92Xt/d0uj0WgEAACgmDet7gEAAACsDmIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUNIaq3sAq8KyZcvyxBNPpF+/fmlpaVndwwEAAFaTRqORxYsXZ9iwYXnTm176tZ9/iBh64oknMnz48NU9DAAA4A1i/vz52WCDDV5yn3+IGOrXr1+Sv0y4tbV1NY8GAABYXRYtWpThw4c3G+Gl/EPE0F/fGtfa2iqGAACAV/TxGTdQAAAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWus7gH8o9roqOtX9xAAesy8U/de3UMAgNfMK0MAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChppWLolFNOyfbbb59+/fplvfXWywc+8IE89NBD3fZ5/vnnM3HixKy77rrp27dv9ttvvyxYsKC5/emnn8748ePTt2/fbLvttpk1a1a34ydOnJgzzjjjNUwJAADg5a1UDE2bNi0TJ07MjBkz8vOf/zxLly7N7rvvnmeffba5z7/+67/mxz/+cb7//e9n2rRpeeKJJ/KhD32ouf3kk0/O4sWLc88992Ts2LH59Kc/3dw2Y8aM3HnnnZk8efJrnxkAAMBLWGNldr7hhhu6Pb700kuz3nrrZebMmdlll13S0dGRb33rW7niiivy3ve+N0lyySWXZIsttsiMGTOy4447Zs6cOfnoRz+aESNG5LDDDsuFF16YJFm6dGk++9nP5uKLL06vXr1W0fQAAABW7DV9ZqijoyNJMmDAgCTJzJkzs3Tp0uy2227Nfd7+9rdnww03zPTp05MkI0eOzK233poXX3wxN954Y7beeuskyde+9rWMHTs222233ctet7OzM4sWLeq2AAAArIxXHUPLli3L5MmTM2bMmLzjHe9Ikjz55JNZa6210r9//277Dh48OE8++WSS5Kijjsoaa6yRTTfdNNdee22+9a1v5eGHH85ll12Wr3zlK/nsZz+bTTbZJPvvv38ztv7WKaeckra2tuYyfPjwVzsNAACgqFcdQxMnTswDDzyQK6+8cqWOa2tryxVXXJHf//73mTZtWrbccst85jOfyemnn57LL788//Vf/5WHHnoob37zm3PCCSes8BxHH310Ojo6msv8+fNf7TQAAICiXlUMHX744fnJT36S2267LRtssEFz/ZAhQ/LCCy9k4cKF3fZfsGBBhgwZssJzXXLJJenfv3/23XfftLe35wMf+EDWXHPNfOQjH0l7e/sKj+ndu3daW1u7LQAAACtjpWKo0Wjk8MMPz7XXXptbb701G2+8cbft73rXu7Lmmmvmlltuaa576KGH8uijj2b06NHLne+///u/c8IJJ+Scc85JknR1dWXp0qVJ/nJDha6urpWeEAAAwCuxUneTmzhxYq644or88Ic/TL9+/ZqfA2pra8s666yTtra2HHrooZkyZUoGDBiQ1tbWHHHEERk9enR23HHH5c43efLkTJ06Neuvv36SZMyYMfnud7+b3XffPRdeeGHGjBmzCqYIAACwvJV6Zej8889PR0dHxo4dm6FDhzaXq666qrnPWWedlfe///3Zb7/9sssuu2TIkCG55pprljvXjTfemEceeSSf+9znmusOP/zwbLLJJhk1alReeOGFHHfcca9hagAAAP+3lkaj0Vjdg3itFi1alLa2tnR0dLxhPj+00VHXr+4hAPSYeafuvbqHAAArtDJt8Jq+ZwgAAODvlRgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWtdAzdfvvtGT9+fIYNG5aWlpZcd9113bZ/8pOfTEtLS7dljz32aG7v7OzMgQcemNbW1owYMSI333xzt+NPP/30HHHEEa9uNgAAAK/QGit7wLPPPpuRI0fmkEMOyYc+9KEV7rPHHnvkkksuaT7u3bt38+cLL7wwM2fOzPTp0/Ozn/0sH//4x7NgwYK0tLRk7ty5ueiii3L33Xe/iqkAAAC8cisdQ3vuuWf23HPPl9ynd+/eGTJkyAq3zZkzJ/vss0+22mqrbLLJJjnyyCPzpz/9KYMGDcqECRNy2mmnpbW19SXP39nZmc7OzubjRYsWrew0AACA4nrkM0Pt7e1Zb731svnmm2fChAl56qmnmttGjhyZX/7yl3nuuedy4403ZujQoRk4cGAuv/zyrL322vngBz/4suc/5ZRT0tbW1lyGDx/eE9MAAAD+ga3yGNpjjz3yne98J7fccktOO+20TJs2LXvuuWe6urqSJIccckhGjhyZLbfcMieffHKuvvrqPPPMMzn22GNzzjnn5Jhjjslmm22WcePG5fHHH1/hNY4++uh0dHQ0l/nz56/qaQAAAP/gVvptci/nox/9aPPnd77zndl6662z6aabpr29PbvuumvWXHPNnHfeed2O+dSnPpVJkyZl1qxZue6663Lvvffma1/7WiZNmpQf/OAHy12jd+/e3T6HBAAAsLJ6/Nbam2yySQYOHJhHHnlkhdtvu+22/OY3v8nhhx+e9vb27LXXXunTp0/233//tLe39/TwAACAolb5K0N/67HHHstTTz2VoUOHLrft+eefz8SJE3P55ZenV69e6erqSqPRSJIsXbq0+dY6AACAVW2lXxlasmRJZs+endmzZydJ5s6dm9mzZ+fRRx/NkiVLcuSRR2bGjBmZN29ebrnlluy7777NzwD9rRNPPDF77bVXtt122yTJmDFjcs011+S+++7LueeemzFjxry22QEAAPwfVvqVobvvvjvvec97mo+nTJmSJDn44INz/vnn57777stll12WhQsXZtiwYdl9991z4oknLvcZnwceeCBXX311M6qS5MMf/nDa29uz8847Z/PNN88VV1zxKqcFAADw0loaf31f2t+xRYsWpa2tLR0dHS/7HUWvl42Oun51DwGgx8w7de/VPQQAWKGVaYMev4ECAADAG5EYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoaaVj6Pbbb8/48eMzbNiwtLS05Lrrruu2vdFo5Nhjj83QoUOzzjrrZLfddsvDDz/c3N7Z2ZkDDzwwra2tGTFiRG6++eZux59++uk54ogjXt1sAAAAXqGVjqFnn302I0eOzHnnnbfC7V/72tfyzW9+MxdccEHuvPPO9OnTJ+PGjcvzzz+fJLnwwgszc+bMTJ8+PYcddlg+/vGPp9FoJEnmzp2biy66KCeffPJrmBIAAMDLW2NlD9hzzz2z5557rnBbo9HI2WefnWOOOSb77rtvkuQ73/lOBg8enOuuuy4f/ehHM2fOnOyzzz7Zaqutsskmm+TII4/Mn/70pwwaNCgTJkzIaaedltbW1tc2KwAAgJexSj8zNHfu3Dz55JPZbbfdmuva2toyatSoTJ8+PUkycuTI/PKXv8xzzz2XG2+8MUOHDs3AgQNz+eWXZ+21184HP/jBl71OZ2dnFi1a1G0BAABYGas0hp588skkyeDBg7utHzx4cHPbIYcckpEjR2bLLbfMySefnKuvvjrPPPNMjj322Jxzzjk55phjstlmm2XcuHF5/PHHV3idU045JW1tbc1l+PDhq3IaAABAAa/73eTWXHPNnHfeeZk7d25+/etfZ6eddsrUqVMzadKkzJo1K9ddd13uvffe7Ljjjpk0adIKz3H00Ueno6OjucyfP/91ngUAAPD3bpXG0JAhQ5IkCxYs6LZ+wYIFzW1/67bbbstvfvObHH744Wlvb89ee+2VPn36ZP/99097e/sKj+ndu3daW1u7LQAAACtjlcbQxhtvnCFDhuSWW25prlu0aFHuvPPOjB49ern9n3/++UycODH//u//nl69eqWrqytLly5NkixdujRdXV2rcngAAABNKx1DS5YsyezZszN79uwkf7lpwuzZs/Poo4+mpaUlkydPzkknnZQf/ehHuf/++3PQQQdl2LBh+cAHPrDcuU488cTstdde2XbbbZMkY8aMyTXXXJP77rsv5557bsaMGfOaJgcAAPB/Welba9999915z3ve03w8ZcqUJMnBBx+cSy+9NF/84hfz7LPP5rDDDsvChQuz00475YYbbsjaa6/d7TwPPPBArr766mZUJcmHP/zhtLe3Z+edd87mm2+eK6644lVOCwAA4KW1NP76jad/xxYtWpS2trZ0dHS8YT4/tNFR16/uIQD0mHmn7r26hwAAK7QybfC6300OAADgjUAMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJa2xugcAAFVsdNT1q3sIAD1m3ql7r+4hrDSvDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoKRVHkPHH398Wlpaui1vf/vbm9unTJmSAQMGZPjw4bn88su7Hfv9738/48ePX9VDAgAAWM4aPXHSrbbaKjfffPP/XGSNv1zmxz/+ca644orcdNNNefjhh3PIIYdk3LhxGThwYDo6OvLlL3+523EAAAA9pUfeJrfGGmtkyJAhzWXgwIFJkjlz5mTs2LHZbrvt8rGPfSytra2ZO3dukuSLX/xiJkyYkA033LAnhgQAANBNj8TQww8/nGHDhmWTTTbJAQcckEcffTRJMnLkyNx999155plnMnPmzDz33HPZbLPN8stf/jL33HNPJk2a9IrO39nZmUWLFnVbAAAAVsYqj6FRo0bl0ksvzQ033JDzzz8/c+fOzc4775zFixdn3Lhx+cQnPpHtt98+n/zkJ3PZZZelT58+mTBhQi644IKcf/752XzzzTNmzJj85je/+T+vccopp6Stra25DB8+fFVPAwAA+AfX0mg0Gj15gYULF+atb31rzjzzzBx66KHLbf/qV7+ahQsX5lOf+lR233333H///fnJT36Sc889NzNnzlzhOTs7O9PZ2dl8vGjRogwfPjwdHR1pbW3tsbmsjI2Oun51DwGgx8w7de/VPYS/S54bgH9kb5TnhkWLFqWtre0VtUGP3EDhf+vfv39GjBiRRx55ZLltDz74YL73ve9l1qxZ+fa3v51ddtklgwYNyv77759DDjkkixcvTr9+/ZY7rnfv3undu3dPDx0AAPgH1uPfM7RkyZL87ne/y9ChQ7utbzQa+cxnPpMzzzwzffv2TVdXV5YuXZokzf92dXX19PAAAICiVnkMfeELX8i0adMyb968/OpXv8oHP/jB9OrVKx/72Me67XfxxRdn0KBBze8VGjNmTG699dbMmDEjZ511Vrbccsv0799/VQ8PAAAgSQ+8Te6xxx7Lxz72sTz11FMZNGhQdtppp8yYMSODBg1q7rNgwYKcfPLJ+dWvftVct8MOO2Tq1KnZe++9s9566+Wyyy5b1UMDAABoWuUxdOWVV77sPoMHD868efOWW3/sscfm2GOPXdVDAgAAWE6Pf2YIAADgjUgMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSeiyGzjvvvGy00UZZe+21M2rUqNx1113NbVOmTMmAAQMyfPjwXH755d2O+/73v5/x48f31LAAAACSJGv0xEmvuuqqTJkyJRdccEFGjRqVs88+O+PGjctDDz2UO++8M1dccUVuuummPPzwwznkkEMybty4DBw4MB0dHfnyl7+cm2++uSeGBQAA0NQjMXTmmWfm05/+dD71qU8lSS644IJcf/31+fa3v503velNGTt2bLbbbrtst912mTx5cubOnZuBAwfmi1/8YiZMmJANN9zwJc/f2dmZzs7O5uOOjo4kyaJFi3piOq/Kss4/r+4hAPSYN9Lf278nnhuAf2RvlOeGv46j0Wi8/M6NVayzs7PRq1evxrXXXttt/UEHHdTYZ599GjfccENj0003bTz99NONu+++u9GvX7/G008/3fjFL37R2G677Rovvvjiy17juOOOaySxWCwWi8VisVgslhUu8+fPf9muWOWvDP3pT39KV1dXBg8e3G394MGD8+CDD2bcuHH5xCc+ke233z7rrLNOLrvssvTp0ycTJkzIpZdemvPPPz/nnHNOBg4cmAsvvDBbbbXVctc4+uijM2XKlObjZcuW5emnn866666blpaWVT0leENbtGhRhg8fnvnz56e1tXV1DweANwjPD1TVaDSyePHiDBs27GX37ZG3yb2c448/Pscff3zz8Ve/+tXstttuWXPNNXPSSSfl/vvvz09+8pMcdNBBmTlz5nLH9+7dO7179+62rn///j08anhja21t9WQHwHI8P1BRW1vbK9pvld9NbuDAgenVq1cWLFjQbf2CBQsyZMiQ5fZ/8MEH873vfS8nnnhi2tvbs8suu2TQoEHZf//9c88992Tx4sWreogAAACrPobWWmutvOtd78ott9zSXLds2bLccsstGT16dLd9G41GPvOZz+TMM89M375909XVlaVLlyZJ879dXV2reogAAAA98za5KVOm5OCDD852222XHXbYIWeffXaeffbZ5t3l/uriiy/OoEGDmt8rNGbMmBx//PGZMWNGfvazn2XLLbf09jd4Gb17985xxx233FtHAajN8wO8vJZG45Xcc27lnXvuuTn99NPz5JNPZptttsk3v/nNjBo1qrl9wYIFGTVqVH71q191+3DTCSeckG984xtZb731ctlll2WHHXboieEBAADF9VgMAQAAvJGt8s8MAQAA/D0QQwAAQEliCAAAKEkMwd+5sWPHZvLkyS+5z0YbbZSzzz67+bilpSXXXXddj44LgJXzSv6evxLt7e1paWnJwoULX/O54B9dj9xaG3hj+fWvf50+ffqs7mEA8AYwb968bLzxxpk1a1a22Wab1T0cWK3EEBQwaNCg1T0EAIA3HG+Tg9fR2LFjc8QRR2Ty5Ml5y1veksGDB+eiiy5qfilxv379stlmm+VnP/tZ85hp06Zlhx12SO/evTN06NAcddRRefHFF7ud98UXX8zhhx+etra2DBw4MF/5ylfyv++a/7dvk/tb8+fPz/7775/+/ftnwIAB2XfffTNv3rxVPX0A/r9nn302Bx10UPr27ZuhQ4fmjDPO6La9s7MzX/jCF7L++uunT58+GTVqVNrb25vbf//732f8+PF5y1vekj59+mSrrbbKT3/60xVe689//nP23HPPjBkzJgsXLszGG2+cJNl2223T0tKSsWPHJkmWLVuWE044IRtssEF69+6dbbbZJjfccEPzPPPmzUtLS0uuvPLKvPvd787aa6+dd7zjHZk2bdqq/eXA60gMwevssssuy8CBA3PXXXfliCOOyIQJE/KRj3wk7373u3PPPfdk9913z4EHHpg///nPefzxx7PXXntl++23z7333pvzzz8/3/rWt3LSSSctd8411lgjd911V77xjW/kzDPPzMUXX/yKxrN06dKMGzcu/fr1yy9+8Yvccccd6du3b/bYY4+88MILPfErACjvyCOPzLRp0/LDH/4wN910U9rb23PPPfc0tx9++OGZPn16rrzyytx33335yEc+kj322CMPP/xwkmTixInp7OzM7bffnvvvvz+nnXZa+vbtu9x1Fi5cmPe9731ZtmxZfv7zn6d///656667kiQ333xz/vCHP+Saa65JknzjG9/IGWecka9//eu57777Mm7cuOyzzz7Na/7vsU+dOjWzZs3K6NGjM378+Dz11FM99auCntUAXjf//M//3Nhpp52aj1988cVGnz59GgceeGBz3R/+8IdGksb06dMb//Zv/9bYfPPNG8uWLWtuP++88xp9+/ZtdHV1Nc+5xRZbdNvnS1/6UmOLLbZoPn7rW9/aOOuss5qPkzSuvfbaRqPRaHz3u99d7hqdnZ2NddZZp3HjjTeusrkD8BeLFy9urLXWWo2rr766ue6pp55qrLPOOo3Pf/7zjd///veNXr16NR5//PFux+26666No48+utFoNBrvfOc7G8cff/wKz3/bbbc1kjTmzJnT2HrrrRv77bdfo7Ozs7l97ty5jSSNWbNmdTtu2LBhjZNPPrnbuu23377xuc99rttxp556anP70qVLGxtssEHjtNNOW/lfBLwB+MwQvM623nrr5s+9evXKuuuum3e+853NdYMHD06S/PGPf8ycOXMyevTotLS0NLePGTMmS5YsyWOPPZYNN9wwSbLjjjt222f06NE544wz0tXVlV69er3keO6999488sgj6devX7f1zz//fH73u9+9+okCsEK/+93v8sILL2TUqFHNdQMGDMjmm2+eJLn//vvT1dWVESNGdDuus7Mz6667bpJk0qRJmTBhQm666abstttu2W+//bo9vyTJ+973vuywww656qqrXva5YNGiRXniiScyZsyYbuvHjBmTe++9t9u60aNHN39eY401st1222XOnDmvcPbwxiKG4HW25pprdnvc0tLSbd1fo2bZsmWvy3iWLFmSd73rXbn88suX2+bGCwCvvyVLlqRXr16ZOXPmchHz17fC/cu//EvGjRuX66+/PjfddFNOOeWUnHHGGTniiCOa++699975wQ9+kN/+9rfd/tEN+B8+MwRvYFtssUWmT5/e7WYId9xxR/r165cNNtigue7OO+/sdtyMGTPytre97WX/JTBJ/umf/ikPP/xw1ltvvWy22Wbdlra2tlU3GQCSJJtuumnWXHPNbn+7n3nmmfznf/5nkr/c2KCrqyt//OMfl/u7PGTIkOYxw4cPz2c/+9lcc801mTp1ai666KJu1zn11FNz8MEHZ9ddd81vf/vb5vq11lorSdLV1dVc19rammHDhuWOO+7odo477rgjW265Zbd1M2bMaP784osvZubMmdliiy1e7a8DVisxBG9gn/vc5zJ//vwcccQRefDBB/PDH/4wxx13XKZMmZI3vel//vd99NFHM2XKlDz00EP5j//4j5xzzjn5/Oc//4quccABB2TgwIHZd99984tf/CJz585Ne3t7Jk2alMcee6ynpgZQVt++fXPooYfmyCOPzK233poHHnggn/zkJ5t/10eMGJEDDjggBx10UK655prMnTs3d911V0455ZRcf/31SZLJkyfnxhtvzNy5c3PPPffktttuW2GQfP3rX88BBxyQ9773vXnwwQeTJOutt17WWWed3HDDDVmwYEE6OjqS/OXGCKeddlquuuqqPPTQQznqqKMye/bs5Z5PzjvvvFx77bV58MEHM3HixDzzzDM55JBDevJXBj3G2+TgDWz99dfPT3/60xx55JEZOXJkBgwYkEMPPTTHHHNMt/0OOuigPPfcc9lhhx3Sq1evfP7zn89hhx32iq7x5je/Obfffnu+9KUv5UMf+lAWL16c9ddfP7vuumtaW1t7YloA5Z1++ulZsmRJxo8fn379+mXq1KnNKEmSSy65JCeddFKmTp2axx9/PAMHDsyOO+6Y97///Un+8qrOxIkT89hjj6W1tTV77LFHzjrrrBVe66yzzkpXV1fe+973pr29PSNGjMg3v/nNnHDCCTn22GOz8847N/8RrKOjI1OnTs0f//jHbLnllvnRj36Ut73tbd3Od+qpp+bUU0/N7Nmzs9lmm+VHP/pRBg4c2HO/LOhBLY3//f4bAABYgXnz5mXjjTfOrFmzss0226zu4cAq4W1yAABASWIIAAAoydvkAACAkrwyBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoKT/B7tZjE5p6dZjAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"### WebP File size reduction - total"
],
"metadata": {
"id": "N0FJNWFnvj7L"
}
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"id": "NzTBnlU7r1C0"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
"mobile_avif_sizes AS (\n",
" SELECT\n",
" has_avif,\n",
" SUM(bytesImg) / 1024 AS total_img_mbytes\n",
" FROM (\n",
" SELECT DISTINCT\n",
" url,\n",
" info AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_mobile`\n",
" WHERE\n",
" app = 'WordPress')\n",
" JOIN (\n",
" SELECT\n",
" url,\n",
" has_avif,\n",
" bytesImg\n",
" FROM (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_avif\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_mobile`\n",
" GROUP BY\n",
" pageid)\n",
" JOIN (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" bytesImg\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_mobile`)\n",
" USING\n",
" (pageid))\n",
" USING\n",
" (url)\n",
" GROUP BY\n",
" has_avif\n",
"),\n",
"desktop_avif_sizes AS (\n",
" SELECT\n",
" has_avif,\n",
" SUM(bytesImg) / 1024 AS total_img_mbytes\n",
" FROM (\n",
" SELECT DISTINCT\n",
" url,\n",
" info AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_desktop`\n",
" WHERE\n",
" app = 'WordPress')\n",
" JOIN (\n",
" SELECT\n",
" url,\n",
" has_avif,\n",
" bytesImg\n",
" FROM (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_avif\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_desktop`\n",
" GROUP BY\n",
" pageid)\n",
" JOIN (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" bytesImg\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_desktop`)\n",
" USING\n",
" (pageid))\n",
" USING\n",
" (url)\n",
" GROUP BY\n",
" has_avif\n",
"),\n",
"all_sizes AS (\n",
"SELECT 'mobile' AS type, has_avif, total_img_mbytes FROM mobile_avif_sizes\n",
"UNION ALL\n",
"SELECT 'desktop' AS type, has_avif, total_img_mbytes FROM desktop_avif_sizes\n",
"GROUP BY type, has_avif, total_img_mbytes\n",
"),\n",
"avif_gains AS (\n",
" SELECT\n",
" type,\n",
" MAX( total_img_mbytes ) - MIN( total_img_mbytes ) AS saved_img_mbytes\n",
" FROM all_sizes\n",
" GROUP BY type\n",
")\n",
"SELECT * FROM avif_gains\n",
"\n",
"\n",
"\n",
"\"\"\"\n",
"webp_file_sizes_totals = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "mB6YY7GIr1xM"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"webp_file_sizes_totals.head(1000)"
],
"metadata": {
"id": "UuB5epmpsQI8",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 165
},
"outputId": "6547e156-65f4-4270-99b0-59415f721547"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"webp_file_sizes_totals\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"type\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"desktop\",\n \"mobile\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"saved_img_mbytes\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1984642480.2609937,\n \"min\": 7487636831.504883,\n \"max\": 10294345143.551758,\n \"num_unique_values\": 2,\n \"samples\": [\n 7487636831.504883,\n 10294345143.551758\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "webp_file_sizes_totals"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"mobile\",\n{\n 'v': 10294345143.551758,\n 'f': \"10294345143.551758\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"desktop\",\n{\n 'v': 7487636831.504883,\n 'f': \"7487636831.504883\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"type\"], [\"number\", \"saved_img_mbytes\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-4563b094-60b4-4697-ab83-c3a5eb458108\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4563b094-60b4-4697-ab83-c3a5eb458108')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-4563b094-60b4-4697-ab83-c3a5eb458108 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-eef94dbe-26a1-4bc5-8dee-710cf2ad0caa\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>saved_img_mbytes</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>mobile</td>\n",
" <td>1.029435e+10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>desktop</td>\n",
" <td>7.487637e+09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-eef94dbe-26a1-4bc5-8dee-710cf2ad0caa')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-eef94dbe-26a1-4bc5-8dee-710cf2ad0caa button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-eef94dbe-26a1-4bc5-8dee-710cf2ad0caa');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-ec5be0e9-b16f-4484-946c-c9acd64e85ad\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-ec5be0e9-b16f-4484-946c-c9acd64e85ad')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-ec5be0e9-b16f-4484-946c-c9acd64e85ad button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" type saved_img_mbytes\n",
"0 mobile 1.029435e+10\n",
"1 desktop 7.487637e+09"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "markdown",
"source": [
"# AVIF"
],
"metadata": {
"id": "7llyGg_6teZ0"
}
},
{
"cell_type": "markdown",
"source": [
"### AVIF by WordPress version"
],
"metadata": {
"id": "u9iHNucPvCx6"
}
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"id": "BUw7Wa5VvjEu"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"SELECT\n",
" mobile.version,\n",
" ROUND(pct_avif_mobile, 3) AS pct_avif_mobile,\n",
" ROUND(pct_avif_desktop, 3) AS pct_avif_desktop,\n",
" mobile_pages + desktop_pages AS total_pages,\n",
" pages_with_avif_mobile + pages_with_avif_desktop AS total_pages_with_avif\n",
"\n",
"FROM\n",
" (\n",
" SELECT\n",
" version,\n",
" pct_avif AS pct_avif_mobile,\n",
" pages AS mobile_pages,\n",
" pages_with_avif AS pages_with_avif_mobile\n",
" FROM\n",
" (\n",
" SELECT\n",
" version,\n",
" COUNTIF(has_avif) AS pages_with_avif,\n",
" COUNT(0) AS pages,\n",
" COUNTIF(has_avif) / COUNT(0) AS pct_avif\n",
" FROM\n",
" (\n",
" SELECT DISTINCT\n",
" url,\n",
" REGEXP_EXTRACT(info, r'(\\d\\.\\d+)') AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_mobile`\n",
" WHERE\n",
" app = 'WordPress'\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" url,\n",
" has_avif\n",
" FROM\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'avif') > 0 AS has_avif\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_mobile`\n",
" GROUP BY\n",
" pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_mobile`\n",
" )\n",
" USING (pageid)\n",
" )\n",
" USING (url)\n",
" WHERE version IS NOT NULL\n",
" GROUP BY\n",
" version\n",
" ORDER BY\n",
" version ASC\n",
" )\n",
" WHERE pages > 1500\n",
" ) AS mobile\n",
"JOIN\n",
" (\n",
" SELECT\n",
" version,\n",
" pct_avif AS pct_avif_desktop,\n",
" pages AS desktop_pages,\n",
" pages_with_avif AS pages_with_avif_desktop\n",
" FROM\n",
" (\n",
" SELECT\n",
" version,\n",
" COUNTIF(has_avif) AS pages_with_avif,\n",
" COUNT(0) AS pages,\n",
" COUNTIF(has_avif) / COUNT(0) AS pct_avif\n",
" FROM\n",
" (\n",
" SELECT DISTINCT\n",
" url,\n",
" REGEXP_EXTRACT(info, r'(\\d\\.\\d+)') AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_desktop`\n",
" WHERE\n",
" app = 'WordPress'\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" url,\n",
" has_avif\n",
" FROM\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'avif') > 0 AS has_avif\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_desktop`\n",
" GROUP BY\n",
" pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_desktop`\n",
" )\n",
" USING (pageid)\n",
" )\n",
" USING (url)\n",
" WHERE version IS NOT NULL\n",
" GROUP BY\n",
" version\n",
" ORDER BY\n",
" version ASC\n",
" )\n",
" WHERE pages > 1500\n",
" ) AS desktop\n",
" ON mobile.version = desktop.version\n",
" ORDER BY mobile.version ASC\n",
"\"\"\"\n",
"\n",
"avif_in_wordpress = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "ZTJRgpKovAtz"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"avif_in_wordpress.head(1000)"
],
"metadata": {
"id": "gzDVXkLYtm97",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "596a54d0-b88f-4456-938d-30f9df232dd6"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"avif_in_wordpress\",\n \"rows\": 27,\n \"fields\": [\n {\n \"column\": \"version\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 27,\n \"samples\": [\n \"4.9\",\n \"5.4\",\n \"5.0\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_avif_mobile\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0015030832509409647,\n \"min\": 0.0,\n \"max\": 0.005,\n \"num_unique_values\": 3,\n \"samples\": [\n 0.0,\n 0.004,\n 0.005\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_avif_desktop\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0016233692233523574,\n \"min\": 0.0,\n \"max\": 0.006,\n \"num_unique_values\": 5,\n \"samples\": [\n 0.001,\n 0.006,\n 0.004\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"total_pages\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 27,\n \"samples\": [\n 101664,\n 64712,\n 17970\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"total_pages_with_avif\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 19,\n \"samples\": [\n 0,\n 5,\n 22\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "avif_in_wordpress"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"4.1\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 3944,\n 'f': \"3944\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"4.2\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 5086,\n 'f': \"5086\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"4.3\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 6649,\n 'f': \"6649\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"4.4\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 8618,\n 'f': \"8618\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"4.5\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 8207,\n 'f': \"8207\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"4.6\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 9228,\n 'f': \"9228\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"4.7\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 25190,\n 'f': \"25190\",\n },\n{\n 'v': 4,\n 'f': \"4\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"4.8\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 22769,\n 'f': \"22769\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"4.9\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 101664,\n 'f': \"101664\",\n },\n{\n 'v': 7,\n 'f': \"7\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"5.0\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 17970,\n 'f': \"17970\",\n },\n{\n 'v': 4,\n 'f': \"4\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"5.1\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 32130,\n 'f': \"32130\",\n },\n{\n 'v': 3,\n 'f': \"3\",\n }],\n [{\n 'v': 11,\n 'f': \"11\",\n },\n\"5.2\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 48657,\n 'f': \"48657\",\n },\n{\n 'v': 8,\n 'f': \"8\",\n }],\n [{\n 'v': 12,\n 'f': \"12\",\n },\n\"5.3\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 51962,\n 'f': \"51962\",\n },\n{\n 'v': 5,\n 'f': \"5\",\n }],\n [{\n 'v': 13,\n 'f': \"13\",\n },\n\"5.4\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 64712,\n 'f': \"64712\",\n },\n{\n 'v': 9,\n 'f': \"9\",\n }],\n [{\n 'v': 14,\n 'f': \"14\",\n },\n\"5.5\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 58340,\n 'f': \"58340\",\n },\n{\n 'v': 12,\n 'f': \"12\",\n }],\n [{\n 'v': 15,\n 'f': \"15\",\n },\n\"5.6\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 55816,\n 'f': \"55816\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 16,\n 'f': \"16\",\n },\n\"5.7\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 72101,\n 'f': \"72101\",\n },\n{\n 'v': 13,\n 'f': \"13\",\n }],\n [{\n 'v': 17,\n 'f': \"17\",\n },\n\"5.8\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 105848,\n 'f': \"105848\",\n },\n{\n 'v': 14,\n 'f': \"14\",\n }],\n [{\n 'v': 18,\n 'f': \"18\",\n },\n\"5.9\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 112696,\n 'f': \"112696\",\n },\n{\n 'v': 17,\n 'f': \"17\",\n }],\n [{\n 'v': 19,\n 'f': \"19\",\n },\n\"6.0\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 124077,\n 'f': \"124077\",\n },\n{\n 'v': 22,\n 'f': \"22\",\n }],\n [{\n 'v': 20,\n 'f': \"20\",\n },\n\"6.1\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 160986,\n 'f': \"160986\",\n },\n{\n 'v': 38,\n 'f': \"38\",\n }],\n [{\n 'v': 21,\n 'f': \"21\",\n },\n\"6.2\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 190152,\n 'f': \"190152\",\n },\n{\n 'v': 43,\n 'f': \"43\",\n }],\n [{\n 'v': 22,\n 'f': \"22\",\n },\n\"6.3\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 148865,\n 'f': \"148865\",\n },\n{\n 'v': 61,\n 'f': \"61\",\n }],\n [{\n 'v': 23,\n 'f': \"23\",\n },\n\"6.4\",\n{\n 'v': 0.0,\n 'f': \"0.0\",\n },\n{\n 'v': 0.001,\n 'f': \"0.001\",\n },\n{\n 'v': 356878,\n 'f': \"356878\",\n },\n{\n 'v': 177,\n 'f': \"177\",\n }],\n [{\n 'v': 24,\n 'f': \"24\",\n },\n\"6.5\",\n{\n 'v': 0.004,\n 'f': \"0.004\",\n },\n{\n 'v': 0.004,\n 'f': \"0.004\",\n },\n{\n 'v': 469739,\n 'f': \"469739\",\n },\n{\n 'v': 1882,\n 'f': \"1882\",\n }],\n [{\n 'v': 25,\n 'f': \"25\",\n },\n\"6.6\",\n{\n 'v': 0.005,\n 'f': \"0.005\",\n },\n{\n 'v': 0.005,\n 'f': \"0.005\",\n },\n{\n 'v': 2016481,\n 'f': \"2016481\",\n },\n{\n 'v': 10083,\n 'f': \"10083\",\n }],\n [{\n 'v': 26,\n 'f': \"26\",\n },\n\"6.7\",\n{\n 'v': 0.005,\n 'f': \"0.005\",\n },\n{\n 'v': 0.006,\n 'f': \"0.006\",\n },\n{\n 'v': 2143724,\n 'f': \"2143724\",\n },\n{\n 'v': 11448,\n 'f': \"11448\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"version\"], [\"number\", \"pct_avif_mobile\"], [\"number\", \"pct_avif_desktop\"], [\"number\", \"total_pages\"], [\"number\", \"total_pages_with_avif\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-1dbc793a-c4ca-4b17-adb5-c5b873611da4\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-1dbc793a-c4ca-4b17-adb5-c5b873611da4')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-1dbc793a-c4ca-4b17-adb5-c5b873611da4 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-8f6557c3-4684-49e7-91e7-a1a531800915\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>version</th>\n",
" <th>pct_avif_mobile</th>\n",
" <th>pct_avif_desktop</th>\n",
" <th>total_pages</th>\n",
" <th>total_pages_with_avif</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4.1</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>3944</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>4.2</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>5086</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4.3</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>6649</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4.4</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>8618</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4.5</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>8207</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>4.6</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>9228</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>4.7</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>25190</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>4.8</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>22769</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>4.9</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>101664</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>5.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>17970</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>5.1</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>32130</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>5.2</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>48657</td>\n",
" <td>8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>5.3</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>51962</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>5.4</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>64712</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>5.5</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>58340</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>5.6</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>55816</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>5.7</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>72101</td>\n",
" <td>13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>5.8</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>105848</td>\n",
" <td>14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>5.9</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>112696</td>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>6.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>124077</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>6.1</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>160986</td>\n",
" <td>38</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>6.2</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>190152</td>\n",
" <td>43</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>6.3</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>148865</td>\n",
" <td>61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>6.4</td>\n",
" <td>0.000</td>\n",
" <td>0.001</td>\n",
" <td>356878</td>\n",
" <td>177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>6.5</td>\n",
" <td>0.004</td>\n",
" <td>0.004</td>\n",
" <td>469739</td>\n",
" <td>1882</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>6.6</td>\n",
" <td>0.005</td>\n",
" <td>0.005</td>\n",
" <td>2016481</td>\n",
" <td>10083</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>6.7</td>\n",
" <td>0.005</td>\n",
" <td>0.006</td>\n",
" <td>2143724</td>\n",
" <td>11448</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-8f6557c3-4684-49e7-91e7-a1a531800915')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-8f6557c3-4684-49e7-91e7-a1a531800915 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-8f6557c3-4684-49e7-91e7-a1a531800915');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-9edd971e-de01-450b-a441-fd88f1b09a5f\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-9edd971e-de01-450b-a441-fd88f1b09a5f')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-9edd971e-de01-450b-a441-fd88f1b09a5f button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" version pct_avif_mobile pct_avif_desktop total_pages \\\n",
"0 4.1 0.000 0.000 3944 \n",
"1 4.2 0.000 0.000 5086 \n",
"2 4.3 0.000 0.000 6649 \n",
"3 4.4 0.000 0.000 8618 \n",
"4 4.5 0.000 0.000 8207 \n",
"5 4.6 0.000 0.000 9228 \n",
"6 4.7 0.000 0.000 25190 \n",
"7 4.8 0.000 0.000 22769 \n",
"8 4.9 0.000 0.000 101664 \n",
"9 5.0 0.000 0.000 17970 \n",
"10 5.1 0.000 0.000 32130 \n",
"11 5.2 0.000 0.000 48657 \n",
"12 5.3 0.000 0.000 51962 \n",
"13 5.4 0.000 0.000 64712 \n",
"14 5.5 0.000 0.000 58340 \n",
"15 5.6 0.000 0.000 55816 \n",
"16 5.7 0.000 0.000 72101 \n",
"17 5.8 0.000 0.000 105848 \n",
"18 5.9 0.000 0.000 112696 \n",
"19 6.0 0.000 0.000 124077 \n",
"20 6.1 0.000 0.000 160986 \n",
"21 6.2 0.000 0.000 190152 \n",
"22 6.3 0.000 0.000 148865 \n",
"23 6.4 0.000 0.001 356878 \n",
"24 6.5 0.004 0.004 469739 \n",
"25 6.6 0.005 0.005 2016481 \n",
"26 6.7 0.005 0.006 2143724 \n",
"\n",
" total_pages_with_avif \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 \n",
"5 0 \n",
"6 4 \n",
"7 0 \n",
"8 7 \n",
"9 4 \n",
"10 3 \n",
"11 8 \n",
"12 5 \n",
"13 9 \n",
"14 12 \n",
"15 0 \n",
"16 13 \n",
"17 14 \n",
"18 17 \n",
"19 22 \n",
"20 38 \n",
"21 43 \n",
"22 61 \n",
"23 177 \n",
"24 1882 \n",
"25 10083 \n",
"26 11448 "
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "markdown",
"source": [
"### AVIF Adoption over time"
],
"metadata": {
"id": "gqxgcWB2CmyM"
}
},
{
"cell_type": "code",
"source": [
"# Select the data for both desktop and mobile over the last 12 months.\n",
"# starting with WebP images on WordPress sites\n",
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
" wordpress_sites AS (\n",
" SELECT\n",
" url,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.technologies.*`\n",
" WHERE\n",
" app = 'WordPress'\n",
" AND category = 'CMS'\n",
" AND CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)\n",
" ),\n",
" sites_avif AS (\n",
" SELECT\n",
" url,\n",
" date,\n",
" has_avif\n",
" FROM\n",
" (\n",
" SELECT\n",
" url,\n",
" date\n",
" FROM wordpress_sites\n",
" )\n",
" JOIN\n",
" (\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'avif') > 0 AS has_avif,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_requests.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 36 MONTH)\n",
" GROUP BY date, pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_pages.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 36 MONTH)\n",
" )\n",
" USING (pageid, date)\n",
" )\n",
" USING (url, date)\n",
" )\n",
"SELECT\n",
" date,\n",
" COUNT(DISTINCT (IF(has_avif, url, NULL))) AS pages_with_avif,\n",
" COUNT(DISTINCT url) AS pages,\n",
" COUNT(DISTINCT (IF(has_avif, url, NULL))) / COUNT(DISTINCT url) AS pct_avif\n",
"FROM sites_avif\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"avif_over_time = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "7m4WlRrytxK2"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"avif_over_time.head(1000)"
],
"metadata": {
"id": "iPF7MDiHC_f8",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "c58b7663-b023-42ad-8c40-90bd77f16fe5"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"avif_over_time\",\n \"rows\": 11,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"2024-06-01\",\n \"2024-01-01\",\n \"2024-10-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages_with_avif\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 11337,\n 1665,\n 20731\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 5895890,\n 5294033,\n 5983704\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_avif\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0013391623370848115,\n \"min\": 0.00031450502858595703,\n \"max\": 0.004008336772623856,\n \"num_unique_values\": 11,\n \"samples\": [\n 0.0019228649109803608,\n 0.00031450502858595703,\n 0.0034645764563220375\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "avif_over_time"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-01-01\",\n{\n 'v': 1665,\n 'f': \"1665\",\n },\n{\n 'v': 5294033,\n 'f': \"5294033\",\n },\n{\n 'v': 0.00031450502858595703,\n 'f': \"0.00031450502858595703\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-02-01\",\n{\n 'v': 1876,\n 'f': \"1876\",\n },\n{\n 'v': 5887129,\n 'f': \"5887129\",\n },\n{\n 'v': 0.0003186612693555721,\n 'f': \"0.0003186612693555721\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-03-01\",\n{\n 'v': 2457,\n 'f': \"2457\",\n },\n{\n 'v': 5935372,\n 'f': \"5935372\",\n },\n{\n 'v': 0.00041395888918167216,\n 'f': \"0.00041395888918167216\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-04-01\",\n{\n 'v': 4781,\n 'f': \"4781\",\n },\n{\n 'v': 5926995,\n 'f': \"5926995\",\n },\n{\n 'v': 0.000806648225618547,\n 'f': \"0.000806648225618547\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-05-01\",\n{\n 'v': 8443,\n 'f': \"8443\",\n },\n{\n 'v': 5934368,\n 'f': \"5934368\",\n },\n{\n 'v': 0.0014227294296545142,\n 'f': \"0.0014227294296545142\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-06-01\",\n{\n 'v': 11337,\n 'f': \"11337\",\n },\n{\n 'v': 5895890,\n 'f': \"5895890\",\n },\n{\n 'v': 0.0019228649109803608,\n 'f': \"0.0019228649109803608\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-07-01\",\n{\n 'v': 14015,\n 'f': \"14015\",\n },\n{\n 'v': 5820225,\n 'f': \"5820225\",\n },\n{\n 'v': 0.0024079825092672533,\n 'f': \"0.0024079825092672533\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-08-01\",\n{\n 'v': 15381,\n 'f': \"15381\",\n },\n{\n 'v': 5634864,\n 'f': \"5634864\",\n },\n{\n 'v': 0.0027296133500293884,\n 'f': \"0.0027296133500293884\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-09-01\",\n{\n 'v': 17934,\n 'f': \"17934\",\n },\n{\n 'v': 5779101,\n 'f': \"5779101\",\n },\n{\n 'v': 0.0031032508343425734,\n 'f': \"0.0031032508343425734\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2024-10-01\",\n{\n 'v': 20731,\n 'f': \"20731\",\n },\n{\n 'v': 5983704,\n 'f': \"5983704\",\n },\n{\n 'v': 0.0034645764563220375,\n 'f': \"0.0034645764563220375\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2024-11-01\",\n{\n 'v': 23717,\n 'f': \"23717\",\n },\n{\n 'v': 5916918,\n 'f': \"5916918\",\n },\n{\n 'v': 0.004008336772623856,\n 'f': \"0.004008336772623856\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"pages_with_avif\"], [\"number\", \"pages\"], [\"number\", \"pct_avif\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-bef1b4eb-8d30-46f0-b8e7-a57ce22ec798\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-bef1b4eb-8d30-46f0-b8e7-a57ce22ec798')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-bef1b4eb-8d30-46f0-b8e7-a57ce22ec798 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-c607c62c-1bd9-4e3e-896e-94b4a212ec76\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>pages_with_avif</th>\n",
" <th>pages</th>\n",
" <th>pct_avif</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-01-01</td>\n",
" <td>1665</td>\n",
" <td>5294033</td>\n",
" <td>0.000315</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-02-01</td>\n",
" <td>1876</td>\n",
" <td>5887129</td>\n",
" <td>0.000319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-03-01</td>\n",
" <td>2457</td>\n",
" <td>5935372</td>\n",
" <td>0.000414</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-04-01</td>\n",
" <td>4781</td>\n",
" <td>5926995</td>\n",
" <td>0.000807</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-05-01</td>\n",
" <td>8443</td>\n",
" <td>5934368</td>\n",
" <td>0.001423</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-06-01</td>\n",
" <td>11337</td>\n",
" <td>5895890</td>\n",
" <td>0.001923</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-07-01</td>\n",
" <td>14015</td>\n",
" <td>5820225</td>\n",
" <td>0.002408</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-08-01</td>\n",
" <td>15381</td>\n",
" <td>5634864</td>\n",
" <td>0.002730</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-09-01</td>\n",
" <td>17934</td>\n",
" <td>5779101</td>\n",
" <td>0.003103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2024-10-01</td>\n",
" <td>20731</td>\n",
" <td>5983704</td>\n",
" <td>0.003465</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2024-11-01</td>\n",
" <td>23717</td>\n",
" <td>5916918</td>\n",
" <td>0.004008</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c607c62c-1bd9-4e3e-896e-94b4a212ec76')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-c607c62c-1bd9-4e3e-896e-94b4a212ec76 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-c607c62c-1bd9-4e3e-896e-94b4a212ec76');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-fbb85fbc-3dcd-480c-9259-6fcb3f7afd80\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-fbb85fbc-3dcd-480c-9259-6fcb3f7afd80')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-fbb85fbc-3dcd-480c-9259-6fcb3f7afd80 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" date pages_with_avif pages pct_avif\n",
"0 2024-01-01 1665 5294033 0.000315\n",
"1 2024-02-01 1876 5887129 0.000319\n",
"2 2024-03-01 2457 5935372 0.000414\n",
"3 2024-04-01 4781 5926995 0.000807\n",
"4 2024-05-01 8443 5934368 0.001423\n",
"5 2024-06-01 11337 5895890 0.001923\n",
"6 2024-07-01 14015 5820225 0.002408\n",
"7 2024-08-01 15381 5634864 0.002730\n",
"8 2024-09-01 17934 5779101 0.003103\n",
"9 2024-10-01 20731 5983704 0.003465\n",
"10 2024-11-01 23717 5916918 0.004008"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"\n",
"plt.figure(figsize=(10, 10))\n",
"plt.plot(avif_over_time['date'], avif_over_time['pct_avif'])\n",
"\n",
"# Format the y-axis as percentages\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.4%}'.format(y)))\n",
"\n",
"# Format the x-axis dates\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%y'))\n",
"plt.gca().xaxis.set_major_locator(mdates.MonthLocator()) # Show ticks at monthly intervals\n",
"\n",
"# Additional formatting for clarity\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('Percentage WordPress sites using AVIF Images', fontsize=12)\n",
"plt.title('AVIF Image Adoption in WordPress Over Time', fontsize=14)\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle horizontal grid\n",
"\n",
"plt.tight_layout() # Adjust layout for better readability\n",
"plt.show()\n",
"\n"
],
"metadata": {
"id": "miwF9QjHKSd9",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "bdaf84f9-907e-47b7-b296-bf0dcb9c5645"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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woXv+tiPPvpI77//vlavXp1mmL1TmTJl5Ovra7uNWeHChVNdqC0xMVHXrl2zPW/hwoXTrCt5WVpefPFFTZ06VVarVXv27FHXrl3l7++vpk2bauPGjXetEQAAIKucCLuhzp9v1d8Xo1TI3UlLBtVPM3ADALJepo50jx49Wh9//LFq1Kih3r17q2DBgllSjJOTk2rXrq21a9eqU6dOkm5fSG3t2rXpTseWpA8++ED//e9/9ccff6Q4Lzs9Fy5c0NWrV20XgGvQoIEiIiK0a9cu1a5dW5K0bt06Wa1WBQUF2dYZN26cEhISbN9orFmzRhUqVEiz/2+++UY+Pj7q0KGDrl+/Lkm2aQgJCQkppkEAAABkl+2nr2nQgp2KjElQqUJumj+gnkoWcrd3WQCQb2TqnG5/f381a9ZMy5Yty/KCli5dqn79+tmOpE+bNk3Lli3TkSNHFBAQoL59+6pYsWKaPHmyJGnKlCkaP368Fi9erIYNG9q2U6BAARUoUEDR0dGaOHGiunTposKFC+vkyZMaPXq0bty4oQMHDtimcrdt21ahoaH68ssvlZCQoP79+6tOnTpavHixpNv32a5QoYJatWql119/XX///bcGDBigTz75JMWtxSQpLCxMQUFB2rJli4oWLSpJqly5srp3765WrVqpVatWWrdunerWrXvP/REVFSUvL697nicAAADwb7/t/0evLNur+ESrapbw1uy+dVSoQOrT2AAA9y+jWS1TR7pjYmLUsmXLTBd3N927d9eVK1c0fvx4Xb58WTVq1NCqVasUEHB7CtS5c+dSzNufOXOm4uPj9cwzz6TYzttvv60JEybIYrFo//79mj9/viIiIlS0aFG1atVK7777bopzpxctWqRhw4bp8ccfl9lsVpcuXTR9+nTbci8vL61evVpDhw5V7dq15evrq/Hjx6cK3JL00ksvadSoUbbALUnz5s1Tv379NH36dL322msZCtwAAACZYRiGvvnrtCb9dliS9ETlAE3vUVOuTve+kwoAIGtl6kh3p06d5Ofnl+FbgSHzONINAADuR5LV0LsrD2ne1jOSpH4NSmr8U4/KYjbZtzAAyGMymtUydSG1L774Qtu2bdN7772nq1evZrpIAAAAZJ3YhCT9Z9EuW+B+o11FTehA4AYAe8rUkW4PDw9ZrVbFxsZKklxcXFJdet1kMikyMjJrqszH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e01ly5Z1HCMgIMDRcEtS586dZbVatWbNGt19992Kjo5Wu3btHA33pe8zceJEnTt3TsHBwSpfvrwWLlyozp0766+//tLAgQOVkZGhwYMH6/PPP89Tw52Wlqa0tDTH48TERElSRkaGMjIyHHNis9mUlZUlu93uNFc2m02ZmZm6/G8pNptNVqs11/FLx73Eze3iyyIzMzNP4+7u7rLb7crKynKMWSwWubm55TqeW3ZqoqaCrunDJXv10dL9kqRX76inbvVDJKlI11Qcf07URE3URE3URE3URE2FvaZ/1pabQtV0x8bGKisrS6GhoU7joaGh2rVrV47POXXqVI77nzp1yvG4W7du6tWrl6pWrar9+/fr3//+t7p3767o6GjZbDadOnVKISEhTsdwc3NTYGCg4zinTp1S1apVs32fS9vKlCmj7777TqNGjdKIESN022236eGHH9aECRPUoUMHeXl5qXXr1oqNjdWwYcM0dOjQHOt58803NW7cuGzjCxculI+PjySpcuXKioyM1JYtW3TkyBHHPrVr11adOnW0du1anTlzxjEeERGh8PBwLV++XElJSY7xli1bKiQkRAsXLnR6cXfo0EHe3t7ZPht/2223KSUlRUuWLHGapx49eig2NtbpDyOlS5dWx44ddfToUW3atMkxHhwcrFatWmnv3r3avXu3Y5yaqOlG1HTYrZIm/bFHknRH5SyVPr1FW7bEF+maiuPPiZqoiZqoiZqoiZqoqSjUlJycrLwoVJeXnzhxQhUrVtSqVavUsmVLx/izzz6rZcuWac2aNdme4+HhoS+//FJ9+/Z1jH344YcaN26cYmJicvw+Bw4cUPXq1fXnn3+qU6dOeuONN/Tll186/WAkKSQkROPGjdPgwYPVpUsXVa1aVZ988olj+44dO1S/fn3t2LFDdevWzfZ99uzZox49emjjxo1q166dRowYoe7du6tBgwb6888/1ahRo2zPyelMd1hYmGJjYx2XLPDXJ2qipmuv6fftMRoxe7MMQ3q8bRU906VWka+pOP6cqImaqImaqImaqImaikpNiYmJCgoKKlqXlwcFBclms2VrlmNiYlSuXLkcn1OuXLlr2l+SqlWrpqCgIO3bt0+dOnVSuXLlst2oLTMzU3FxcY7j5PZ9Lm3LyRNPPKG3335bdrtdGzdu1L333isfHx+1b99ey5Yty7Hp9vT0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hYU5xkvKfOUkL3OYnJysfv36adq0aSpXrlyOxylpc5jX194333yjoKAgNWjQQC+88IKSk5OdjlPS5u1yV5vD06dPa82aNQoJCVGrVq0UGhqq9u3ba8WKFU7HKWnvGdf679769eu1adOmbFdE8dq78hy2atVKs2fPVlxcnOx2u2bNmqXU1FTdcsstjueUtNfe5a42h2lpabJYLPL09HRs9/LyktVqdfpvuCTPYU4OHjyoU6dOOdXl7++v5s2bO/33zbzlj59//jnXOZQu/o79zzkcP368QkJCcrzK1AxuV98FxU1sbKyysrIUGhrqNB4aGprjZ2hzs3r1aklS8+bNc9w+efJknT9/Xn369HGMzZo1Sxs2bNC6detcSF54XOscxsbG6tVXX9Xjjz/uNP7bb7+pUaNGuV7699xzz6lChQpO/+hOnDhRbm5uGj58eD5UcmPkdb4+/PBDPfvss7pw4YJq166tRYsWycPDw7G9pMxXTvIyh6NGjVKrVq2u+MZU0uYwL/PWr18/hYeHq0KFCtqyZYuee+457d69W3PmzHHsX9Lm7XJXm8MDBw5Ikl555RVNnjxZERER+uqrr9SpUydt27ZNNWvWlFTy3jOu9X3is88+U926ddWqVSuncV57V57D7777Tvfdd5/Kli0rNzc3+fj46KefflKNGjUc+5e0197lrjaHLVq0kK+vr5577jm98cYbMgxDzz//vLKysnTy5EnH/iV5DnNy6tQpScpxXi9tk5i3/HD8+HFt2bIl28duLvnuu+8cl+JfsmLFCn322WdX/Iz4jUbTDZfNmzdPt99+e7bP7EnSt99+q3HjxmnevHkKCQmRJB09elQjRozQokWL5OXldaPjmiYxMVE9evRQvXr19MorrzhtmzdvXq5nLyZMmKBZs2Zp6dKljvlav3693nvvPW3YsOGKn9ktqh544AHdeuutOnnypCZPnqw+ffpo5cqVjvqZr9z9/PPPWrx4cY6fC7scc5jd5X8Ma9iwocqXL69OnTpp//79ql69uiTm7Uoufe7ziSee0KBBgyRJkZGRioqK0ueff64333xTEu8ZV5KSkqJvv/1WL7/8crZtvPau7OWXX1Z8fLz+/PNPBQUFae7cuerTp4/++usvNWzYUBKvvSsJDg7W999/r8GDB2vq1KmyWq3q27evbrrpJqf5Yg5dw7xdv59//llt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\n",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"### AVIF file sizes"
],
"metadata": {
"id": "jtu9f1PoLqfb"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
"mobile_avif_sizes AS (\n",
" SELECT\n",
" has_avif,\n",
" APPROX_QUANTILES(bytesImg, 1000)[OFFSET(500)] / 1024 / 1024 AS median_img_mbytes\n",
" FROM (\n",
" SELECT DISTINCT\n",
" url,\n",
" info AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_mobile`\n",
" WHERE\n",
" app = 'WordPress')\n",
" JOIN (\n",
" SELECT\n",
" url,\n",
" has_avif,\n",
" bytesImg\n",
" FROM (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'avif') > 0 AS has_avif\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_mobile`\n",
" GROUP BY\n",
" pageid)\n",
" JOIN (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" bytesImg\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_mobile`)\n",
" USING\n",
" (pageid))\n",
" USING\n",
" (url)\n",
" GROUP BY\n",
" has_avif\n",
"),\n",
"desktop_avif_sizes AS (\n",
" SELECT\n",
" has_avif,\n",
" APPROX_QUANTILES(bytesImg, 1000)[OFFSET(500)] / 1024 / 1024 AS median_img_mbytes\n",
" FROM (\n",
" SELECT DISTINCT\n",
" url,\n",
" info AS version\n",
" FROM\n",
" `httparchive.technologies.{dataset}_desktop`\n",
" WHERE\n",
" app = 'WordPress')\n",
" JOIN (\n",
" SELECT\n",
" url,\n",
" has_avif,\n",
" bytesImg\n",
" FROM (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'avif') > 0 AS has_avif\n",
" FROM\n",
" `httparchive.summary_requests.{dataset}_desktop`\n",
" GROUP BY\n",
" pageid)\n",
" JOIN (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" bytesImg\n",
" FROM\n",
" `httparchive.summary_pages.{dataset}_desktop`)\n",
" USING\n",
" (pageid))\n",
" USING\n",
" (url)\n",
" GROUP BY\n",
" has_avif\n",
"),\n",
"all_sizes AS (\n",
"SELECT 'mobile' AS type, has_avif, median_img_mbytes FROM mobile_avif_sizes\n",
"UNION ALL\n",
"SELECT 'desktop' AS type, has_avif, median_img_mbytes FROM desktop_avif_sizes\n",
"GROUP BY type, has_avif, median_img_mbytes\n",
"),\n",
"avif_gains AS (\n",
" SELECT\n",
" type,\n",
" ( MAX(median_img_mbytes) - MIN(median_img_mbytes ) ) / MAX(median_img_mbytes) AS median_avif_reduction\n",
" FROM all_sizes\n",
" GROUP BY type\n",
")\n",
"SELECT * FROM avif_gains\n",
"\n",
"\n",
"\n",
"\"\"\"\n",
"avif_file_sizes = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "CC0d7G6ULupU"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"avif_file_sizes.head(1000)"
],
"metadata": {
"id": "99KqAI7fMBCZ",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "5d388da3-4742-4cae-c44d-a28ddc6bd9fc"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"avif_file_sizes\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"type\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"mobile\",\n \"desktop\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"median_avif_reduction\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0013436343338103617,\n \"min\": 0.10884497287547433,\n \"max\": 0.11074515877321908,\n \"num_unique_values\": 2,\n \"samples\": [\n 0.11074515877321908,\n 0.10884497287547433\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "avif_file_sizes"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"desktop\",\n{\n 'v': 0.10884497287547433,\n 'f': \"0.10884497287547433\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"mobile\",\n{\n 'v': 0.11074515877321908,\n 'f': \"0.11074515877321908\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"type\"], [\"number\", \"median_avif_reduction\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-5c2f825d-fc5d-47ce-8be9-f28bee297a2b\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-5c2f825d-fc5d-47ce-8be9-f28bee297a2b')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-5c2f825d-fc5d-47ce-8be9-f28bee297a2b button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-975b8c88-385d-4b34-987e-33d1be7f2ec9\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>type</th>\n",
" <th>median_avif_reduction</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>desktop</td>\n",
" <td>0.108845</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>mobile</td>\n",
" <td>0.110745</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-975b8c88-385d-4b34-987e-33d1be7f2ec9')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-975b8c88-385d-4b34-987e-33d1be7f2ec9 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-975b8c88-385d-4b34-987e-33d1be7f2ec9');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-af9204e3-d9c4-466b-b05b-a6ebf5b7603a\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-af9204e3-d9c4-466b-b05b-a6ebf5b7603a')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-af9204e3-d9c4-466b-b05b-a6ebf5b7603a button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" type median_avif_reduction\n",
"0 desktop 0.108845\n",
"1 mobile 0.110745"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"# plot out the median_avif_reduction on a chart. Show the percent reduction in size for both mobile and desktop on a bar chart\n",
"plt.figure(figsize=(10, 10))\n",
"plt.bar(avif_file_sizes['type'], avif_file_sizes['median_avif_reduction'] )\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.0%}'.format(y)))\n"
],
"metadata": {
"id": "0cERz0PUMN-i",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "ca14fcab-8703-4491-a0bf-d1a9f8251ae0"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0MAAAMtCAYAAABdPqrFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtdElEQVR4nO3de7TVdZ3/8ReCHhluXrgogcmkEipeEjSlHFOUSsmaJlczGl5yUkIRYTT9VYS38H7N0dDJmFFTW6mZ5rVC84YK3ioRM1C0xGUpR81OcNi/P1rt1Rmc1DonzPfjsdZ3wf58L/vzPWvBdz3X97v36dZoNBoBAAAoZo3VPQEAAIDVQQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAASuqxuifQGVauXJlf/vKX6dOnT7p167a6pwMAAKwmjUYjL7/8cgYPHpw11vjz937eETH0y1/+MkOHDl3d0wAAAN4mlixZkiFDhvzZbd4RMdSnT58kfzjhvn37rubZAAAAq0tra2uGDh3abIQ/5x0RQ398NK5v375iCAAAeFMfn/EFCgAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKKnH6p4AAFSx8TE3rO4pAHSZxSfvubqn8Ja5MwQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAASuqxuifwTrXxMTes7ikAdJnFJ++5uqcAAH81d4YAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKEkMAQAAJYkhAACgJDEEAACUJIYAAICSxBAAAFCSGAIAAEoSQwAAQEliCAAAKOktx9Add9yR8ePHZ/DgwenWrVuuvfbaDusbjUamT5+eDTfcMD179szYsWPzxBNPNNe3tbXlM5/5TPr27ZvNNtsst912W4f9TzvttBx++OF/2dkAAAC8SW85hl599dVsvfXWOf/88193/amnnppzzz03F154YebOnZtevXpl3Lhx+d3vfpckmTVrVubNm5d77rknn/vc5/Jv//ZvaTQaSZJFixbloosuykknnfRXnBIAAMAb6/FWd/jIRz6Sj3zkI6+7rtFo5Oyzz86XvvSl7L333kmS//7v/86gQYNy7bXX5tOf/nQee+yxfOxjH8sWW2yRf/zHf8xRRx2VF154IQMGDMjEiRNzyimnpG/fvn/dWQEAALyBTv3M0KJFi/Lcc89l7NixzbF+/fplhx12yD333JMk2XrrrXPnnXfmtddey80335wNN9ww/fv3z2WXXZa11147n/jEJ97wfdra2tLa2tphAQAAeCs6NYaee+65JMmgQYM6jA8aNKi57qCDDsrWW2+dzTffPCeddFKuuuqqvPjii5k+fXrOO++8fOlLX8omm2yScePG5dlnn33d95k5c2b69evXXIYOHdqZpwEAABTwN/82uTXXXDPnn39+Fi1alPvvvz8f+MAHMm3atEyePDkPPvhgrr322jz88MN5//vfn8mTJ7/uMY499tgsW7asuSxZsuRvfBYAAMDfu06NoQ022CBJsnTp0g7jS5cuba773370ox/lpz/9aQ477LDMmTMnH/3oR9OrV6/ss88+mTNnzuvu09LSkr59+3ZYAAAA3opOjaFhw4Zlgw02yA9+8IPmWGtra+bOnZsdd9xxle1/97vfZdKkSfn617+e7t27p729PcuXL0+SLF++PO3t7Z05PQAAgKa3HEOvvPJKHnrooTz00ENJ/vClCQ899FCefvrpdOvWLVOmTMmJJ56Y6667Lo8++mgmTJiQwYMH5+Mf//gqxzrhhBPy0Y9+NNtuu22SZMyYMbn66qvzyCOP5Gtf+1rGjBnzV50cAADA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+sUvfpELLrggm266aW6++eZMnDgxkydPzuzZs5MkI0aMyFe/+tXsvvvu2WOPPTJz5syMGDEihxxySE499dTcfPPN2XLLLbPtttvmjjvueN33mDlzZvr169dchg4d2tmnAQAAvMN1azQajc484FprrZVRo0bl7rvvbo5Nnjw5999/f+65557X3Wf27Nm59tprc+GFF2b48OG5//7788wzz2TffffNokWL0tLS0mH7tra2tLW1NV+3trZm6NChWbZsWfr27duZp/MX2/iYG1b3FAC6zOKT91zdU/i75NoAvJO9Xa4Nra2t6dev35tqg07/zNCGG26YzTffvMPYiBEj8p3vfOd1t3/hhRdy3HHH5Y477sjcuXOz2WabZdNNN82mm26a5cuXZ+HChRk5cmSHfVpaWlYJJAAAgLei0x+TGzNmTB5//PEOYwsXLsy73/3u193+yCOPzJFHHpkhQ4akvb09y5cvb65bsWJF2tvbO3uKAAAAnX9n6Mgjj8xOO+2Ur371q9lnn31y3333ZdasWZk1a9Yq2956661ZuHBh8/NEo0ePzoIFC3LjjTdmyZIl6d69e4YPH97ZUwQAAOj8GBo9enSuueaaHHvssTn++OMzbNiwnH322dl33307bPfaa6/lsMMOy5VXXpk11vjDDaohQ4bkvPPOy4EHHpiWlpbMnj07PXv27OwpAgAAdH4MJclee+2Vvfba689u07Nnz1Uep0uSgw8+OAcffHBXTAsAAKCp0z8zBAAA8PdADAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACWJIQAAoCQxBAAAlCSGAACAksQQAABQkhgCAABKEkMAAEBJYggAAChJDAEAACV1eQydfPLJ6datW6ZMmdIcmzp1atZbb70MHTo0l112WYftv/3tb2f8+PFdPS0AAKC4Hl158Pvvvz9f//rXs9VWWzXHvve97+Xyyy/PLbfckieeeCIHHXRQxo0bl/79+2fZsmX54he/mNtuu60rpwUAANB1d4ZeeeWV7Lvvvrnooouy7rrrNscfe+yx7LLLLhk1alT+9V//NX379s2iRYuSJEcffXQmTpyYjTba6M8eu62tLa2trR0WAACAt6LLYmjSpEnZc889M3bs2A7jW2+9dR544IG8+OKLmTdvXl577bVssskmufPOOzN//vxMnjz5DY89c+bM9OvXr7kMHTq0q04DAAB4h+qSGLriiisyf/78zJw5c5V148aNy3777ZfRo0fngAMOyOzZs9OrV69MnDgxF154YS644IIMHz48Y8aMyU9/+tPXPf6xxx6bZcuWNZclS5Z0xWkAAADvYJ3+maElS5bkiCOOyK233pq11177dbeZMWNGZsyY0Xx93HHHZezYsVlzzTVz4okn5tFHH83111+fCRMmZN68eavs39LSkpaWls6eOgAAUEin3xmaN29enn/++bzvfe9Ljx490qNHj9x+++0599xz06NHj7S3t3fYfsGCBbn00ktzwgknZM6cOdl5550zYMCA7LPPPpk/f35efvnlzp4iAABA598Z2m233fLoo492GDvwwAPz3ve+N1/4whfSvXv35nij0cghhxySM888M7179057e3uWL1+eJM0//3c8AQAAdIZOj6E+ffpkyy237DDWq1evrL/++quMX3zxxRkwYEDz9wqNGTMmM2bMyL333psbb7wxm2++edZZZ53OniIAAEDX/p6hP2fp0qU56aSTcvfddzfHtt9++0ybNi177rlnBg4cmNmzZ6+u6QEAAO9wf5MYmjNnzipjgwYNyuLFi1cZnz59eqZPn971kwIAAErrst8zBAAA8HYmhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJTU6TE0c+bMjB49On369MnAgQPz8Y9/PI8//niHbaZOnZr11lsvQ4cOzWWXXdZh3be//e2MHz++s6cFAADQQafH0O23355Jkybl3nvvza233prly5dnjz32yKuvvpok+d73vpfLL788t9xyS0499dQcfPDBeeGFF5Iky5Ytyxe/+MWcf/75nT0tAACADnp09gFvuummDq+/+c1vZuDAgZk3b1523nnnPPbYY9lll10yatSojBo1KlOmTMmiRYvSv3//HH300Zk4cWI22mijzp4WAABAB50eQ//bsmXLkiTrrbdekmTrrbfOrFmz8uKLL+YXv/hFXnvttWyyySa58847M3/+/Pznf/7nGx6zra0tbW1tzdetra1dM3kAAOAdq0u/QGHlypWZMmVKxowZky233DJJMm7cuOy3334ZPXp0DjjggMyePTu9evXKxIkTc+GFF+aCCy7I8OHDM2bMmPz0pz993ePOnDkz/fr1ay5Dhw7tytMAAADegbo0hiZNmpSf/OQnueKKKzqMz5gxIz//+c/z6KOP5hOf+ERmzpyZsWPHZs0118yJJ56YO++8MwcffHAmTJjwusc99thjs2zZsuayZMmSrjwNAADgHajLHpM77LDDcv311+eOO+7IkCFD/s/tFixYkEsvvTQPPvhgvvGNb2TnnXfOgAEDss8+++Sggw7Kyy+/nD59+nTYp6WlJS0tLV01dQAAoIBOj6FGo5HDDz8811xzTebMmZNhw4b92W0POeSQnHnmmendu3fa29uzfPnyJGn+2d7e3tlTBAAA6PzH5CZNmpRLL700l19+efr06ZPnnnsuzz33XF577bVVtr344oszYMCA5u8VGjNmTH74wx/m3nvvzVlnnZXNN98866yzTmdPEQAAoPPvDF1wwQVJkl122aXD+CWXXJIDDjig+Xrp0qU56aSTcvfddzfHtt9++0ybNi177rlnBg4cmNmzZ3f29AAAAJJ00WNyb8agQYOyePHiVcanT5+e6dOnd/KsAAAAOurSb5MDAAB4uxJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASWIIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASV0WQ+eff3423njjrL322tlhhx1y3333NddNnTo16623XoYOHZrLLrusw37f/va3M378+K6aFgAAQJKkR1cc9Morr8zUqVNz4YUXZocddsjZZ5+dcePG5fHHH8/cuXNz+eWX55ZbbskTTzyRgw46KOPGjUv//v2zbNmyfPGLX8xtt93WFdMCAABo6pIYOvPMM/Pv//7vOfDAA5MkF154YW644YZ84xvfyBprrJFddtklo0aNyqhRozJlypQsWrQo/fv3z9FHH52JEydmo402+rPHb2trS1tbW/P1smXLkiStra1dcTp/kZVtv13dUwDoMm+n/2//nrg2AO9kb5drwx/n0Wg03njjRidra2trdO/evXHNNdd0GJ8wYULjYx/7WOOmm25qvOc972n85je/aTzwwAONPn36NH7zm980fvzjHzdGjRrVWLFixRu+x1e+8pVGEovFYrFYLBaLxWJ53WXJkiVv2BWdfmfohRdeSHt7ewYNGtRhfNCgQVmwYEHGjRuX/fbbL6NHj07Pnj0ze/bs9OrVKxMnTsw3v/nNXHDBBTnvvPPSv3//zJo1K1tsscUq73Hsscdm6tSpzdcrV67Mb37zm6y//vrp1q1bZ58SvK21trZm6NChWbJkSfr27bu6pwPA24TrA1U1Go28/PLLGTx48Btu2yWPyb2RGTNmZMaMGc3Xxx13XMaOHZs111wzJ554Yh599NFcf/31mTBhQubNm7fK/i0tLWlpaekwts4663TxrOHtrW/fvi52AKzC9YGK+vXr96a26/Rvk+vfv3+6d++epUuXdhhfunRpNthgg1W2X7BgQS699NKccMIJmTNnTnbeeecMGDAg++yzT+bPn5+XX365s6cIAADQ+TG01lprZbvttssPfvCD5tjKlSvzgx/8IDvuuGOHbRuNRg455JCceeaZ6d27d9rb27N8+fIkaf7Z3t7e2VMEAADomsfkpk6dmv333z+jRo3K9ttvn7PPPjuvvvpq89vl/ujiiy/OgAEDmr9XaMyYMZkxY0buvffe3Hjjjdl88809/gZvoKWlJV/5yldWeXQUgNpcH+CNdWs03sx3zr11X/va13LaaaflueeeyzbbbJNzzz03O+ywQ3P90qVLs8MOO+Tuu+/u8OGm448/Puecc04GDhyY2bNnZ/vtt++K6QEAAMV1WQwBAAC8nXX6Z4YAAAD+HoghAACgJDEEAACUJIbgb2yXXXbJlClT/urjzJkzJ926dctLL730Vx8LgHeWN3Ot2XjjjXP22Wc3X3fr1i3XXnttl84L3m665Ku1gdVv8eLFGTZsWB588MFss802q3s6ALzN3H///enVq9fqngasVmIIAKCgAQMGrO4pwGrnMTnoQq+++momTJiQ3r17Z8MNN8wZZ5zRYX1bW1v+4z/+I+9617vSq1ev7LDDDpkzZ05z/VNPPZXx48dn3XXXTa9evbLFFlvk+9///uu+129/+9t85CMfyZgxY/LSSy9l2LBhSZJtt9023bp1yy677JIkWblyZY4//vgMGTIkLS0t2WabbXLTTTc1j7N48eJ069YtV1xxRXbaaaesvfba2XLLLXP77bd37g8HgCR/eKTt8MMPz5QpU7Luuutm0KBBueiii5q/sL5Pnz7ZZJNNcuONNzb3uf3227P99tunpaUlG264YY455pisWLGiw3FXrFiRww47LP369Uv//v3z5S9/OX/6G1X+92Ny/9uSJUuyzz77ZJ111sl6662XvffeO4sXL+7s04fVSgxBFzrqqKNy++2357vf/W5uueWWzJkzJ/Pnz2+uP+yww3LPPffkiiuuyCOPPJJPfepT+fCHP5wnnngiSTJp0qS0tbXljjvuyKOPPppTTjklvXv3XuV9Xnrppey+++5ZuXJlbr311qyzzjq57777kiS33XZbfvWrX+Xqq69Okpxzzjk544wzcvrpp+eRRx7JuHHj8rGPfaz5nn8692nTpuXBBx/MjjvumPHjx+fXv/51V/2oAEqbPXt2+vfvn/vuuy+HH354Jk6cmE996lPZaaedMn/+/Oyxxx75zGc+k9/+9rd59tln89GPfjSjR4/Oww8/nAsuuCD/9V//lRNPPHGVY/bo0SP33XdfzjnnnJx55pm5+OKL39R8li9fnnHjxqVPnz758Y9/nLvuuiu9e/fOhz/84fz+97/vih8BrB4NoEu8/PLLjbXWWqtx1VVXNcd+/etfN3r27Nk44ogjGk899VSje/fujWeffbbDfrvttlvj2GOPbTQajcbIkSMbM2bMeN3j/+hHP2okaTz22GONrbbaqvHJT36y0dbW1ly/aNGiRpLGgw8+2GG/wYMHN0466aQOY6NHj258/vOf77DfySef3Fy/fPnyxpAhQxqnnHLKW/9BAPBn/dM//VPjAx/4QPP1ihUrGr169Wp85jOfaY796le/aiRp3HPPPY3/9//+X2P48OGNlStXNteff/75jd69ezfa29ubxxwxYkSHbb7whS80RowY0Xz97ne/u3HWWWc1XydpXHPNNY1Go9H4n//5n1Xeo62trdGzZ8/GzTff3GnnDqubzwxBF3nyySfz+9//PjvssENzbL311svw4cOTJI8++mja29uz2Wabddivra0t66+/fpJk8uTJmThxYm655ZaMHTs2n/zkJ7PVVlt12H733XfP9ttvnyuvvDLdu3f/s3NqbW3NL3/5y4wZM6bD+JgxY/Lwww93GNtxxx2bf+/Ro0dGjRqVxx577E2ePQBvxZ/+3969e/esv/76GTlyZHNs0KBBSZLnn38+jz32WHbcccd069atuX7MmDF55ZVX8swzz2SjjTZKkrz//e/vsM2OO+6YM844I+3t7W94vXj44Yfz85//PH369Okw/rvf/S5PPvnkX36i8DYjhmA1eeWVV9K9e/fMmzdvlYvSHx+FO/jggzNu3LjccMMNueWWWzJz5sycccYZOfzww5vb7rnnnvnOd76Tn/3sZx0unAD8/VhzzTU7vO7WrVuHsT9GzcqVK/8m83nllVey3Xbb5bLLLltlnS9e4J3EZ4agi7znPe/Jmmuumblz5zbHXnzxxSxcuDDJH77YoL29Pc8//3w22WSTDssGG2zQ3Gfo0KE59NBDc/XVV2fatGm56KKLOrzPySefnP333z+77bZbfvaznzXH11prrSRJe3t7c6xv374ZPHhw7rrrrg7HuOuuu7L55pt3GLv33nubf1+xYkXmzZuXESNG/KU/DgA6yYgRI3LPPfd0+DKEu+66K3369MmQIUOaY396/Un+8P/6pptu+oZ3hZLkfe97X5544okMHDhwlWtUv379Ou9kYDUTQ9BFevfunc9+9rM56qij8sMf/jA/+clPcsABB2SNNf7wz26zzTbLvvvumwkTJuTqq6/OokWLct9992XmzJm54YYbkiRTpkzJzTffnEWLFmX+/Pn50Y9+9LpBcvrpp2fffffNrrvumgULFiRJBg4cmJ49e+amm27K0qVLs2zZsiR/+GKEU045JVdeeWUef/zxHHPMMXnooYdyxBFHdDjm+eefn2uuuSYLFizIpEmT8uKLL+aggw7qyh8ZAG/C5z//+SxZsiSHH354FixYkO9+97v5yle+kqlTpzavMUny9NNPZ+rUqXn88cfzrW99K+edd94q/9f/X/bdd9/0798/e++9d3784x9n0aJFmTNnTiZPnpxnnnmmq04N/uY8Jgdd6LTTTssrr7yS8ePHp0+fPpk2bVozSpLkkksuyYknnphp06bl2WefTf/+/fP+978/e+21V5I/3NWZNGlSnnnmmfTt2zcf/vCHc9ZZZ73ue5111llpb2/Prrvumjlz5mSzzTbLueeem+OPPz7Tp0/PBz/4weaFbNmyZZk2bVqef/75bL755rnuuuuy6aabdjjeySefnJNPPjkPPfRQNtlkk1x33XXp379/1/2wAHhT3vWud+X73/9+jjrqqGy99dZZb7318tnPfjZf+tKXOmw3YcKEvPbaa9l+++3TvXv3HHHEEfnc5z73pt7jH/7hH3LHHXfkC1/4Qv75n/85L7/8ct71rndlt912S9++fbvitGC16Nb403usQHmLFy/OsGHD8uCDD2abbbZZ3dMBAOgyHpMDAABKEkMAAEBJHpMDAABKcmcIAAAoSQwBAAAliSEAAKAkMQQAAJQkhgAAgJLEEAAAUJIYAgAAShJDAABASf8fVJgpe9aEobQAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"# Over time on the Entire Web"
],
"metadata": {
"id": "SP4rBAb8iFzn"
}
},
{
"cell_type": "markdown",
"source": [
"### WebP"
],
"metadata": {
"id": "2Ku1jzEtoe0j"
}
},
{
"cell_type": "code",
"source": [
"# Select the data for both desktop and mobile over the last 12 months.\n",
"# starting with WebP images on WordPress sites\n",
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
" sites_webp AS (\n",
" SELECT\n",
" url,\n",
" date,\n",
" has_webp\n",
" FROM\n",
"\n",
" (\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'webp') > 0 AS has_webp,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_requests.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)\n",
" GROUP BY date, pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_pages.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)\n",
" )\n",
" USING (pageid, date)\n",
" )\n",
" )\n",
"SELECT\n",
" date,\n",
" COUNT(DISTINCT (IF(has_webp, url, NULL))) AS pages_with_webp,\n",
" COUNT(DISTINCT url) AS pages,\n",
" COUNT(DISTINCT (IF(has_webp, url, NULL))) / COUNT(DISTINCT url) AS pct_webp\n",
"FROM sites_webp\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"webp_over_time_all_web = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "jfAcixhposLZ"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"webp_over_time_all_web.head(1000)"
],
"metadata": {
"id": "kueaOEtjsUOw",
"outputId": "514f17a0-ad35-4f6c-aaee-f0dcab664f8d",
"colab": {
"base_uri": "https://localhost:8080/"
}
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"webp_over_time_all_web\",\n \"rows\": 11,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"2024-06-01\",\n \"2024-01-01\",\n \"2024-10-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages_with_webp\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 2735684,\n 2273010,\n 2994179\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 16935496,\n 15747407,\n 17256429\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_webp\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.01141378154392478,\n \"min\": 0.14434185894858753,\n \"max\": 0.17819078297584784,\n \"num_unique_values\": 11,\n \"samples\": [\n 0.16153551097647215,\n 0.14434185894858753,\n 0.173510927434639\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "webp_over_time_all_web"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-01-01\",\n{\n 'v': 2273010,\n 'f': \"2273010\",\n },\n{\n 'v': 15747407,\n 'f': \"15747407\",\n },\n{\n 'v': 0.14434185894858753,\n 'f': \"0.14434185894858753\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-02-01\",\n{\n 'v': 2488784,\n 'f': \"2488784\",\n },\n{\n 'v': 16919468,\n 'f': \"16919468\",\n },\n{\n 'v': 0.14709587795550072,\n 'f': \"0.14709587795550072\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-03-01\",\n{\n 'v': 2554418,\n 'f': \"2554418\",\n },\n{\n 'v': 17049189,\n 'f': \"17049189\",\n },\n{\n 'v': 0.14982636417485898,\n 'f': \"0.14982636417485898\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-04-01\",\n{\n 'v': 2612884,\n 'f': \"2612884\",\n },\n{\n 'v': 17073259,\n 'f': \"17073259\",\n },\n{\n 'v': 0.15303955735691704,\n 'f': \"0.15303955735691704\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-05-01\",\n{\n 'v': 2672216,\n 'f': \"2672216\",\n },\n{\n 'v': 17026960,\n 'f': \"17026960\",\n },\n{\n 'v': 0.1569402876379577,\n 'f': \"0.1569402876379577\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-06-01\",\n{\n 'v': 2735684,\n 'f': \"2735684\",\n },\n{\n 'v': 16935496,\n 'f': \"16935496\",\n },\n{\n 'v': 0.16153551097647215,\n 'f': \"0.16153551097647215\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-07-01\",\n{\n 'v': 2761354,\n 'f': \"2761354\",\n },\n{\n 'v': 16780134,\n 'f': \"16780134\",\n },\n{\n 'v': 0.16456090279136032,\n 'f': \"0.16456090279136032\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-08-01\",\n{\n 'v': 2786552,\n 'f': \"2786552\",\n },\n{\n 'v': 16494843,\n 'f': \"16494843\",\n },\n{\n 'v': 0.16893473917878454,\n 'f': \"0.16893473917878454\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-09-01\",\n{\n 'v': 2854216,\n 'f': \"2854216\",\n },\n{\n 'v': 16693122,\n 'f': \"16693122\",\n },\n{\n 'v': 0.17098155755406327,\n 'f': \"0.17098155755406327\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2024-10-01\",\n{\n 'v': 2994179,\n 'f': \"2994179\",\n },\n{\n 'v': 17256429,\n 'f': \"17256429\",\n },\n{\n 'v': 0.173510927434639,\n 'f': \"0.173510927434639\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2024-11-01\",\n{\n 'v': 3047211,\n 'f': \"3047211\",\n },\n{\n 'v': 17100834,\n 'f': \"17100834\",\n },\n{\n 'v': 0.17819078297584784,\n 'f': \"0.17819078297584784\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"pages_with_webp\"], [\"number\", \"pages\"], [\"number\", \"pct_webp\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-71a0a1ab-b9ce-4903-8a3d-d85f5050e769\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-71a0a1ab-b9ce-4903-8a3d-d85f5050e769')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-71a0a1ab-b9ce-4903-8a3d-d85f5050e769 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-da9599b8-462c-43a5-bf1a-bd6fed155f04\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>pages_with_webp</th>\n",
" <th>pages</th>\n",
" <th>pct_webp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-01-01</td>\n",
" <td>2273010</td>\n",
" <td>15747407</td>\n",
" <td>0.144342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-02-01</td>\n",
" <td>2488784</td>\n",
" <td>16919468</td>\n",
" <td>0.147096</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-03-01</td>\n",
" <td>2554418</td>\n",
" <td>17049189</td>\n",
" <td>0.149826</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-04-01</td>\n",
" <td>2612884</td>\n",
" <td>17073259</td>\n",
" <td>0.153040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-05-01</td>\n",
" <td>2672216</td>\n",
" <td>17026960</td>\n",
" <td>0.156940</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-06-01</td>\n",
" <td>2735684</td>\n",
" <td>16935496</td>\n",
" <td>0.161536</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-07-01</td>\n",
" <td>2761354</td>\n",
" <td>16780134</td>\n",
" <td>0.164561</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-08-01</td>\n",
" <td>2786552</td>\n",
" <td>16494843</td>\n",
" <td>0.168935</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-09-01</td>\n",
" <td>2854216</td>\n",
" <td>16693122</td>\n",
" <td>0.170982</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2024-10-01</td>\n",
" <td>2994179</td>\n",
" <td>17256429</td>\n",
" <td>0.173511</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2024-11-01</td>\n",
" <td>3047211</td>\n",
" <td>17100834</td>\n",
" <td>0.178191</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-da9599b8-462c-43a5-bf1a-bd6fed155f04')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-da9599b8-462c-43a5-bf1a-bd6fed155f04 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-da9599b8-462c-43a5-bf1a-bd6fed155f04');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-9f238615-7892-447a-b67b-60850ff2fe4f\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-9f238615-7892-447a-b67b-60850ff2fe4f')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-9f238615-7892-447a-b67b-60850ff2fe4f button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" date pages_with_webp pages pct_webp\n",
"0 2024-01-01 2273010 15747407 0.144342\n",
"1 2024-02-01 2488784 16919468 0.147096\n",
"2 2024-03-01 2554418 17049189 0.149826\n",
"3 2024-04-01 2612884 17073259 0.153040\n",
"4 2024-05-01 2672216 17026960 0.156940\n",
"5 2024-06-01 2735684 16935496 0.161536\n",
"6 2024-07-01 2761354 16780134 0.164561\n",
"7 2024-08-01 2786552 16494843 0.168935\n",
"8 2024-09-01 2854216 16693122 0.170982\n",
"9 2024-10-01 2994179 17256429 0.173511\n",
"10 2024-11-01 3047211 17100834 0.178191"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"\n",
"plt.figure(figsize=(10, 10))\n",
"plt.plot(webp_over_time_all_web['date'], webp_over_time_all_web['pct_webp'])\n",
"\n",
"# Format the y-axis as percentages\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.4%}'.format(y)))\n",
"\n",
"# Format the x-axis dates\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%y'))\n",
"plt.gca().xaxis.set_major_locator(mdates.MonthLocator()) # Show ticks at monthly intervals\n",
"\n",
"# Additional formatting for clarity\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('Percentage All sites using webp images', fontsize=12)\n",
"plt.title('webp Image Adoption on the web over time', fontsize=14)\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle horizontal grid\n",
"\n",
"plt.tight_layout() # Adjust layout for better readability\n",
"plt.show()\n",
"\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "PVptZ7DRqrxB",
"outputId": "78de8439-3d4d-42eb-d836-4dd5e3dcc2ed"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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x8X56uUHDx7M9ZxLXWQoLCzMhIWFOR+vXbvWSDK33HJLjuW2b9/uvB3VxRcay8zMNKGhocZut5u1a9fmeM6dd96Z59XL//3vfzuvdHzxlYGzHThwIM9xXMzhcJjatWsbm812ydsjdejQwUgyGzduNMYY8+uvv7p89fKff/45x7qffvrpQrl6+fvvv1+gC4RdLPvq5d27d8/xeY6OjjZBQUH5Xr08r9fI/jznd4u1i7m6PS7+jP3T2PKzaNGiS+a81Lry+vdRGJ/DbMX9+yc/2RcWfP7553NM//HHH3Ndvfxiffv2NTabzbz++uu5Lq6Y7dSpU8bPz88EBQWZ7du355qflJSU44r52d9tf79lX0HcdNNN+X7/GXPpC6ld6XemMcYMHTrUSDJTp041Docj13P++OOPPC9WB8A6nNMNAC4oX7682rRpo3Xr1slut6tLly7Oedl7oU6fPq1evXrlOO9Qkpo1a6YPP/xQ9913nxo2bKi+ffuqbt26SkhI0IEDB7Rq1SrdeeedmjFjRo7n9erVSw8//LCWLFmipk2baseOHfrhhx9UuXJlTZ8+PVfGatWqKSkpSS1atFD//v2VlJSkr776SmfOnNG7776rGjVqFMGWuTxt27ZV27Zt9dVXX+n48eNq3769oqOj9f3336tfv376+uuvcyzv5uamGTNmaMCAAerevbuGDh2qatWqadWqVTp27JjCw8O1devWHM+599579ccff+jTTz/V77//rh49eqh69eo6efKkdu/erfXr12vOnDmqVatWvjl//fVXHTx4UF26dFGdOnXyXW7UqFFat26dZs6cqWuuuUbdunXTqFGj9Mknn6h58+YaNGiQ0tLSNG/ePLVv316LFi3K8Xy73a5Zs2apV69e6tu3r26++WaFhYVp3bp1WrlyperWravJkyfnet3Lea+7desmm82mZ599Vjt27FBAQIAqVKigBx98MN9xjRgxQt9++60WLlyoFi1a6IYbblBSUpLmzZuns2fP6q233rrkdnGVq9ujMHTo0EE+Pj565513dO7cOQUFBUmSnn/+eZfWVxifw2wl4fsnL1OmTNGqVav06quvau3atWrXrp0OHTqk+fPnq1y5cvrkk0/yvDbBiBEjtGTJEuch07fffnuuZYKCgvTll1/q5ptvVnh4uHr37q1GjRopLS1Nhw4d0qpVq3Tttddq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U6fq3Xff1YwZM7R+/Xr5+vqqV69eSk1NdS5z2223aceOHfr555+1aNEirV69Wvfcc49zfnx8vHr27KmwsDBt2rRJb7zxhiZMmKD//Oc/kiSHw6Fbb71VY8eO1bp16/Tnn38650nS008/rbFjxyosLOyytxsAAEC2qUt366/o8/LzdtcHt7aSlzvncQOAlVw6p9vPz0/BwcH5zq9atar8/C7//o99+vRRnz598p3/3HPPqW/fvjn2INetW/cf12uz2VS1atU85xlj9M477+j555/XjTfeKEn67LPPVKVKFS1YsEDDhg3Trl27tHTpUm3cuFHXXHONJOm9995T37599eabb6p69er64osvlJ6ero8//lienp5q2rSpIiMjNW3aNN1zzz2KjY1VbGys7r//fnl7e2vAgAHatWuXJGnt2rXauHGj3n///QJvKwAAgL9btuOE/rvmoCTpzZvDFVqpnMWJAAAule5Ro0Zp1qxZuvvuu1WuXM4v88TERH3yyScaM2ZMoQTM5nA4tHjxYj355JPq1auXNm/erNq1a+uZZ57RwIEDL/ncxMREhYWFyeFwqFWrVnr99dfVtGlTSdLBgwd14sQJ9ejRw7l8QECA2rVrp3Xr1mnYsGFat26dKlSo4CzcktSjRw/Z7XatX79egwYN0rp169S5c2d5eno6l+nVq5emTJmic+fOKSgoSNWqVdOyZcvUo0cPrVmzRiNHjlRGRobuu+8+ffzxx3JzK9hfotPS0pSWluZ8HB8fL0nKyMhQRkaGJMlut8vNzU1ZWVlyOBzOZbOnZ2ZmyhjjnO7m5ia73Z7v9Oz1ZnN3v/DRyczMLNB0Dw8PORwOZWVlOafZbDa5u7vnOz2/7IyJMTEmxsSYGBNjyj09+myyHpu/RZI0plMtdW9QybmukjqmbKXpfWJMjIkxlZ4xFZRLpbtly5ZavHixGjVqpJEjR6pevXqSpH379umzzz5TYGCgWrRooW+//TbH8wYPHuzKy0mSTp06pcTERE2ePFmvvvqqpkyZoqVLl2rw4MFasWKFunTpkufzGjZsqI8//lgtWrRQXFyc3nzzTV177bXasWOHatasqRMnTkiSqlSpkuN5VapUcc47ceJErj377u7uCgwMzLFM7dq1c60je17FihX11Vdfafz48XrkkUfUt29fjR49WpMnT1a3bt3k7e2tjh07KjY2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rtl7nr1mzRqlpKRowIABGjJkiBYuXCjpn8vvO3TooPbt2+vzzz/Xnj17NHDgQBUtWlRDhgyR1WpVnz59NG7cOIWEhOixxx7T//73Pz377LOSpJdffllDhw5VUBCX7wEAHOd8VILG/rBHkjS0dUW1qFTCwRUBAJC/3dV9unOTyWTS0qVL1b17d9tYr1695OzsrAULFmT5OI8//riuX7+u5cuX28aaNWumevXq6fPPP5dhGAoMDNQLL7ygF198UdI/Z539/f01b9489erVSwcOHFCNGjW0bds2NWrUSJL066+/qnPnzjp79qwCAwP12Wef6dVXX9XFixfl4vLPGYGXX35ZP/30kw4ePKhLly7J399fCQkJcnNz09ixYxUXF6dPPvlEmzZt0nPPPactW7bIYrnzVWG5TzcAICekWQ31mb1ZW05cVd0yPvp+WAs5W1gYFQCAjOTofbrffPNNmUwmvfrqqzKbzbbPdt+KyWTS+PHjs17xbVitVq1YsUIvvfSSQkJCFBYWpuDgYI0bN84umP9baGioRo8ebTcWEhJiu3T9xIkTunjxotq3b2/b7uPjo6ZNmyo0NFS9evVSaGioihYtagvcktS+fXuZzWZt2bJFjzzyiEJDQ9WqVStb4L7x/5k8ebKuXbumkiVLqlSpUlq9erXat2+vP//8U/3791dKSoqGDRumL7/8MsuBOykpSUlJSbbHMTExkv5ZNT4lJUWSZDabZbFYlJaWJqvVatv3xnhqaqrdKvQWi0VmsznT8RvHvcHJ6Z+XTmpqapbGnZ2dZbValZaWZhszmUxycnLKdDyz2umJnuiJnugpd3r6ZMNxbTlxVZ4uFs3oVU+ypinF+v/rzI893W6cnuiJnuiJnugpuz1lVZZC94QJE2QymTR27Fi5uLhowoQJt31OTofuS5cuKS4uTpMmTdLbb7+tyZMn69dff1WPHj20fv16tW7dOsPnXbx4Uf7+/nZj/v7+unjxom37jbFb7ePn52e33cnJSb6+vnb7/Pve5DeOefHiRRUrVkxLlizRqFGj9Pzzz6tz584aOHCgJk2apDZt2sjNzU333XefIiMjNWLECNtl5xl57733NHHixHTjq1evloeHhySpXLlyql+/vsLDw+0+8161alVVq1ZNW7du1eXLl23j9erVU1BQkDZu3KjY2FjbePPmzeXn56fVq1fbvbjb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sGyd6QYAANkz9++T2nDoslyczJrZuz6BGwCAAi5bn+lu27btLbebTCa5ubmpTJkyatOmjR577DE5OXHPUQBA4bbvfLQmrfrn7h+vdamuagFcnQQAQEGXrSRstVp17tw5HTt2TMWKFVP58uUlSSdPntS1a9dUqVIl+fj4aMuWLZo9e7YmTZqk33//XSVKlMjJ2gEAyDcSkv+5PVhymlXtq/upb7MgR5cEAADugWxdXv7222/r2rVrmj9/vi5duqQdO3Zox44dunTpkubOnatr167po48+0uXLl/Xll19q3759GjduXE7XDgBAvvHm8v06dvm6/Iq46v3H6tputQkAAAq2bC2k1qxZM91///364IMPMtw+ZswY/fXXX7b7eD/99NP65ZdfdP78+burFhliITUAyNt+3XtBQ7/eKZNJ+npQU91XiSu/AADI73J1IbXw8HDbJeUZKV++vHbv3m173LBhQ129ejU7/ysAAPK181EJGvvDHknS060qErgBAChkshW6S5Uqpe+//15WqzXdNqvVqiVLliggIMA2duXKFfn6+ma/SgAA8qE0q6FR3+5SdEKK6pTx0egHqzi6JAAAcI9layG10aNHa8SIEbrvvvv01FNPqWLFipKko0ePavbs2dq2bZtmzpxp2/+7775TkyZNcqZiAADyiU/XH9WWE1fl6WLRzF715eLEnToBAChsshW6hw8fLrPZrNdff12DBw+2LQZjGIaKFy+umTNnavjw4ZKkpKQkTZs27ZaXowMAUNDsOHVN09cekSS92a2WypfwdHBFAADAEbK1kNoNKSkp2r59u06dOiVJCgoKUqNGjeTs7JxjBeL2WEgNAPKWmMQUdZ7xp85eS9DDdQM1o1c9VisHAKCAyWoOy9aZ7hucnZ3VvHlzNW/e/G4OAwBAgWEYhl5buldnryWoTDF3vf1ILQI3AACF2F2F7pSUFB08eFDR0dEZLqrWqlWruzk8AAD5zo87z+nn3edlMZs0o1d9ebtx9RcAAIVZtkK31WrVuHHj9Omnnyo+Pj7T/dLS0rJdGAAA+c3JyOt6fdleSdLIdpXVMKiYgysCAACOlq1lVN9991198MEHeuKJJ/TVV1/JMAxNmjRJn3/+uerUqaO6devqt99+y+laAQDIs5JTrXpucZiuJ6epSbCvnmlTydElAQCAPCBboXvevHnq2bOnPvvs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EgAAKCSyFbpNJpNmz56t/v376/vvv9eRI0dktVpVsWJF9ezZU61atcrpOgEAyJbV+y5qyurDkqQ3u9VSswrFHVwRAAAoTO7q2rqWLVuqZcuWOVULAAA56uDFGI38dpckqV/zIPVpWs6xBQEAgEInW5/pPnHihH755ZdMt//yyy/cMgwA4FBXrydr8Pztik9OU4uKxTX+IRb4BAAA9162znS/+OKLiomJUdeuXTPc/sknn6ho0aJavHjxXRUHAEB2JKdaNezrHTp7LUFBxT30SZ8GcrZk631mAACAu5Ktv0BCQ0P14IMPZrq9Xbt2+vPPP7NdFAAAd2PiL/u05cRVebk6aXa/Rirm6eLokgAAQCGVrdB97do1FSlSJNPtXl5eunLlSraLAgAguxaEntQ3W07LZJJm9KqnKv6Z/74CAADIbdkK3eXKldPff/+d6fY///xTZcqUyXZRAABkx6ajkZrwy35J0ksh1dSuur+DKwIAAIVdtkJ37969tWjRIs2cOVNWq9U2npaWphkzZujbb79Vnz59cqxIAABu59SV63pm4U6lWQ11rxeooa0rOLokAAAAmQzDMO70SUlJSerSpYvWrVunkiVLqmrVqpKkQ4cO6fLly3rggQe0atUqubq65njBSC8mJkY+Pj6Kjo6Wt7e3o8sBgHsuNjFFPT7dpCOX4lS3jI++fbq53Jwtji4LAAAUYFnNYdk60+3q6qrVq1drzpw5atKkiSIjIxUZGakmTZroyy+/1O+//07gBgDcE2lWQ6O+3aUjl+LkV8RVs/o2InADAIA8445vGZaQkKBXX31Vbdq00YABAzRgwIDcqAsAgCz5cPUh/X7gklyczPpfv0YK8HFzdEkAAAA2d3ym293dXbNmzVJERERu1AMAQJYt23VOn244Jkl6/9E6qle2qGMLAgAA+JdsXV7esGFD7d27N6drAQAgy3afidJL34dLkoa2rqju9Us7uCIAAID0shW6p0+frsWLF+uLL75QampqTtcEAMAtRcQkasiC7UpKtaptNT+NCanq6JIAAAAylK3Vy+vUqaPIyEhFRETI1dVVpUuXlru7u/2BTSbt3r07xwpF5li9HEBhkpiSpsf/t1m7z0Spkp+Xlj7TQkXcnB1dFgAAKGSymsPueCE1SfL19VXx4sVttwoDAOBeMAxD437co91nouTj7qwv+jUicAMA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vv32W40ePVpvvPGGdu7cqbp16yokJESXLl2SJMXHx6tjx4565ZVXbnmcNWvWKCgoSJUqVdLGjRv14IMPauXKldqxY4fatGmjrl27KiwsLN3ztm3bplmzZqlOnTq50l9uu9X8nT9/XufPn9eUKVO0d+9ezZs3T7/++qsGDRqU7jjLli1TmzZt5OXlpQ0bNqh3795av369QkNDVbZsWXXo0EHnzp1L97ylS5dq8+bNCgwMvBft3pXbvdYaNmyouXPn6sCBA/rtt99kGIY6dOigtLQ0u+MUhrnKyO3m74bp06fLZDJlepzCNH9ZmbOnnnpKFy5csH29//776Y5TmObsZrebv9DQUHXs2FEdOnTQ1q1btW3bNj377LMym+3/7Chsvx9uNW9ly5a1e71duHBBEydOlJeXlzp16mR3HF53Gb/u+vXrp0OHDunnn3/Wnj171KNHD/Xs2TPda6iwve5uuNX8Xb9+XR06dJDJZNK6dev0999/Kzk5WV27dpXVarU7TmGav+vXr6tu3br65JNPMtz+/vvva+bMmfr888+1ZcsWeXp6KiQkRImJiXb7FaY5u9nt5u/69etq2bKlJk+efMvjhIeH69q1a2rdurU2bdqkOnXq6IcfflB4eLgGDBigfv36afny5emed/LkSb344ou6//77c6Sfu2IAmWjSpIkxfPhw2+O0tDQjMDDQeO+99+z2W79+vSHJuHbtWobHGThwoDF27NhM/z81atQwJk6caDcWGxtrVK5c2VizZo3RunVr4/nnn892H46S1fm7YcmSJYaLi4uRkpJiN962bVvjs88+y/A5qampRpEiRYz58+fbjZ89e9YoXbq0sXfvXiMoKMiYNm3a3TWTy+50rnbv3m1IMo4ePWo3XhjmKiNZmb+wsDCjdOnSxoULFwxJxtKlS9MdpzDN3+3mLKs/dwrTnN3sdvPXtGlT47XXXrvtcQrb74c7/VlXr149Y+DAgenGed3949/z5+npaXz11Vd2z/H19TVmz55tN1bYXnc33Gr+fvvtN8NsNhvR0dG27VFRUYbJZDLWrFljd5zCOn///t1ptVqNgIAA44MPPrCNRUVFGa6ursaiRYvsnltY5+xmmf3tYRiGceLECUOSERYWluH2N99803j88cczPXbnzp2NAQMG2I2lpqYaLVq0ML744gujf//+Rrdu3bJZec7gTDcy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\n",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"### AVIF"
],
"metadata": {
"id": "rtKHhPNjodH_"
}
},
{
"cell_type": "code",
"source": [
"# Select the data for both desktop and mobile over the last 12 months.\n",
"# starting with WebP images on WordPress sites\n",
"from google.cloud import bigquery\n",
"import matplotlib.pyplot as plt\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
" sites_avif AS (\n",
" SELECT\n",
" url,\n",
" date,\n",
" has_avif\n",
" FROM\n",
"\n",
" (\n",
" (\n",
" SELECT\n",
" pageid,\n",
" COUNTIF(ext = 'avif') > 0 AS has_avif,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_requests.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)\n",
" GROUP BY date, pageid\n",
" )\n",
" JOIN\n",
" (\n",
" SELECT\n",
" pageid,\n",
" url,\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE) AS date\n",
" FROM\n",
" `httparchive.summary_pages.*`\n",
" WHERE\n",
" CAST(REPLACE(SUBSTR(_TABLE_SUFFIX, 0, 10), '_', '-') AS DATE)\n",
" > DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)\n",
" )\n",
" USING (pageid, date)\n",
" )\n",
" )\n",
"SELECT\n",
" date,\n",
" COUNT(DISTINCT (IF(has_avif, url, NULL))) AS pages_with_avif,\n",
" COUNT(DISTINCT url) AS pages,\n",
" COUNT(DISTINCT (IF(has_avif, url, NULL))) / COUNT(DISTINCT url) AS pct_avif\n",
"FROM sites_avif\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"avif_over_time_all_web = client.query(query).to_dataframe()\n"
],
"metadata": {
"id": "0Jw6L71zoGVp"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"avif_over_time_all_web.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "fw8FSxg2o6Sp",
"outputId": "c873af19-f2c7-4cb9-87d5-73a86550255d"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"avif_over_time_all_web\",\n \"rows\": 11,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"2024-06-01\",\n \"2024-01-01\",\n \"2024-10-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages_with_avif\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 32008,\n 17573,\n 66380\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pages\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 16935496,\n 15747407,\n 17256429\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_avif\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0011746759979713397,\n \"min\": 0.001087859263660063,\n \"max\": 0.004362535768723326,\n \"num_unique_values\": 11,\n \"samples\": [\n 0.0018899948368798882,\n 0.0011159297527523102,\n 0.003846682300260384\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "avif_over_time_all_web"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-01-01\",\n{\n 'v': 17573,\n 'f': \"17573\",\n },\n{\n 'v': 15747407,\n 'f': \"15747407\",\n },\n{\n 'v': 0.0011159297527523102,\n 'f': \"0.0011159297527523102\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-02-01\",\n{\n 'v': 18406,\n 'f': \"18406\",\n },\n{\n 'v': 16919468,\n 'f': \"16919468\",\n },\n{\n 'v': 0.001087859263660063,\n 'f': \"0.001087859263660063\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-03-01\",\n{\n 'v': 20370,\n 'f': \"20370\",\n },\n{\n 'v': 17049189,\n 'f': \"17049189\",\n },\n{\n 'v': 0.0011947782384253,\n 'f': \"0.0011947782384253\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-04-01\",\n{\n 'v': 23844,\n 'f': \"23844\",\n },\n{\n 'v': 17073259,\n 'f': \"17073259\",\n },\n{\n 'v': 0.001396569922590643,\n 'f': \"0.001396569922590643\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-05-01\",\n{\n 'v': 27749,\n 'f': \"27749\",\n },\n{\n 'v': 17026960,\n 'f': \"17026960\",\n },\n{\n 'v': 0.0016297095899679096,\n 'f': \"0.0016297095899679096\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-06-01\",\n{\n 'v': 32008,\n 'f': \"32008\",\n },\n{\n 'v': 16935496,\n 'f': \"16935496\",\n },\n{\n 'v': 0.0018899948368798882,\n 'f': \"0.0018899948368798882\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-07-01\",\n{\n 'v': 35811,\n 'f': \"35811\",\n },\n{\n 'v': 16780134,\n 'f': \"16780134\",\n },\n{\n 'v': 0.002134130752471941,\n 'f': \"0.002134130752471941\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-08-01\",\n{\n 'v': 40038,\n 'f': \"40038\",\n },\n{\n 'v': 16494843,\n 'f': \"16494843\",\n },\n{\n 'v': 0.002427304097407899,\n 'f': \"0.002427304097407899\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-09-01\",\n{\n 'v': 59639,\n 'f': \"59639\",\n },\n{\n 'v': 16693122,\n 'f': \"16693122\",\n },\n{\n 'v': 0.003572669030993723,\n 'f': \"0.003572669030993723\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2024-10-01\",\n{\n 'v': 66380,\n 'f': \"66380\",\n },\n{\n 'v': 17256429,\n 'f': \"17256429\",\n },\n{\n 'v': 0.003846682300260384,\n 'f': \"0.003846682300260384\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2024-11-01\",\n{\n 'v': 74603,\n 'f': \"74603\",\n },\n{\n 'v': 17100834,\n 'f': \"17100834\",\n },\n{\n 'v': 0.004362535768723326,\n 'f': \"0.004362535768723326\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"pages_with_avif\"], [\"number\", \"pages\"], [\"number\", \"pct_avif\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-997ba993-fe2d-43b6-8f6e-3b93e3979f6d\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-997ba993-fe2d-43b6-8f6e-3b93e3979f6d')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-997ba993-fe2d-43b6-8f6e-3b93e3979f6d button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-2d1f0821-9004-4403-9767-d01dcd0ec48a\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>pages_with_avif</th>\n",
" <th>pages</th>\n",
" <th>pct_avif</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-01-01</td>\n",
" <td>17573</td>\n",
" <td>15747407</td>\n",
" <td>0.001116</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-02-01</td>\n",
" <td>18406</td>\n",
" <td>16919468</td>\n",
" <td>0.001088</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-03-01</td>\n",
" <td>20370</td>\n",
" <td>17049189</td>\n",
" <td>0.001195</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-04-01</td>\n",
" <td>23844</td>\n",
" <td>17073259</td>\n",
" <td>0.001397</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-05-01</td>\n",
" <td>27749</td>\n",
" <td>17026960</td>\n",
" <td>0.001630</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-06-01</td>\n",
" <td>32008</td>\n",
" <td>16935496</td>\n",
" <td>0.001890</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-07-01</td>\n",
" <td>35811</td>\n",
" <td>16780134</td>\n",
" <td>0.002134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-08-01</td>\n",
" <td>40038</td>\n",
" <td>16494843</td>\n",
" <td>0.002427</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-09-01</td>\n",
" <td>59639</td>\n",
" <td>16693122</td>\n",
" <td>0.003573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2024-10-01</td>\n",
" <td>66380</td>\n",
" <td>17256429</td>\n",
" <td>0.003847</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2024-11-01</td>\n",
" <td>74603</td>\n",
" <td>17100834</td>\n",
" <td>0.004363</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-2d1f0821-9004-4403-9767-d01dcd0ec48a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-2d1f0821-9004-4403-9767-d01dcd0ec48a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-2d1f0821-9004-4403-9767-d01dcd0ec48a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-a42882bd-6f42-4b14-b321-0342b23725cc\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-a42882bd-6f42-4b14-b321-0342b23725cc')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-a42882bd-6f42-4b14-b321-0342b23725cc button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" date pages_with_avif pages pct_avif\n",
"0 2024-01-01 17573 15747407 0.001116\n",
"1 2024-02-01 18406 16919468 0.001088\n",
"2 2024-03-01 20370 17049189 0.001195\n",
"3 2024-04-01 23844 17073259 0.001397\n",
"4 2024-05-01 27749 17026960 0.001630\n",
"5 2024-06-01 32008 16935496 0.001890\n",
"6 2024-07-01 35811 16780134 0.002134\n",
"7 2024-08-01 40038 16494843 0.002427\n",
"8 2024-09-01 59639 16693122 0.003573\n",
"9 2024-10-01 66380 17256429 0.003847\n",
"10 2024-11-01 74603 17100834 0.004363"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"\n",
"plt.figure(figsize=(10, 10))\n",
"plt.plot(avif_over_time_all_web['date'], avif_over_time_all_web['pct_avif'])\n",
"\n",
"# Format the y-axis as percentages\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.4%}'.format(y)))\n",
"\n",
"# Format the x-axis dates\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%y'))\n",
"plt.gca().xaxis.set_major_locator(mdates.MonthLocator()) # Show ticks at monthly intervals\n",
"\n",
"# Additional formatting for clarity\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('Percentage All sites using AVIF images', fontsize=12)\n",
"plt.title('AVIF Image Adoption on the web over time', fontsize=14)\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle horizontal grid\n",
"\n",
"plt.tight_layout() # Adjust layout for better readability\n",
"plt.show()\n",
"\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "d92b1ed2-bc39-49fd-d07d-0009ffdc589b",
"id": "CsnGDfoNpASG"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "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Xl5eRr9+/Yynn37a6Nevn2EymYzQ0FDj4MGDhmEYxrlz54wpU6YYAQEBRkBAgDFlyhT7j62Gw4cPF/gaxsXFGaGhoYYk47bbbjOeeuop+/sdGhpqxMXFOezfqVMnQ5IxYMAAIyIiwrj//vuNsWPHGpUrVzYkGR988EGRX29nXo8+ffoYFSpUMPr06WM8+uijRteuXQ1JRt26dY0LFy5c8TmnTJliREZG2v8/tf18++23Dq9Tp06djMqVKxsdO3Y0Jk2aZNx+++2GJCMoKMiIj493OKYrPofbt283JBkPPvigw3jTpk0NSYanp6eRlpZmH587d64hyZg/f7597OLFi/b/H5s3b26MHz/eGDNmjBEREWFIMt566y2HY9v+vtx2221GcHCwMWbMGOOxxx4zGjRoYH+Pi+qrr74yLBaL4evra4wYMcJ48sknjRYtWhiSjOjoaIf3xva869evz3ecbdu2GZKMgQMH2sesVqtx9913G5KM+vXrGw888IAxfvx4o2HDhoYk49FHH3U4hu1vm+2zMmjQIOPJJ580nnnmmULr37p1qzFx4kRDktGsWTOHz8bhw4cNwzCMjz/+2JBkfPzxxw6PdeXfzO+++87w9va21/34448bffv2tc89KSmpKG8HgBKI0A0ATpo0aZJDcD1//rxRsWJFo2bNmkZubq7DvmPGjDEkGR999FG+49j+cfr77787jF8udFeuXNnhH4a2n//+979Fqv1yobugLwDGjh1rSDICAwONWbNm2cetVqvRp08fQ5KxZcsWh8cUFlarVatm1K9f32F8+fLl9rCQnp7usH94eHiBgbFt27aGxWIxlixZ4jAeFxdn+Pn5GTfeeOOVX4g/ZWdnG+Hh4UZgYKA9INiCzbPPPptvf9t7M336dIfx2bNn21/DS0P3mjVrDElGo0aNjOTkZPt4UlKSERUVZUgy1q5dax+3hUxJxvvvv+/wHO+//74hybj11lsdxiMjI43IyMgC51dY6O7SpYshyZg9e7bD+DvvvGNIMrp27eowbgvd0dHRRkpKin187969hoeHR5G/DLqW1+PLL790OJbty5q/fpYLY5tDQWyvkyTjlVdecdj27LPPGpKMGTNmOIy74nNotVqNypUrG40aNbKPJSYmGiaTyejWrZshyfj555/t22xzPnbsmH3smWeeMSQZzz33nGG1Wu3jqamp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6dJFubm5Wrdunf1u2peGblsdAwYMuGwdH3/8cb7nLej9z83N1dmzZ4v0+XLmc9SkSRM1b95cP/74o1JSUpSRkaFvv/1WDRo0UOvWrfMdu2XLlpedV0EdEf56drmks811586dl52r7eogAKULoRsArtK8efNktVrVvn17jRo1Kt+P7R/Yf203FRwcrP79+ys+Pl6LFy++6t7cpYnt8kjbWSwbwzC0fv36fPs3a9ZMkgrctmHDhnxj0dHRkqSYmJhrqtP4sxWRJA0fPrzA97Nt27bKysqyn4mLioqSj4+PNm/erIsXLzocz2q1FlhvixYtJMkemC5lG2vevHm+bevXr5fVai3wOUwmk/11k/LOTl7N2V7b861du1aGYThsMwzD3v6soLqulbOvhytYLBZJrjkz7qrPoU3nzp114MAB+2eta9eukqRbbrlFFSpU0MqVK7Vq1SrVr19f1apVsz+uUaNG8vf31+bNm6+61de6devyjcXExCgnJ8f+Pl3O5d7L48eP6+DBg6pTp06+JQdDhw7VxYsX9fXXX+vbb79VWlqa7rnnHod9/Pz81KhRI+3Zs8elywcK4srPhTNc/VkCULIQugHgKtjOFplMJs2fP18fffRRvp958+apTZs22rFjhzZv3uzweFvAnjFjhpYuXaqoqKgC11SWdrazMb/88ovD+CuvvFJg7+IhQ4ZIkl544QVduHDBPh4fH6833ngj3/4333yzoqOjtWDBAi1cuDDfdqvVau/HfDlr1qzRwYMH1bFjR3388ccFvp+2UG77EsXb21v/+Mc/lJCQoNdee83heB999JH27duX73lsX8RMmzbN4bLplJQU+2WzBZ0N3bdvnz788EOHsQ8//FD79u1T3759HS7PDg4OVmJiYr4vAgpTs2ZNdenSRbt27crX7/iDDz7Qnj171LVr13zruV3B2dfDFWxLPo4fP37Nx3LV59DGdvZ65syZCg4Otn+p4uXlpXbt2unTTz/VH3/84XCWW8q7XHns2LE6evSoHnvssQKD9++//17g1RlvvPGGTpw4Yf89KytLkydPlqQC+5f/1e23366AgAB9/PHHDpe2G4ahJ598Ujk5OQUeZ/DgwbJYLPr000/16aefymQy5QvdkjRhwgRlZGRo9OjRBV5Gfvjw4SL3ab+coKAgmUwml3wunDFixAj5+flp8uTJBS4RyMjI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pEOHDqlu3bpavny5unXrppdfflnz5893eGMkKSwsTNOmTdPYsWPVo0cP1a5dW7Nnz7Zv3717t2644Qbt3r1bjRo1yvc8+/btU9++fbV161Z17NhREydOVO/evdWkSRMtX75cTZs2zfeYgs50R0REKDEx0X7JAt8+MSfmxJyYE3NiTsyJOTEn5sScmJN755SamqqQkJDSdXl5SEiILBaLTp8+7TB++vRpValSJd/+Bw8e1JEjR3TbbbfZx2wvooeHh+Li4lS3bt18j6tTp45CQkJ04MABdevWTVWqVMl3o7acnBwlJSXZn7dKlSoF1mXbVpAHHnhAr732mqxWq7Zu3aq77rpLvr6+6tSpk9asWVNg6Pb29pa3t3e+cU9PT3l6ejqMWSwWWSz5L1m3fWCLOv7X4zozbjabZTbnvy9fYeOF1c6cmNPVjjMn5iQxp8JqvNpx5sScJOZUWI1XO86cmJPEnAqr8WrHS+qcCptDvjqLtNd14uXlpZYtW2rFihX2MavVqhUrVjic+bZp2LChdu7cqW3bttl/+vXrpy5dumjbtm2KiIgo8HlOnDihs2fPqmrVqpLyLhNITk7Wli1b7PusXLlSVqtV0dHR9n3Wrl3r8E3NsmXL1KBBAwUFBeV7jjlz5ig4OFj9+vWzf/ty6bX/l34jAwAAAAAom0rU5eVSXsuwYcOGafbs2br55ps1a9YsffXVV9q7d6/Cw8N17733qnr16poxY0aBj//r5eVpaWmaNm2aBgwYoCpVqujgwYN64okndP78ee3cudN+Vrl37946ffq03n//fWVnZ2vEiBFq1aqVvvjiC0l5fbYbNGigHj166Mknn9Tvv/+ukSNH6l//+pdDazFJSkhIUHR0tNavX69q1apJkho3bqyBAweqR48e6tGjh1auXKnWrVtf8fXg7uUAAAAAUPKUyruXS9LAgQN15swZPf/884qPj1fz5s21ZMkS+03Ljh07VuAlBIWxWCzasWOH5s+fr+TkZFWrVk09evTQiy++6HAZ9+eff65x48apW7duMpvNGjBggN5880379oCAAC1dulQPPfSQWrZsqZCQED3//PP5ArckTZw4UY8++qg9cEvSvHnzNGzYML355pt6/PHHixS4AQAAAAClW4k70w1HnOkGAAAAgJKnqFmtRK3pBgAAAACgLCF0AwAAAABQTAjdAAAAAAAU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zMy0/56amipJys7OVnZ2tv01sVgsys3NldVqdXitLBaLcnJydOl3KRaLRWazudBx23FtPDzyPhY5OTlFGvf09JTValVubq59zGQyycPDo9DxwmpnTsyJOTEn5sScmBNzYk7umdPRsxk6cjZDHmaTWtcMcHhMaZ3T5caZE3O61jn9dW6FKVGhOzExUbm5uQoPD3cYDw8P1969ewt9XEpKiqpXr67MzExZLBa9++67+tvf/mbf3qtXL915552qXbu2Dh48qGeeeUa9e/dWTEyMLBaL4uPjFRYW5nBMDw8PBQcHKz4+XpIUHx+v2rVr56vLti0oKEhfffWVHnnkEU2cOFF9+vTRyJEj9corr6hLly7y8fFRu3btlJiYqPHjx2vcuHEFzmXGjBmaNm1avvGlS5fK19dXklSzZk21aNFCO3bs0LFjx+z7NGjQQA0bNtTGjRt15swZ+3jz5s0VGRmptWvX6vz58/bxNm3aKCwsTEuXLnX4cHfp0kUVKlTQ4sWLHWro06ePLly4oFWrVjm8Tn379lViYqLDFyN+fn7q2rWrjh8/rm3bttnHQ0ND1bZtW+3fv19xcXH2cebEnJgTc2JOzIk5MSfm5N45rf3DJMmiFjX8tW7l0jIxJ6nsvU/MqeTMKSMjQ0VRoi4vP3XqlKpXr64NGzaoTZs29vEnnnhCa9asUWxsbIGPs1qtOnTokNLS0rRixQq9+OKLWrRokTp37lzg/ocOHVLdunW1fPlydevWTS+//LLmz5/v8MZIUlhYmKZNm6axY8eqR48eql27tmbPnm3fvnv3bt1www3avXu3GjVqlO959u3bp759+2rr1q3q2LGjJk6cqN69e6tJkyZavny5mjZtmu8xBZ3pjoiIUGJiov2SBb59Yk7MiTkxJ+bEnJgTc2JOrp7TfZ/+pjX7EvVkrwa6r53jfYhK65wuN86cmNO1zik1NVUhISGl6/LykJAQWSwWnT592mH89OnTqlKl8DUlZrNZ9erVk5T3rcSePXs0Y8aMQkN3nTp1FBISogMHDqhbt26qUqVKvhu15eTkKCkpyf68VapUKbAu27aCPPDAA3rttddktVq1detW3XXXXfL19VWnTp20Zs2aAkO3t7e3vL298417enrK09PTYcxischiyX/Juu0DW9Txvx7XmXGz2SyzOf99+QobL6x25sScrnacOTEniTkV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Wy+//HK+7V26dFFsbOw1FwcAAADg6q2Oy7u0vHWtYFX0duo2TgBcxKnQvWnTJo0YMULe3t4Frg+pXr264uPjr7k4AAAAAFfPtp67M3ctB9zOqdDt6enpcEn5X508eVKVKlVyuigAAAAAzrmYnatfD52VJHViPTfgdk6F7ltuuUVff/11gdvS09P18ccfq1OnTtdUGAAAAICr9+uhs8rMsapqgI+iwjkRBribU6F72rRp2rx5s/r27av//ve/kqTt27fro48+UsuWLXXmzBk999xzLi0UAAAAwJXRKgwoWZy6q0J0dLQWL16ssWPH6t5775UkPfroo5KkunXravHixWratKnrqgQAAABQJGvi/he6Abif07cy7Nq1q+Li4rRt2zbt379fVqtVdevWVcuWLflGDQAAAHCDY2czdCgxXRazSe3qh7i7HAC6htBt07x5czVv3twFpQAAAAC4Fmv2553lblkzSP4+nm6uBoDkZOheu3btZbebTCb5+PioRo0aqlq1qlOFAQAAALg6a+ISJEmdaBUGlBhOhe7OnTsX+RLy+vXra9q0aRo4cKAzTwUAAACgCDJzcrXhoK1VGKEbKCmcCt1LlizRk08+qczMTI0ePVr16tWTJO3fv18fffSRKlSooGeffVZHjx7V7NmzNXjwYFksFv397393afEAAAAA8mw+ck4ZWbkKqeStxlX93V0OgD85Hbp9fHwUGxsrLy8vh20PPvigOnfurF9//VUzZ87UmDFj1KpVK82cOZPQDQAAABSTS1uFmc3c2BgoKZzq0/35559r8ODB+QK3JPn4+GjIkCGaP3++/fd77rlHu3fvvrZKAQAAABTK3iqM9dxAieJU6E5PT9fp06cL3f7HH38oLS3N/ntgYKAsFoszTwUAAADgCk4lX1Dc6fMym6QO9WgVBpQkToXurl27atasWfrxxx/zbfvhhx/0xhtvqGvXrvaxbdu2qVatWk4XCQAAAKBwa/+8tLxZRKCCKua/GhWA+zi1pvvtt99Wly5ddPvtt6t69eqqW7euJOngwYM6efKkIiMj9dZbb0mSLl68qGPHjum+++5zXdUAAAAA7FbH/W89N4CSxanQXbNmTe3cuVPvv/++fv75Zx09elSS1KhRIz388MN64IEHVLFiRUl5a7oXL17suooBAAAA2GXnWrX+QKIkqXODMDdXA+CvnArd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jdQAAACAEmLL0XNKz8pV5YpealItwN3lAHABQjcAAABQQtjWc3eMCpXZzHJNoCwo8uXlTZs2vaoDm0wmbd++/aoLAgAAAMqr1XEJkqTOXFoOlBlFDt3BwcHcHA0AAAAoJqdTL2pv/HmZaBUGlClFDt2rV68uxjIAAACA8s121/Km1QNUuZK3m6sB4CpFXtP9448/Kjc3tzhrAQAAAMot23ruTg3C3FwJAFcqcuju16+fqlatqnHjxmnDhg3FWRMAAABQruTkWrVuP/25gbKoyKF79uzZuuGGG/T++++rQ4cOqlOnjp577jnt2bOnOOsDAAAAyrxtx5OVejFHARU81Twi0N3lAHChIofu0aNHa9WqVTp27JheffVVBQcH66WXXlKTJk1000036fXXX9epU6eKs1YAAACgTLJdWt6hfogstAoDypSr7tNdrVo1Pfroo9q8ebP27t2rZ599Vunp6XrsscdUs2ZNdevWTR9//LFSU1OLo14AAACgzFkdx6XlQFllMgzDcMWBNm3apAULFmjhwoWKj4+Xj4+P0tPTXXHoci01NVUBAQFKSUmRv7+/u8sBAACAiyWmZarV9OWSpI3PdFOYv4+bKwJQFEXNald9prswtWrVUp06dVSjRg0ZhqGLFy+66tAAAABAmWW7gVrjqv4EbqAMuqbQnZaWpk8++US9evVS9erVNWHCBJ05c0bPPPOMfv/9d6eP+84776hWrVry8fFRdHS0Nm7cWOi+33zzjVq1aqXAwEBVrFhRzZs316effuqwj2EYev7551W1alVVqFBB3bt31/79+x32SUpK0pAhQ+Tv76/AwECNGjVKaWlpDvvs2LFDHTp0kI+PjyIiIvTqq686bF+2bJmioqLk7++voUOHKisry74tJSVFUVFROnr0qLMvCwAAAMog26XlnRtwaTlQFl116M7OztaiRYv0j3/8Q+Hh4Ro+fLg2b96s++67T+vWrdOhQ4c0ffp0NWrUyKmCFi5cqEmTJmnKlCn67bff1KxZM/Xs2VMJCQkF7h8cHKzJkycrJiZGO3bs0IgRIzRixAj9/PPP9n1effVVvfnmm3r//fcVGxurihUrqmfPng5n44cMGaJdu3Zp2bJl+vHHH7V27Vrdf//99u2pqanq0aOHIiMjtWXLFv3zn//U1KlT9cEHH0iSrFarBg8erDFjxigmJkabN2+2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00UBAAAAJcWaP9dzd+au5QCc4FTofvjhh/Xll19q5syZSklJkSRZrVYdOHBAQ4cOVUxMjB555BGXFgoAAABcb1k5Vq0/8GersAaEbgBXz6kbqd1zzz06evSonn32WU2ePFmS1KtXLxmGIbPZrJdffll33HGHK+sEAAAArrstR88pPStXlSt6qUm1AHeXA6AUcip0S9LkyZM1dOhQ/ec//9GBAwdktVpVt25d3XnnnapTp44rawQAAADcwraeu2NUqMxmWoUBuHpOhe5jx44pNDRUNWvWLPAy8gsXLujMmTOqWbPmNRcIAAAAuMvquARJef25AcAZTq3prl27tr799ttCt3///feqXbu200UBAAAA7nY69aL2xp+XySR1qE+rMADOcSp0G4Zx2e3Z2dkym506NAAAAFAi2O5a3rR6gCpX8nZzNQBKqyJfXp6amqrk5GT772fPntWxY8fy7ZecnKwvv/xSVatWdUmBAAAAgDvY1nN3ahDm5koAlGZFDt3/+te/9MILL0iSTCaTHn74YT388MMF7msYhqZPn+6SAgEAAIDrLSfXqnX7/wzdrOcGcA2KHLp79OihSpUqyTAMPfHEE7r77rt10003OexjMplUsWJFtWzZUq1atXJ5sQAAAMD1sO14slIv5iiggqeaRwS6uxwApViRQ3ebNm3Upk0bSVJ6erruvPNO3XjjjcVWGAAAAOAutkvLO9QPkYVWYQCugVMtw6ZMmeLqOgAAAIASY3Ucl5YDcI0ihe4XXnhBJpNJkydPltlstq/tvhyTyaTnnnvumgsEAAAArqfEtEztPJkiidAN4NqZjCv1/5JkNptlMpl04cIFeXl5FakdmMlkUm5urkuKLM9SU1MVEBCglJQU+fv7u7scAACAMu/brSf0yMLtalzVX4sndnB3OQBKqKJmtSKd6bZarZf9HQAAACgrbJeWd27AWW4A1+7Kp6wBAACAciLXamjtPtZzA3Adp26kVpCMjAx9+eWXyszMVJ8+fRQZGemqQwMAAADXxc6TKTqXkS0/bw/dFBnk7nIAlAFOhe5Ro0YpNjZWv//+uyQpKytLt9xyi/33gIAArVy5Ui1atHBdpQAAAEAxW/PnpeXt6oXI08JFoQCunVN/SVatWqU777zT/vsXX3yh33//XZ9//rl+//13ValSRdOmTXNZkQAAAMD1sGZfgiSpE+u5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bDb16dNHTz31lNavX69//vnHvk2SXn75ZT311FOqWLFifk8ZAAC4QXM2RuqBaet1KjZZlUp56eenW+q+8HKOLgsAUAyZDMMwHF3E1Zo2barGjRvr448/lnQ5zJYvX15Dhw7Vyy+/fN3XW61WlSxZUh9//LH69esnwzBUpkwZPf/883rhhRckXT7rHBISohkzZqhXr17au3ev6tSpo02bNqlRo0aSpMWLF6tz5846efKkypQpo2nTpunVV1/VmTNn5ObmJulykJ4/f7727duns2fPKiQkRMnJyfLw8NCIESOUmJioqVOnat26dXrmmWe0YcMGWSzX/ut5amqqUlNT7R/Hx8erfPnyiomJkZ+fnyTJbDbLYrHIarXKZrPZ970ynpGRoau/rBaLRWazOcfx9PT0TDW4uFy+6yAjIyNX466urrLZbLJarfYxk8kkFxeXHMdzqp2e6Ime6Ime6Kkge0rNsOmN3/Zp3j+XHwd2R60gTbi/rvy93IpsT8Xx60RP9ERP9FQUeoqPj1dgYKDi4uLsWS07heqe7rS0NG3evFkjR460j5nNZnXo0EHr16/P1TGSkpKUnp6ugIAASdLRo0d15swZdejQwb6Pv7+/mjZtqvXr16tXr15av369SpQoYQ/cktShQweZzWZt2LBB9913n9avX682bdrYA7ckderUSe+++64uXryooKAglS5dWkuXLlWHDh30559/qn///kpPT9egQYP05ZdfXjdwS9K4ceM0duzYLONLly6Vl5eXJKlChQoKDw/Xjh07FBkZad+nZs2aqlWrljZu3Khz587Zx8PCwlSxYkWtWbNGCQkJ9vHmzZsrODhYS5cuzfTmbteunTw9PbVo0aJMNXTu3FnJyclauXKlfczFxUVdunRRTExMpq+Rr6+v2rdvrxMnTmjbtm328aCgILVo0UIHDx7U/v377eP0RE/0RE/0RE8F3dP5FOnrQ646nmDIbJI6l7fqjhKntXbl6SLbU3H8OtETPdETPRWVnpKSkpQbhepMd1RUlMqWLat169apefPm9vGXXnpJq1ev1oYNG657jKefflpLlizR7t275eHhoXXr1qlly5aKiopS6dKl7fv17NlTJpNJc+fO1TvvvKOvv/460xdGkoKDgzV27FgNGjRIHTt2VOXKlTV9+nT79j179ui2227Tnj17VLt2ba1du1bPPfec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\n",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"# Modern Image Formats plugin"
],
"metadata": {
"id": "exfPhkYHpRKw"
}
},
{
"cell_type": "markdown",
"source": [
"## Adoption over time"
],
"metadata": {
"id": "gD_2Jg8EpVVa"
}
},
{
"cell_type": "code",
"source": [
"client = bigquery.Client(project=project_id)\n",
"# 1. Identify Active and Non-Active Sites\n",
"modern_images_plugin_active = f\"\"\"\n",
" CREATE TEMP FUNCTION getFeature(payload STRING, generator_tag STRING)\n",
" RETURNS STRING\n",
" LANGUAGE js\n",
" AS '''\n",
" try {{\n",
" var $ = JSON.parse(payload);\n",
" var almanac = JSON.parse($._almanac);\n",
" var generators = almanac['meta-nodes'].nodes.find(node => node.name == 'generator' && node.content.startsWith(generator_tag));\n",
" if ( generators.length == 0 ) {{\n",
" return \"\";\n",
" }}\n",
" var content = generators.content;\n",
" return content;\n",
" }} catch (e) {{\n",
" return \"\";\n",
" }}\n",
" ''';\n",
"\n",
"WITH\n",
" wordpress_sites AS (\n",
" SELECT\n",
" date,\n",
" page AS origin,\n",
" client AS device,\n",
" IF( getFeature(payload, 'webp-uploads') != \"\", 'true', 'false' ) AS uses_modern_images_plugin\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) AS technologies,\n",
" UNNEST(technologies.categories) AS category\n",
" WHERE\n",
" date > PARSE_DATE( '%Y-%m-%d', '2024-02-01' )\n",
" AND technologies.technology = 'WordPress'\n",
" AND category = 'CMS'\n",
" AND is_root_page = TRUE\n",
" )\n",
"\n",
"SELECT\n",
" date,\n",
" COUNT( DISTINCT origin ) AS wordpress_origins,\n",
" COUNT( DISTINCT IF( uses_modern_images_plugin = 'true', origin, null ) ) AS uses_modern_images_plugin,\n",
" COUNT( DISTINCT IF( uses_modern_images_plugin = 'true', origin, null ) ) / COUNT ( DISTINCT origin ) AS pct_uses_modern_images_plugin\n",
"FROM wordpress_sites\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"modern_images_plugin_def = client.query(modern_images_plugin_active).to_dataframe()\n"
],
"metadata": {
"id": "-jT_x5BYpXoU"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"modern_images_plugin_def.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "MCPE0mRZrgm0",
"outputId": "7d282768-0346-4d2c-dd85-f83cb5f41194"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"modern_images_plugin_def\",\n \"rows\": 9,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 9,\n \"samples\": [\n \"2024-10-01\",\n \"2024-04-01\",\n \"2024-08-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"wordpress_origins\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 9,\n \"samples\": [\n 5983748,\n 5926995,\n 5634882\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_modern_images_plugin\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 8,\n \"samples\": [\n 8687,\n 16625,\n 0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_uses_modern_images_plugin\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0012532185315826162,\n \"min\": 0.0,\n \"max\": 0.0034032822736771657,\n \"num_unique_values\": 8,\n \"samples\": [\n 0.0014638458551946897,\n 0.0028767345627934487,\n 0.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "modern_images_plugin_def"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-03-01\",\n{\n 'v': 5935372,\n 'f': \"5935372\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-04-01\",\n{\n 'v': 5926995,\n 'f': \"5926995\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0.0,\n 'f': \"0.0\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-05-01\",\n{\n 'v': 5934368,\n 'f': \"5934368\",\n },\n{\n 'v': 8687,\n 'f': \"8687\",\n },\n{\n 'v': 0.0014638458551946897,\n 'f': \"0.0014638458551946897\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-06-01\",\n{\n 'v': 5895943,\n 'f': \"5895943\",\n },\n{\n 'v': 11237,\n 'f': \"11237\",\n },\n{\n 'v': 0.0019058868106425046,\n 'f': \"0.0019058868106425046\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-07-01\",\n{\n 'v': 5820251,\n 'f': \"5820251\",\n },\n{\n 'v': 13060,\n 'f': \"13060\",\n },\n{\n 'v': 0.002243889481742282,\n 'f': \"0.002243889481742282\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-08-01\",\n{\n 'v': 5634882,\n 'f': \"5634882\",\n },\n{\n 'v': 14576,\n 'f': \"14576\",\n },\n{\n 'v': 0.0025867444961580385,\n 'f': \"0.0025867444961580385\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-09-01\",\n{\n 'v': 5779122,\n 'f': \"5779122\",\n },\n{\n 'v': 16625,\n 'f': \"16625\",\n },\n{\n 'v': 0.0028767345627934487,\n 'f': \"0.0028767345627934487\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-10-01\",\n{\n 'v': 5983748,\n 'f': \"5983748\",\n },\n{\n 'v': 18381,\n 'f': \"18381\",\n },\n{\n 'v': 0.0030718205378969837,\n 'f': \"0.0030718205378969837\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-11-01\",\n{\n 'v': 5916935,\n 'f': \"5916935\",\n },\n{\n 'v': 20137,\n 'f': \"20137\",\n },\n{\n 'v': 0.0034032822736771657,\n 'f': \"0.0034032822736771657\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"wordpress_origins\"], [\"number\", \"uses_modern_images_plugin\"], [\"number\", \"pct_uses_modern_images_plugin\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-0a29ef5a-33db-46ad-bd00-e6459bfd2808\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0a29ef5a-33db-46ad-bd00-e6459bfd2808')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-0a29ef5a-33db-46ad-bd00-e6459bfd2808 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-97a34981-f9f9-400e-9d0b-bdd7d6f291be\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>wordpress_origins</th>\n",
" <th>uses_modern_images_plugin</th>\n",
" <th>pct_uses_modern_images_plugin</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-03-01</td>\n",
" <td>5935372</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-04-01</td>\n",
" <td>5926995</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-05-01</td>\n",
" <td>5934368</td>\n",
" <td>8687</td>\n",
" <td>0.001464</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-06-01</td>\n",
" <td>5895943</td>\n",
" <td>11237</td>\n",
" <td>0.001906</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-07-01</td>\n",
" <td>5820251</td>\n",
" <td>13060</td>\n",
" <td>0.002244</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-08-01</td>\n",
" <td>5634882</td>\n",
" <td>14576</td>\n",
" <td>0.002587</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-09-01</td>\n",
" <td>5779122</td>\n",
" <td>16625</td>\n",
" <td>0.002877</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-10-01</td>\n",
" <td>5983748</td>\n",
" <td>18381</td>\n",
" <td>0.003072</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-11-01</td>\n",
" <td>5916935</td>\n",
" <td>20137</td>\n",
" <td>0.003403</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-97a34981-f9f9-400e-9d0b-bdd7d6f291be')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-97a34981-f9f9-400e-9d0b-bdd7d6f291be button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-97a34981-f9f9-400e-9d0b-bdd7d6f291be');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-3a7bab8c-5f04-4e1f-8582-be17f13bdb77\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3a7bab8c-5f04-4e1f-8582-be17f13bdb77')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-3a7bab8c-5f04-4e1f-8582-be17f13bdb77 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" date wordpress_origins uses_modern_images_plugin \\\n",
"0 2024-03-01 5935372 0 \n",
"1 2024-04-01 5926995 0 \n",
"2 2024-05-01 5934368 8687 \n",
"3 2024-06-01 5895943 11237 \n",
"4 2024-07-01 5820251 13060 \n",
"5 2024-08-01 5634882 14576 \n",
"6 2024-09-01 5779122 16625 \n",
"7 2024-10-01 5983748 18381 \n",
"8 2024-11-01 5916935 20137 \n",
"\n",
" pct_uses_modern_images_plugin \n",
"0 0.000000 \n",
"1 0.000000 \n",
"2 0.001464 \n",
"3 0.001906 \n",
"4 0.002244 \n",
"5 0.002587 \n",
"6 0.002877 \n",
"7 0.003072 \n",
"8 0.003403 "
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"\n",
"plt.figure(figsize=(10, 10))\n",
"plt.plot(modern_images_plugin_def['date'], modern_images_plugin_def['uses_modern_images_plugin'])\n",
"\n",
"# Format the y-axis as percentages\n",
"\n",
"# Format the x-axis dates\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%y'))\n",
"plt.gca().xaxis.set_major_locator(mdates.MonthLocator()) # Show ticks at monthly intervals\n",
"\n",
"\n",
"# Additional formatting for clarity\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('Sites using modern image formats plugin', fontsize=12)\n",
"plt.title('Plugin adoption over time', fontsize=14)\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle horizontal grid\n",
"\n",
"plt.tight_layout() # Adjust layout for better readability\n",
"plt.show()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "gN2uzX7RrkV3",
"outputId": "9594dd5f-c775-4755-b660-32740fde0868"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAPdCAYAAACXzguGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADOpUlEQVR4nOzdd3hUVbvG4Wdm0kMKIYQeem+hSBPBoBKkCGKhWFCwI1Is4Ic0GwgCYgEEC9gQUQFBRBBBQEInREroVUggkAYhIZnZ5w9ORmISDEPCpPzu6/I6J2uv2fO+M3zKk7322ibDMAwBAAAAAIA8Z3Z2AQAAAAAAFFWEbgAAAAAA8gmhGwAAAACAfELoBgAAAAAgnxC6AQAAAADIJ4RuAAAAAADyCaEbAAAAAIB8QugGAAAAACCfELoBAAAAAMgnhG4AQIExduxYmUwmrVmz5qa+75w5c2QymTRnzpyb+r6OcNZndC1Hjx6VyWTSY4895uxSipXHHntMJpNJR48edXYpAIBrIHQDAPJNRhi7+h83NzdVqlRJffv2VWRkpLNLRC5VqVJFVapUcXYZxUph+mUQACBnLs4uAABQ9FWvXl0PP/ywJOnChQvauHGj5s2bpx9//FGrVq3Srbfe6tT67r33XrVq1UrlypVzah2FVYUKFbR37175+fk5u5RiZfz48RoxYoQqVKjg7FIAANdA6AYA5LsaNWpo7NixmcZee+01vfXWWxo5cqTTl0r7+fkRGG+Aq6ur6tSp4+wyip1y5crxiyIAKARYXg4AcIpBgwZJkrZs2XLNeWvWrJHJZMoS2qVr30v8xx9/qF27dvL29lapUqXUq1cvnThxQrfffrtMJlOmuTkt4zWZTLr99tsVExOjfv36KTAwUJ6enmrVqtV1/aLg1KlTGjNmjFq1aqWgoCC5u7urSpUqeu6553TmzJlsX3PixAn16dNHAQEBKlGihNq3b6+1a9de830+//xztWzZUiVKlFCJEiXUsmXLbJcmX/2Zrl+/Xrfffrt8fHzk7++v++67TwcPHrTPzfiMjx07pmPHjmW6VSDjO7nW93Ds2DENGDBAFSpUkJubmypWrKgBAwbo+PHjWeZmfDdpaWkaO3asqlSpInd3d9WqVUvTp0+/Zu+Ofh7r1q2TyWRS//79sz3HmTNn5OrqmmU1RlJSksaMGaP69evL09NT/v7+CgsL0/r163PsKyUlRa+99pqqV68uV1fXbP9MZ3jsscf0+OOPS5Ief/zxTJ/71XP+fU/31d/thg0bFBoaKh8fH5UuXVrPPfecLl26JEn6+eef1bp1a3l7e6tMmTJ65ZVXlJ6enm0tixcv1h133KGSJUvKw8NDDRo00Lvvviur1Zpj/QCAf3ClGwDgVP8OwHlhxYoV6tKliywWi3r16qXy5ctr9erVatu2rUqWLHld54qPj1fbtm3l5+enRx55RGfOnNH8+fMVFhambdu2qUGDBv95jrVr12ry5Mm644471LJlS7m6umrHjh2aMWOGfv31V23fvj3TlfbTp0+rdevW+vvvvxUWFqamTZtq7969uuuuuxQaGprte7zwwgv64IMPVKFCBQ0YMECS9MMPP+jxxx/Xjh07NG3atCyv2bhxo8aPH69OnTpp0KBB2r17txYuXKh169Zp48aNqlatmvz9/TVmzBi99957kqQhQ4bYX3/77bdfs+/9+/erbdu2Onv2rLp166b69etr165d+uyzz7RkyRKtX79etWrVyvK6Pn36aPPmzbr77rtlsVj03XffaeDAgXJ1ddWTTz75H5/29X0ebdu2VZUqVfTDDz9o+vTp8vDwyHSeefPmKT09XY888oh97Pz582rXrp12796tW2+9Vc8884wSExO1ePFihYaGasGCBerRo0eWmu677z7t3LlTnTp1kr+/v6pWrZpj/T169FB8fLwWL16s7t27KyQkJFd9Z9i0aZPeeecdhYWF6emnn9bq1as1Y8YMJSYmqlu3bnrsscfUvXt3tW7dWj///LMmTZqkEiVKaPTo0ZnO8+qrr2rChAmqUKGCevbsKT8/P61bt04vv/yyNm3apAULFlxXXQBQLBkAAOSTI0eOGJKMsLCwLMdGjx5tSDJCQ0PtY2PGjDEkGatXr7aPrV692pBkjBkzJsfz9+vXzz6Wnp5uVK5c2TCZTMa6desyzX/00UcNSca///P3+eefG5KMzz//PNN4xtznnnvOsFqt9vFPPvnEkGQ8/fTTufgUDCMmJsZISkrKMj537lxDkvHmm29mGu/Xr1+24x9//LG9pqs/oz/++MOQZNStW9eIj4+3j58/f96oVauWIclYu3atfTzjM5VkzJw5M9N7zJw505BkdO3aNdN45cqVjcqVK2fbX3bfg2EYRmhoqCHJ+PjjjzONf/TRR4Yko0OHDpnG27dvb0gyWrZsaSQkJNjHo6KiDBcXF6N27drZvv+/Xe/n8dprrxmSjPnz52c5V7NmzQw3Nzfj3Llz9rG+ffsakozZs2dnmhsTE2NUqlTJKF26tHHp0qUsfYWEhGQ6z3/J6c9lhow/J0eOHLGPXf3dLlq0yD5++fJlo1GjRobJZDICAwONzZs3248lJiYaQUFBRkBAgHH58mX7+IoVK+z/+71w4YJ93GazGc8884whyfj+++9z3Q8AFFcsLwcA5LuDBw9q7NixGjt2rF5++WW1a9dOr7/+ujw8PPTWW2/l6XutX79ex44dU7du3dS2bdtMx958801ZLJbrOp+3t7feeecdmc3//CezX79+cnFx+c+l8RmCgoJUokSJLOOPPPKIfH199dtvv9nHLl++rPnz5ysoKEgvvvhipvlPPPGEatasmeU8c+fOlXTlcWJXXzEvWbKkxowZI0nZLjOvVatWlivHTz75pGrWrKmff/5ZZ8+ezVV/2Tl+/LhWr16tevXqZXmPZ555RnXq1NHvv/+uEydOZHnt+PHj5evra/+5du3auvXWW7Vv3z4lJSX953tf7+eRcRX7q6++ynSevXv3atu2bercubMCAgIkSbGxsZo/f746dOigJ554ItP8oKAgvfzyyzp79mym7zTDuHHj7OfJb6Ghoerevbv9Z1dXV91///0yDEPdunXTLbfcYj/m4+Ojrl276vz58zp58qR9/MMPP5QkzZo1S97e3vZxk8mkCRMmyGQyad68eTehGwAo3FheDgDId4cOHdK4ceMkXfnLf5kyZdS3b1+NGDFCDRs2zNP32rlzpyRlCdySVKlSJQUHB+vIkSO5Pl+tWrWyBGYXFxeVKVNG8fHxuT7Pjz/+qI8//ljbt29XXFxcpvthT506Zf//9+3bp5SUFHXo0CHLUmez2axbb71VBw4cyDS+Y8cOSdkv985Yjh4REZHl2K233prplwn/fo+dO3fqzjvvzHWPV8t4v/bt22e5hcBsNqtdu3aKiopSRESEKlWqlOl4s2bNspyvYsWKkq4s9/fx8bnme1/v51GrVi21aNFCy5cvV2xsrAIDAyX9E8KvXlq+ZcsWWa1WpaamZntPdsZ3ExUVpa5du2Y61qJFi2vWnZeyW46esenatY6dOnXKvux948aN8vb21meffZbte3h6eioqKipvCgaAIozQDQDId2FhYVq+fPlNea/ExERJV646ZqdMmTLXFbqvvuJ6NRcXl1xvJDV58mS99NJLKl26tDp27KiKFSvK09NTkvTee+8pNTXVPjchIeE/6/+3xMREmc1mlS5dOtv5JpPJ/rn817muHs+oxREZ75fTe2SEvOzqyu4zd3G58leW3HzmjnwejzzyiDZv3qz58+dr4MCBMgxDX3/9tUqWLKkuXbrY550/f16S9Oeff+rPP//MsYaLFy9m+943y7U+w2sdS0tLs4+dP39e6enp9l+YZSe7PgEAmRG6AQAFWsaV2Ox2Vs4uFGYEipx2BY+JicnD6v5benq63njjDZUrV04RERGZwrRhGJo4cWKm+RnLoa+nfl9fX9lsNp09ezZLWD9z5owMw8g2aOX0WWSM38hj1DLeL6f3iI6OzjQvLznyefTu3VvDhg3TV199pYEDB2rt2rU6duyYnn76abm7u2c6tyS9+OKLevfdd6+rrvzYNDA/+fr6ymQyKTY21tmlAEChxj3dAIACLWO38b///jvLsYxlxFdr3LixJGV7FfLkyZPZPqoqP8XGxiohIUGtW7fOEgC3bt1qf4RThlq1asnDw0Nbt25VSkpKpmM2m00bNmzI8h5NmjSRpGwfY5Yxlt2S4j///FM2my3b9zCZTPbPUpIsFst1PSIq4/3Wrl0rwzAyHTMMw/74s+vdlTs3HPk8AgMD1alTJ23cuFEHDx60Ly1/+OGHM8275ZZbZDKZFB4enud1/1vG/gPOejRXy5Ytde7cuSy3MwAArg+hGwBQoNWuXVs+Pj766aef7Et7pStXUN98880s89u2bavg4GAtWbIkSzAaNWrUTQ8wQUFB8vT01Pbt25WcnGwfj4uLsz+r/Gru7u568MEHdebMGU2ePDnTsU8++UT79+/P8pp+/fpJurJR19XLphMSEuxLgzPmXG3//v2aPXt2prHZs2dr//796tKlS6bl2QEBAYqNjc3yi4CcBAcHKzQ0VLt3785yT/CsWbO0d+9edejQIcv93HnB0c8j497tTz75RAsWLFDVqlWzPJ+7bNmyevDBB7VhwwZNmjQpyy8UpCuP67r6u3ZUxqZr2W02dzO88MILkqT+/fvr3LlzWY5HR0dr7969N7ssACh0WF4OACjQ3NzcNGjQIL399ttq2rSpunfvrqSkJC1ZskTt27fXoUOHMs23WCyaOXOm7rnnHnXo0EG9evVSuXLl9Mcff+jvv/9W48aNFRkZedPqN5vNeu655zR58mQ1btxY3bp1U2Jion755RdVrlxZ5cuXz/KaCRMmaNWqVXrttde0fv16NWnSRHv37tWyZcvUsWNHrVixItP8du3aadCgQfrggw/UoEED3XfffTIMQz/88INOnjypF154Qe3atcvyPmFhYXrhhRe0bNky1a9fX7t379aSJUsUGBiY5bneHTp00NatW3X33Xfrtttuk5ubm9q1a5fteTPMmDFDbdu21ZNPPqklS5aoXr162r17t3766SeVLl1aM2bMcPBTvTZHP49u3brJz89PU6ZMUVpaml544YVsl4RPnz5d+/bt0yuvvKIvv/xSrVu3lr+/v06cOKGtW7fqwIEDOn36tLy8vG6oj9atW8vT01Pvvfee4uLi7L8Eee21127ovLnVqVMnjRo1Sm+88YZq1KihTp06qXLlyjp37pwOHjyodevW6c0331TdunVvSj0AUFhxpRsAUOC98cYbGjt2rGw2m2bOnKk///xTo0aN0qRJk7Kdf/fdd2vFihVq3ry5vvvuO82aNUsVK1bU+vXrZbVa8+U+4msZP3683nrrLZlMJk2fPl0rV65Unz59tGLFCrm6umaZX65cOW3YsEG9evXSxo0bNW3aNJ07d04rV65U69ats32P999/X5999pnKli2rWbNmafbs2SpXrpw+++yzLAE6Q6tWrbRq1SolJCTo/fff15o1a9SjRw+Fh4erWrVqmeaOGjVKTz75pPbt26e3335bo0aN0u+//37NvmvXrq2tW7fqscce0+bNmzVp0iRt2bJFjz/+uLZs2aJatWrl8hO8fo58Hh4eHnrggQfsm4n9e2l5hoCAAG3YsEETJ06Um5ubvv76a33wwQfauHGj6tevry+++MK+A/qNCAgI0Pfff69atWpp9uzZGjVqlEaNGnXD570er7/+ulauXKnbbrtNq1at0pQpU7R06VL77u0PPfTQTa0HAAojk5HduigAAIqgpKQklSlTRg0bNtSmTZucXY7TrFmzRqGhoRozZky2j70CAAB5hyvdAIAi5+LFi0pKSso0ZrVa9fLLL+vSpUvq0aOHcwoDAADFDvd0AwCKnAMHDqht27YKCwtTtWrVlJSUpHXr1mnPnj2qX7++fYMoAACA/EboBgAUORUqVNADDzygP/74Q8uXL1d6erqCg4P10ksvaeTIkfL29nZ2iQAAoJjgnm4AAAAAAPIJ93QDAAAAAJBPWF6eT2w2m06dOiUfH59sn/EJAAAAACi8DMNQUlKSypcvL7M55+vZhO58curUKVWqVMnZZQAAAAAA8tGJEydUsWLFHI8TuvOJj4+PpCtfgK+vr5OrAQAAAADkpcTERFWqVMme/XJC6M4nGUvKfX19Cd0AAAAAUET91+3EbKQGAAAAAEA+IXQDAAAAAJBPCN0AAAAAAOQTQjcAAAAAAPmE0A0AAAAAQD4hdAMAAAAAkE8I3QAAAAAA5BNCNwAAAAAA+YTQDQAAAABAPiF0AwAAAACQTwjdAAAAAADkE0I3AAAAAAD5hNANAAAAAEA+IXQDAAAAAJBPCN0AAAAAAOQTQjcAAAAAAPmE0A0AAAAAQD4hdAMAAAAAkE8I3QAAAAAA5BNCNwAAAAAA+YTQDQAAAABAPiF0AwAAAACQTwjdAAAAAADkE0I3AAAAAAD5hNANAAAAAEA+IXQDAAAAAJBPCN0AAAAAAOQTQjcAAAAAAPmE0A0AAAAAQD4hdAMAAAAAkE8I3QAAAAAA5BNCNwAAAAAA+YTQDQAAAABAPiF0AwAAAACQTwjdAAAAAADkE0I3AAAAAAD5hNANAAAAAChwElPSnF1CniB0AwAAAAAKDJvN0NwNR9Vm/O/aeSLe2eXcMBdnFwAAAAAAgCRFJ6To5e93at2BWEnSd1tPqHElf+cWdYMI3QAAAAAAp1uy85ReW7RLCZfS5O5i1v8619UjrSo7u6wbVqCWl48fP1633HKLfHx8FBQUpB49emjfvn2Z5qSkpGjgwIEqVaqUSpQoofvuu08xMTGZ5hw/flxdunSRl5eXgoKC9PLLLys9PT3TnDVr1qhp06Zyd3dXjRo1NGfOnCz1fPTRR6pSpYo8PDzUsmVLbd68Oc97BgAAAIDiLCE5TYO/3aFB83Yo4VKaGlbw088v3KZ+barIbDY5u7wbVqBC9x9//KGBAwdq48aNWrlypdLS0tSxY0ddvHjRPmfo0KFasmSJFixYoD/++EOnTp1Sz5497cetVqu6dOmiy5cva8OGDZo7d67mzJmj0aNH2+ccOXJEXbp0UWhoqCIiIjRkyBA98cQT+vXXX+1z5s+fr2HDhmnMmDHavn27GjdurLCwMJ05c+bmfBgAAAAAUMStPxCrsPfWanHEKVnMJr1wR039+Fwb1Qgq4ezS8ozJMAzD2UXk5OzZswoKCtIff/yhdu3aKSEhQaVLl9Y333yj+++/X5IUFRWlunXrKjw8XK1atdIvv/yirl276tSpUypTpowkaebMmRo+fLjOnj0rNzc3DR8+XD///LN27dplf6/evXsrPj5ey5cvlyS1bNlSt9xyiz788ENJks1mU6VKlTRo0CCNGDHiP2tPTEyUn5+fEhIS5Ovrm9cfDQAAAAAUWilpVr2zPEqf/3lUklSllJem9ApR0+CSzi3sOuQ28xXoe7oTEhIkSQEBAZKkbdu2KS0tTXfeead9Tp06dRQcHGwP3eHh4WrYsKE9cEtSWFiYnn32We3evVtNmjRReHh4pnNkzBkyZIgk6fLly9q2bZteffVV+3Gz2aw777xT4eHh2daampqq1NRU+8+JiYmSpLS0NKWlpdnPYbFYZLVaZbPZMp3bYrEoPT1dV/8OxGKxyGw25ziecd4MLi5Xvs5/L6XPadzV1VU2m01Wq9U+ZjKZ5OLikuN4TrXTEz3REz3REz3REz3REz3REz3lpqfIE3Ea+t1OHTp7ZUVz3xaV9FrXenK3mDK9b0Hv6d/ny0mBDd02m01DhgzRrbfeqgYNGkiSoqOj5ebmJn9//0xzy5Qpo+joaPucqwN3xvGMY9eak5iYqEuXLikuLk5WqzXbOVFRUdnWO378eI0bNy7L+IoVK+Tl5SVJCg4OVpMmTRQZGanjx4/b59SuXVt16tTR5s2bdfbsWft4SEiIKleurLVr1yopKck+3rp1awUFBWnFihWZ/iCEhobK09NTy5Yty1RD586ddenSJa1evdo+5uLioi5duig2NjbTLxJ8fHzUoUMHnThxQhEREfbx0qVLq02bNjpw4ECm++zpiZ7oiZ7oiZ7oiZ7oiZ7oiZ5y05OXdwntMwdr6m/7ZbVJvq6Gele36fayF+Tl5qKoqKhC1VNycrJyo8AuL3/22Wf1yy+/aP369apYsaIk6ZtvvtHjjz+e6YqyJLVo0UKhoaF655139NRTT+nYsWOZ7s9OTk6Wt7e3li1bprvvvlu1atXS448/nulK9rJly9SlSxclJycrLi5OFSpU0IYNG9S6dWv7nFdeeUV//PGHNm3alKXe7K50V6pUSbGxsfalBgX9NzVS0f6NGj3REz3REz3REz3REz3REz05p6dj55L18g+7tOP/n7sdVi9Ir99TTwHeboW2p8TERAUGBhbO5eXPP/+8li5dqrVr19oDtySVLVtWly9fVnx8fKar3TExMSpbtqx9zr93Gc/Y3fzqOf/e8TwmJka+vr7y9PSUxWKRxWLJdk7GOf7N3d1d7u7uWcZdXV3l6uqaaSzj/P+W8eXmdvzf53Vk3Gw2y2zOup9eTuM51U5P9HS94/RETxI95VTj9Y7TEz1J9JRTjdc7Tk/0JNFTTjVe77jZbJbJZNK3W07ojaV7lHzZKh93F43rXl/3NqkgkynzzuSFpaeM7yOn12V5Ta5m3SSGYej555/XwoUL9fvvv6tq1aqZjjdr1kyurq5atWqVfWzfvn06fvy4/Yp069at9ddff2XaZXzlypXy9fVVvXr17HOuPkfGnIxzuLm5qVmzZpnm2Gw2rVq1KtOVbwAAAABA9s4kpeiJuVv16o9/KfmyVa2qBeiXIbepZ9OKWQJ3UVagrnQPHDhQ33zzjRYvXiwfHx/7Pdh+fn7y9PSUn5+fBgwYoGHDhikgIEC+vr4aNGiQWrdurVatWkmSOnbsqHr16umRRx7RxIkTFR0drddee00DBw60X4l+5pln9OGHH+qVV15R//799fvvv+u7777Tzz//bK9l2LBh6tevn5o3b64WLVrovffe08WLF/X444/f/A8GAAAAAAqR5bui9b+Ff+n8xctys5j1Sqfa6n9rVRWF525frwJ1T3dOv+34/PPP9dhjj0mSUlJS9OKLL2revHlKTU1VWFiYpk+fnmnZ97Fjx/Tss89qzZo18vb2Vr9+/TRhwoRMywzWrFmjoUOHas+ePapYsaJGjRplf48MH374oSZNmqTo6GiFhITo/fffV8uWLXPVC48MAwAAAFDcJKWkadySPfp+20lJUt1yvpraq7HqlC16mSi3ma9Ahe6ihNANAAAAoDjZdPichn23U3/HX5LJJD3drrqG3lVT7i5Z78cuCorEc7oBAAAAAAVbarpVU1bu16y1h2UYUsWSnpryYIhaVA1wdmkFAqEbAAAAAOCQvacTNXR+hKKirzwX+8HmFTWqaz35eORuZ+/igNANAAAAALguVpuhT9Yd1uQV+3XZalMpbzeN79lQHetn/4jl4ozQDQAAAADItRPnk/Xigp3afOS8JOnOukEa37ORSvu4O7mygonQDQAAAAD4T4Zh6Iftf2vsT7t1ITVdXm4Wje5aT71uqVSsnrt9vQjdAAAAAIBrOn/xsv73419avjtaktSscklNebCxKpfydnJlBR+hGwAAAACQo9+jYvTK938p9kKqXMwmDb2rlp5pX10WM1e3c4PQDQAAAADI4mJqut5atlffbDouSaoZVEJTe4WoQQU/J1dWuBC6AQAAAACZbD8ep2HzI3T0XLIkaUDbqno5rLY8XC1OrqzwIXQDAAAAACRJaVab3l91QB+tPiibIZX389C7DzRWmxqBzi6t0CJ0AwAAAAB08EyShs7fqb/+TpAk3dukgsbeU19+nq5OrqxwI3QDAAAAQDFmsxmaG35UE36JUmq6TX6ernrr3gbq2qi8s0srEgjdAAAAAFBMnU64pJcXRGr9wVhJUrtapTXp/kYq4+vh5MqKDkI3AAAAABRDiyP+1qhFu5SYki4PV7NGdq6rh1tVlsnEo8DyEqEbAAAAAIqRhOQ0vbZ4l5bsPCVJalzRT1N6hah66RJOrqxoInQDAAAAQDGx7sBZvbwgUtGJKbKYTRrUoYYGhtaQq8Xs7NKKLEI3AAAAABRxly5b9c7yKM3ZcFSSVC3QW1N6hSikkr9T6yoOCN0AAAAAUIRFnozX0PkROnT2oiTp0daV9erddeXpZnFyZcUDoRsAAAAAiqB0q00z1hzStFUHlG4zFOTjrkkPNFb7WqWdXVqxQugGAAAAgCLmSOxFDfsuQjuOx0uSujQspzd7NFBJbzfnFlYMEboBAAAAoIgwDEPfbD6uN5fu1aU0q3w8XPRG9wbqHlKeR4E5CaEbAAAAAIqAM4kpGv5DpFbvOytJalO9lN59oLHK+3s6ubLijdANAAAAAIXc8l2n9eqPfykuOU1uLmYN71RHj7epIrOZq9vORugGAAAAgEIqMSVN437aox+2n5Qk1Svnq/d6h6hWGR8nV4YMhG4AAAAAKIQ2Hj6nF7/bqb/jL8lskp5pX11D7qwlNxezs0vDVQjdAAAAAFCIpKRZNWXlfs1ed1iGIQUHeGnKg43VvEqAs0tDNgjdAAAAAFBI7D2dqKHzIxQVnSRJ6tOikkZ2qacS7kS7gopvBgAAAAAKOKvN0Ox1hzV5xT6lWQ0FlnDThJ6NdGe9Ms4uDf+B0A0AAAAABdiJ88l68bud2nz0vCTprnplNKFnQ5Uq4e7kypAbhG4AAAAAKIAMw9CCbSc17qfdunjZKm83i8Z0q68HmleUycSjwAoLQjcAAAAAFDDnLqTq1R//0oo9MZKkW6qU1JQHQ1QpwMvJleF6EboBAAAAoABZtTdGw3+IVOyFy3K1mPRix9p68rZqspi5ul0YEboBAAAAoAC4mJquN3/eo3mbT0iSapfx0dReIapX3tfJleFGELoBAAAAwMm2HTuvofN36vj5ZJlM0hNtq+rFjrXl4Wpxdmm4QYRuAAAAAHCSy+k2TVu1XzPWHJLNkCr4e+rdBxqrdfVSzi4NeYTQDQAAAABOcCAmSUPmR2j3qURJUs+mFTT2nvry9XB1cmXIS4RuAAAAALiJbDZDn284qneWR+lyuk0lvVz19r0NdXfDcs4uDfmA0A0AAAAAN8mp+Et6acFObTh0TpJ0e+3SmnhfIwX5eji5MuQXQjcAAAAA5DPDMPTTzlN6bdEuJaWky9PVopFd6uqhlsEymXgUWFFG6AYAAACAfBSffFkjF+3Sz5GnJUkhlfw1tVeIqgZ6O7ky3AyEbgAAAADIJ3/sP6tXvt+pmMRUuZhNeuGOmnru9upysZidXRpuEkI3AAAAAOSxS5etmvDLXs0NPyZJqlbaW+/1ClGjiv7OLQw3HaEbAAAAAPLQzhPxGvpdhA6fvShJeqxNFQ3vVEeebhYnVwZnIHQDAAAAQB5It9r00epDev/3A7LaDJXxdde7DzTWbTVLO7s0OBGhGwAAAABu0OGzFzT0u53aeSJektStcXm90b2+/L3cnFsYnI7QDQAAAAAOMgxDX206rrd+3qOUNJt8PVz0Ro8G6h5SwdmloYAgdAMAAACAA84kpuiVHyK1Zt9ZSdKtNUrp3Qcaq5yfp5MrQ0FC6AYAAACA67Tsr9P638K/FJ+cJncXs0bcXUf9WleR2WxydmkoYAjdAAAAAJBLiSlpGrt4t37c8bckqUEFX73XK0Q1gnycXBkKKkI3AAAAAORC+KFzevG7CJ1KSJHZJA0MraFBHWrKzcXs7NJQgBG6AQAAAOAaUtKsevfXffr0zyMyDKlyKS9NeTBEzSqXdHZpKAQI3QAAAACQg92nEjR0foT2x1yQJPVtGayRnevK250ohdzhTwoAAAAA/IvVZujjtYc0deV+pVkNBZZw18T7G6pDnTLOLg2FDKEbAAAAAK5y/Fyyhn0Xoa3H4iRJYfXL6O17G6pUCXcnV4bCiNANAAAAAJIMw9B3W0/o9SV7dPGyVSXcXTT2nvq6r2kFmUw8CgyOIXQDAAAAKPZiL6RqxA9/6be9MZKkFlUDNPmBxqoU4OXkylDYEboBAAAAFGsr98RoxA+ROnfxstwsZr0UVksD2laTxczVbdw4QjcAAACAYuliarpeX7JH87eekCTVKeujqb1CVLecr5MrQ1FC6AYAAABQ7ESejNfgbyN0JPaiTCbpqXbVNOyuWnJ3sTi7NBQxhG4AAAAAxYbNZujjtYc1ecU+pdsMlffz0JReIWpVrZSzS0MRRegGAAAAUCxEJ6Ro2HcR2nDonCSpS6NyertHQ/l5uTq5MhRlhG4AAAAARd7yXdEa8WOk4pPT5OVm0dh76uuBZhV5FBjyHaEbAAAAQJGVfDldbyzdq3mbj0uSGlX007TeTVQ10NvJlaG4IHQDAAAAKJJ2/Z2gwd/u0KGzVzZLe7pddQ27q5bcXMzOLg3FCKEbAAAAQJFisxn67M8jmrh8ny5bbSrj666pD4aoTY1AZ5eGYojQDQAAAKDIOJOUohe/26l1B2IlSR3rldE79zVSSW83J1eG4orQDQAAAKBI+D0qRi8viNS5i5fl4WrW6K711adFJTZLg1MRugEAAAAUailpVo1ftldzw49JkuqW89UHfUJUI8jHyZUBhG4AAAAAhdi+6CS9MG+H9sUkSZIGtK2qVzrVlruLxcmVAVcQugEAAAAUOoZh6IvwY3pr2V5dTrcpsIS7Jj/YWO1rlXZ2aUAmhG4AAAAAhUrshVS98n2kfo86I0nqUCdIE+9vpMAS7k6uDMiK0A0AAACg0Phj/1m9+N1OxV5IlZuLWSM719WjrSuzWRoKLEI3AAAAgAIvNd2qScv36ZP1RyRJtcv4aFqfENUp6+vkyoBrI3QDAAAAKNAOnknSC/MitOd0oiSpX+vKerVzXXm4slkaCj5CNwAAAIACyTAMfbP5uN5YukcpaTYFeLtp0v2NdEfdMs4uDcg1QjcAAACAAifu4mUN/yFSK/bESJJuqxmoyQ80VpCvh5MrA64PoRsAAABAgbLhYKyGfhehmMRUuVpMGt6pjvrfWlVmM5ulofAhdAMAAAAoEC6n2zRl5X59vPaQDEOqXtpb03o3UYMKfs4uDXAYoRsAAACA0x0+e0GDv43QX38nSJL6tgzWqC715OnGZmko3AjdAAAAAJzGMAwt2HpSY5fsVvJlq/y9XDWhZyN1alDW2aUBeYLQDQAAAMApEpLT9L9Ff+nnyNOSpNbVSmlqrxCV9WOzNBQdhG4AAAAAN93mI+c15NsdOpWQIhezSS92rK2n2lWThc3SUMQQugEAAADcNGlWm95fdUAfrT4omyFVKeWlab2bqHElf2eXBuQLQjcAAACAm+L4uWQNnr9DO47HS5IeaFZRY++pL293YgmKLv50AwAAAMh3C3ec1KhFu3UhNV0+Hi4a37OhujYq7+yygHxH6AYAAACQbxJT0jR60S4tijglSbqlSklN7RWiiiW9nFwZcHMQugEAAADki23H4jT42x06GXdJFrNJQ+6oqedCa7BZGooVQjcAAACAPGW1Gfpo9UFNW3VAVpuhiiU9Na13EzWrXNLZpQE3HaEbAAAAQJ75O/6Shn4boc1Hz0uSeoSU1+s9GsjXw9XJlQHOQegGAAAAkCeWRp7Sqz/+paSUdJVwd9EbPerr3iYVnV0W4FSEbgAAAAA35GJqusb+tFsLtp2UJDUJ9te0Xk0UXIrN0gCzswu42tq1a9WtWzeVL19eJpNJixYtynTcZDJl+8+kSZPsc6pUqZLl+IQJEzKdJzIyUrfddps8PDxUqVIlTZw4MUstCxYsUJ06deTh4aGGDRtq2bJl+dIzAAAAUJjtPBGvLu+v04JtJ2U2SS90qKHvnm5N4Ab+X4EK3RcvXlTjxo310UcfZXv89OnTmf757LPPZDKZdN9992Wa9/rrr2eaN2jQIPuxxMREdezYUZUrV9a2bds0adIkjR07VrNmzbLP2bBhg/r06aMBAwZox44d6tGjh3r06KFdu3blT+MAAABAIWO1GZq+5qDum7FBR88lq7yfh759qrWGdawtV0uBihmAU5kMwzCcXUR2TCaTFi5cqB49euQ4p0ePHkpKStKqVavsY1WqVNGQIUM0ZMiQbF8zY8YMjRw5UtHR0XJzc5MkjRgxQosWLVJUVJQkqVevXrp48aKWLl1qf12rVq0UEhKimTNnZnve1NRUpaam2n9OTExUpUqVFBsbK19fX0mS2WyWxWKR1WqVzWazz80YT09P19Vfh8VikdlsznE8LS0tUw0uLlfuFkhPT8/VuKurq2w2m6xWq33MZDLJxcUlx/GcaqcneqIneqIneqIneqKn4tPT6YQUvfLjLm08fGWztLvrl9Eb3evJz9O10PZ09XhR+Z7oKX97SkxMVGBgoBISEuyZLzuF9p7umJgY/fzzz5o7d26WYxMmTNAbb7yh4OBg9e3bV0OHDrV/cOHh4WrXrp09cEtSWFiY3nnnHcXFxalkyZIKDw/XsGHDMp0zLCwsy3L3q40fP17jxo3LMr5ixQp5eV1ZWhMcHKwmTZooMjJSx48ft8+pXbu26tSpo82bN+vs2bP28ZCQEFWuXFlr165VUlKSfbx169YKCgrSihUrMv1BCA0NlaenZ5al8J07d9alS5e0evVq+5iLi4u6dOmi2NhYhYeH28d9fHzUoUMHnThxQhEREfbx0qVLq02bNjpw4ID27dtnH6cneqIneqIneqIneqKn4tXTznMmfXvIrGSrSV5uFj1cz131PP7Wn6v/LrQ9FcXviZ7yv6fk5GTlRqG90j1x4kRNmDBBp06dkoeHh318ypQpatq0qQICArRhwwa9+uqrevzxxzVlyhRJUseOHVW1alV9/PHH9tfs2bNH9evX1549e1S3bl25ublp7ty56tOnj33O9OnTNW7cOMXExGRbD1e66Yme6Ime6Ime6Ime6Kko95R0KVVv/hyl+VuvbJbWsIKv3u/TVJX83QttT0Xxe6InrnTnmc8++0wPPfRQpsAtKdMV6kaNGsnNzU1PP/20xo8fL3d393yrx93dPdvzu7q6ytU18zMJLRaLLBZLlrkZX25ux/99XkfGzWazzOas99zkNJ5T7fRET9c7Tk/0JNFTTjVe7zg90ZNETznVeL3j9JR97bv+TtDgb3fo0NmLMpmkp9tV17C7asnNJed7twt6T9caL6zf07XG6Snve8rpdVnqydWsAmbdunXat2+f5s+f/59zW7ZsqfT0dB09elS1a9dW2bJls1ytzvi5bNmy9v+b3ZyM4wAAAEBxYLMZ+uzPI3pneZTSrIbK+Lpr6oMhalMj0NmlAYVGodxW8NNPP1WzZs3UuHHj/5wbEREhs9msoKAgSVfW869duzbT0oKVK1eqdu3aKlmypH3O1ZuzZcxp3bp1HnYBAAAAFFxnElPU7/PNevPnvUqzGupYr4yWD25H4AauU4G60n3hwgUdPHjQ/vORI0cUERGhgIAABQcHS7qybn7BggWaPHlylteHh4dr06ZNCg0NlY+Pj8LDwzV06FA9/PDD9kDdt29fjRs3TgMGDNDw4cO1a9cuTZs2TVOnTrWfZ/DgwWrfvr0mT56sLl266Ntvv9XWrVszPVYMAAAAKKpW7Y3Ry99H6vzFy/JwNWt01/rq06KSTCaTs0sDCp0CtZHamjVrFBoammW8X79+mjNnjiRp1qxZGjJkiE6fPi0/P79M87Zv367nnntOUVFRSk1NVdWqVfXII49o2LBhme63joyM1MCBA7VlyxYFBgZq0KBBGj58eKZzLViwQK+99pqOHj2qmjVrauLEiercuXOue0lMTJSfn99/3lQPAAAAFBQpaVa9vWyvvgg/JkmqW85XH/QJUY0gHydXBhQ8uc18BSp0FyWEbgAAABQmUdGJemHeDu2PuSBJGtC2ql7pVFvuLlk3sAKQ+8xXoJaXAwAAALi5DMPQF+HH9NayvbqcblNgCXdNfrCx2tcq7ezSgCKB0A0AAAAUU7EXUvXK95H6PeqMJKlDnSBNvL+RAkvk36N2geKG0A0AAAAUQ3/sP6sXv9up2AupcnMxa2Tnunq0dWU2SwPyGKEbAAAAKEZS062auHyfPl1/RJJUu4yPpvUJUZ2y7EME5AdCNwAAAFBMHDyTpEHzIrT3dKIkqV/rynq1c115uLJZGpBfCN0AAABAEWcYhr7ZfFxvLN2jlDSbArzdNOn+RrqjbhlnlwYUeYRuAAAAoAg7f/Gyhv8QqZV7YiRJt9UM1OQHGivI18PJlQHFA6EbAAAAKKL+PBirYd9FKCYxVa4Wk4Z3qqP+t1aV2cxmacDNQugGAAAAipjL6TZNWblfH689JMOQqpf21rTeTdSggp+zSwOKHUI3AAAAUIQcPntBg7+N0F9/J0iS+rYM1qgu9eTpxmZpgDMQugEAAIAiwDAMLdh6UmOX7FbyZav8vVw1oWcjdWpQ1tmlAcUaoRsAAAAo5BKS0/S/hX/p579OS5JaVyulqb1CVNaPzdIAZyN0AwAAAIXYpsPnNHR+hE4lpMjFbNKLHWvrqXbVZGGzNKBAIHQDAAAAhVCa1ab3Vx3QR6sPymZIVUp5aVrvJmpcyd/ZpQG4CqEbAAAAKGSOn0vWC9/uUMSJeEnSA80qauw99eXtzl/vgYKG/1UCAAAAhcjCHSc1atFuXUhNl4+Hi8b3bKiujco7uywAOSB0AwAAAIVAYkqaRi/apUURpyRJt1Qpqam9QlSxpJeTKwNwLYRuAAAAoIDbdixOg7/doZNxl2QxmzT4jpoaGFqDzdKAQoDQDQAAABRQVpuhj1Yf1LRVB2S1GapY0lPTejdRs8olnV0agFwidAMAAAAF0Mm4ZA2dH6EtR+MkST1Cyuv1Hg3k6+Hq5MoAXA9CNwAAAFDALNl5Sv9b+JeSUtJVwt1Fb/Sor3ubVHR2WQAcQOgGAAAACogLqeka+9Nufb/tpCSpSbC/pvVqouBSbJYGFFaEbgAAAKAAiDgRr8Hf7tCxc8kym6TnQ2to0B015WoxO7s0ADeA0A0AAAA4kdVm6OO1hzRlxX6l2wyV9/PQe72bqEXVAGeXBiAPELoBAAAAJzmdcEnD5u9U+OFzkqQuDcvp7Xsbys+LzdKAooLQDQAAADjB8l2nNfyHv5RwKU1ebhaNvae+HmhWUSYTz94GihJCNwAAAHATJV9O1xtL92re5uOSpEYV/TStdxNVDfR2cmUA8gOhGwAAALhJTpxP1pNfbFVUdJJMJunpdtU17K5acnNhszSgqCJ0AwAAADfBnwdjNfCb7YpPTlNgCXdN6x2iW2sEOrssAPmM0A0AAADkI8Mw9NmfR/X2sr2y2gw1ruinmY80Uzk/T2eXBuAmIHQDAAAA+SQlzaqRC3fph+0nJUk9m1bQ2/c2lIerxcmVAbhZCN0AAABAPohOSNHTX23TzhPxMpukkV3qqf+tVdidHChmCN0AAABAHtt2LE7PfLVNZ5NS5efpqo/6NlXbmty/DRRHhG4AAAAgD83fclyjFu3WZatNtcv4aNajzVS5FI8DA4orQjcAAACQB9KsNr25dI/mhh+TJHWqX1aTH2wsb3f+yg0UZ/wbAAAAALhB5y6kauA327Xx8HlJ0rC7aun50Boym7l/GyjuCN0AAADADdh9KkFPfbFNf8dfkrebRVN7hahj/bLOLgtAAUHoBgAAABy0ZOcpvfz9TqWk2VSllJdmPdpctcr4OLssAAUIoRsAAAC4Tlabockr9mn6mkOSpNtqBurDPk3l5+Xq5MoAFDSEbgAAAOA6JKakafC8HVq976wk6el21fRKpzqycP82gGwQugEAAIBcOnjmgp76YqsOx16Uu4tZ79zXSD2aVHB2WQAKMEI3AAAAkAu/R8Vo8LwIJaWmq5yfh2Y90lwNK/o5uywABRyhGwAAALgGwzA0fc0hvbtinwxDuqVKSU1/qJlK+7g7uzQAhQChGwAAAMhB8uV0vfx9pH6OPC1JeqhlsMZ0qy83F7OTKwNQWBC6AQAAgGycOJ+sp77cpr2nE+VqMWncPQ3Ut2Wws8sCUMgQugEAAIB/CT90Ts99vU1xyWkKLOGmGQ830y1VApxdFoBCiNANAAAA/D/DMDR3w1G98fNeWW2GGlbw08ePNFN5f09nlwagkCJ0AwAAAJJS060atWiXvtt6UpJ0b5MKGt+zoTxcLU6uDEBhRugGAABAsXcmMUVPf7VNO47Hy2ySXr27rp64rapMJpOzSwNQyBG6AQAAUKztOB6nZ77appjEVPl6uOjDvk3VrlZpZ5cFoIggdAMAAKDYWrD1hEYu3KXLVptqBpXQ7Eebq0qgt7PLAlCEELoBAABQ7KRbbXpr2V59/udRSVLHemU0pVeISrjz12MAeYt/qwAAAKBYibt4WQO/2a4Nh85JkgbfUVOD76gps5n7twHkPUI3AAAAio29pxP11JdbdeL8JXm5WTTlwRB1alDW2WUBKMII3QAAACgWlv11Wi9+t1OX0qwKDvDS7Eebq3ZZH2eXBaCII3QDAACgSLPZDE39bb8++P2gJOm2moH6oE8T+Xu5ObkyAMUBoRsAAABFVlJKmobOj9Bve89Ikp5oW1Uj7q4jF4vZyZUBKC4I3QAAACiSDp+9oKe+3KaDZy7IzcWsCT0bqmfTis4uC0AxQ+gGAABAkbNm3xkNmrdDSSnpKuvroY8faabGlfydXRaAYojQDQAAgCLDMAx9vPaw3lkeJcOQmlUuqRkPN1WQj4ezSwNQTBG6AQAAUCRcumzV8B8i9dPOU5KkPi0qaew99eXuYnFyZQCKM0I3AAAACr2/4y/pqS+2avepRLmYTRpzT3093DJYJpPJ2aUBKOYI3QAAACjUNh0+p+e+3q5zFy+rlLebpj/UVC2rlXJ2WQAgidANAACAQsowDH216bjG/bRb6TZD9cv7atajzVXB39PZpQGAHaEbAAAAhc7ldJvG/LRL8zafkCR1a1xeE+9rJE837t8GULAQugEAAFConElK0bNfbde2Y3EymaThnero6XbVuH8bQIFE6AYAAEChEXkyXk99sU3RiSny8XDR+32aKLR2kLPLAoAcEboBAABQKPy4/aRG/PiXLqfbVL20t2Y/2lzVSpdwdlkAcE2EbgAAABRo6VabJvwSpU/WH5Ek3Vk3SFN7hcjHw9XJlQHAfyN0AwAAoMCKT76sQfN2aN2BWEnSoA41NPTOWjKbuX8bQOFA6AYAAECBtC86SU9+sVXHzyfL09WiyQ82VueG5ZxdFgBcF0I3AAAACpzlu6I17LsIJV+2qmJJT81+tLnqlvN1dlkAcN0I3QAAACgwbDZD01Yd0LRVByRJbaqX0od9myrA283JlQGAYwjdAAAAKBAupKZr6PwIrdwTI0l6/NYqGtm5rlwsZidXBgCOI3QDAADA6Y7GXtSTX2zVgTMX5GYx6617G+iB5pWcXRYA3DBCNwAAAJzqj/1nNeib7UpMSVeQj7s+fqSZmgSXdHZZAJAnCN0AAABwCsMwNHvdYU34JUo2Q2oS7K+ZDzdTGV8PZ5cGAHmG0A0AAICbLiXNqhE/RGpRxClJ0oPNK+qNHg3k7mJxcmUAkLcI3QAAALipTsVf0tNfbtNffyfIYjZpdNd6erR1ZZlMJmeXBgB5jtANAACAm2bL0fN69qttir1wWQHebvqob1O1rl7K2WUBQL4hdAMAAOCm+HrTMY39abfSrIbqlvPVrEeaqVKAl7PLAoB8RegGAABAvrqcbtO4Jbv19abjkqQujcpp0v2N5OXGX0UBFH38mw4AAAD55mxSqp77epu2HI2TySS91LG2nru9OvdvAyg2CN0AAADIF3+dTNBTX27V6YQU+bi7aFqfEHWoU8bZZQHATUXoBgAAQJ5bHPG3Xvk+UqnpNlUr7a3ZjzZX9dIlnF0WANx0hG4AAADkGavN0DvLozRr7WFJUoc6QXqvd4h8PVydXBkAOAehGwAAAHkiITlNg77dobX7z0qSBoZW17C7asti5v5tAMUXoRsAAAA37EBMkp78YquOnkuWp6tFkx5opK6Nyju7LABwOkI3AAAAbsiK3dEaOj9CFy9bVcHfU7Mebab65f2cXRYAFAiEbgAAADjEZjP0we8HNfW3/ZKkVtUC9FHfpipVwt3JlQFAwWF2dgFXW7t2rbp166by5cvLZDJp0aJFmY4/9thjMplMmf7p1KlTpjnnz5/XQw89JF9fX/n7+2vAgAG6cOFCpjmRkZG67bbb5OHhoUqVKmnixIlZalmwYIHq1KkjDw8PNWzYUMuWLcvzfgEAAAqri6npeu7r7fbA/VibKvpyQEsCNwD8S4EK3RcvXlTjxo310Ucf5TinU6dOOn36tP2fefPmZTr+0EMPaffu3Vq5cqWWLl2qtWvX6qmnnrIfT0xMVMeOHVW5cmVt27ZNkyZN0tixYzVr1iz7nA0bNqhPnz4aMGCAduzYoR49eqhHjx7atWtX3jcNAABQyBw/l6ye0zdo+e5ouVnMmnhfI429p75cLQXqr5YAUCCYDMMwnF1EdkwmkxYuXKgePXrYxx577DHFx8dnuQKeYe/evapXr562bNmi5s2bS5KWL1+uzp076+TJkypfvrxmzJihkSNHKjo6Wm5ubpKkESNGaNGiRYqKipIk9erVSxcvXtTSpUvt527VqpVCQkI0c+bMXNWfmJgoPz8/JSQkyNfX14FPAAAAoOBZfyBWz8/brvjkNJX2cdfMh5upWeWSzi4LAG663Ga+QndP95o1axQUFKSSJUuqQ4cOevPNN1WqVClJUnh4uPz9/e2BW5LuvPNOmc1mbdq0Sffee6/Cw8PVrl07e+CWpLCwML3zzjuKi4tTyZIlFR4ermHDhmV637CwsBzDviSlpqYqNTXV/nNiYqIkKS0tTWlpaZIks9ksi8Uiq9Uqm81mn5sxnp6erqt/B2KxWGQ2m3MczzhvBheXK19nenp6rsZdXV1ls9lktVrtYyaTSS4uLjmO51Q7PdETPdETPdETPRXtntLS0jQn/LgmLN8nmyE1ruSvGX2bqHQJV/u5CltPRfF7oid6oqeb19O/z5eTQhW6O3XqpJ49e6pq1ao6dOiQ/ve//+nuu+9WeHi4LBaLoqOjFRQUlOk1Li4uCggIUHR0tCQpOjpaVatWzTSnTJky9mMlS5ZUdHS0fezqORnnyM748eM1bty4LOMrVqyQl5eXJCk4OFhNmjRRZGSkjh8/bp9Tu3Zt1alTR5s3b9bZs2ft4yEhIapcubLWrl2rpKQk+3jr1q0VFBSkFStWZPqDEBoaKk9Pzyz3n3fu3FmXLl3S6tWrM30uXbp0UWxsrMLDw+3jPj4+6tChg06cOKGIiAj7eOnSpdWmTRsdOHBA+/bts4/TEz3REz3REz3RU9HvKT7pop77fJ22nL2yfLxlkDT3qVZKjDunZcsKZ09F8XuiJ3qip5vbU3JysnKjUC0v/7fDhw+revXq+u2333THHXfo7bff1ty5czN9UZIUFBSkcePG6dlnn1XHjh1VtWpVffzxx/bje/bsUf369bVnzx7VrVtXbm5umjt3rvr06WOfM336dI0bN04xMTHZ1pLdle5KlSopNjbWvtSgoP+mRip6v32iJ3qiJ3qiJ3qipxvrKfZiup7+apsiTybIYjZpRKda6tcqWG5uboW2p6L4PdETPdHTze8pMTFRgYGBRW95+dWqVaumwMBAHTx4UHfccYfKli2rM2fOZJqTnp6u8+fPq2zZspKksmXLZgnOGT//15yM49lxd3eXu3vW3TpdXV3l6uqaacxischisWSZm/Hl5nb83+d1ZNxsNstszrrpSU7jOdVOT/R0veP0RE8SPeVU4/WO0xM9SfnT07Zj5/XMV9t1NilV/l6u+qhvU91aI/A/ay/IPf3XOD3Rk0RPOdV4veNFvaecXpflNbmaVUCdPHlS586dU7ly5SRdWTYQHx+vbdu22ef8/vvvstlsatmypX3O2rVrM/2WY+XKlapdu7ZKlixpn7Nq1apM77Vy5Uq1bt06v1sCAAAoEL7dfFy9Z23U2aRU1Snro58Gts0UuAEAuVOgQveFCxcUERFhX99/5MgRRURE6Pjx47pw4YJefvllbdy4UUePHtWqVavUvXt31ahRQ2FhYZKkunXrqlOnTnryySe1efNm/fnnn3r++efVu3dvlS9fXpLUt29fubm5acCAAdq9e7fmz5+vadOmZdo4bfDgwVq+fLkmT56sqKgojR07Vlu3btXzzz9/0z8TAACAmynNatPoxbs04se/lGY1dHeDsvrh2TYKLuXl7NIAoFAqUPd0r1mzRqGhoVnG+/XrpxkzZqhHjx7asWOH4uPjVb58eXXs2FFvvPFGpk3Pzp8/r+eff15LliyR2WzWfffdp/fff18lSpSwz4mMjNTAgQO1ZcsWBQYGatCgQRo+fHim91ywYIFee+01HT16VDVr1tTEiRPVuXPnXPfCI8MAAEBhc+5Cqp77ers2HTkvSXrxrlp6vkMNmUwmJ1cGAAVPbjNfgQrdRQmhGwAAFCa7TyXoqS+26e/4Syrh7qKpvUJ0V70y//1CACimiuxzugEAAJC3luw8pZe/36mUNJuqBnpr9qPNVCPIx9llAUCRQOgGAAAopqw2Q++u2KcZaw5JktrXKq33+zSRn2fuduQFAPw3QjcAAEAxlHApTYO/3aE1+85Kkp5uX02vhNWRxcz92wCQlwjdAAAAxczBMxf01BdbdTj2otxdzJp4fyN1D6ng7LIAoEgidAMAABQjq/bGaMi3EUpKTVd5Pw/NerS5GlTwc3ZZAFBkEboBAACKAcMwNH3NIb27Yp8MQ2pRJUDTH26qwBLuzi4NAIo0QjcAAEARl3w5XS8viNTPf52WJD3cKliju9aXm4vZyZUBQNFH6AYAACjCTpxP1pNfbFVUdJJcLSa93r2B+rQIdnZZAFBsELoBAACKqA2HYjXw6+2KS05TYAl3zXy4qZpXCXB2WQBQrBC6AQAAipgLqen6YNUBfbL+iKw2Q40q+unjR5qpnJ+ns0sDgGKH0A0AAFBEGIahpZGn9ebPexSTmCpJ6tmkgt7u2VAerhYnVwcAxROhGwAAoAg4EJOkMT/t1oZD5yRJwQFeGtOtnu6oW8bJlQFA8UboBgAAKMQupKbr/VUH9Nn6I0q3GXJ3Meu522vo6fbVuLoNAAUAoRsAAKAQMgxDSyJP662rlpLfWbeMxnSrp0oBXk6uDgCQgdANAABQyByISdLoxbsVfvifpeRj76mnDnVYSg4ABQ2hGwAAoJDIbin5wNAaeqodS8kBoKAidAMAABRwhmHop52n9Payvfal5HfVK6PRXVlKDgAFHaEbAACgANsfk6TRi3dp4+HzkqTKpbw0tlt9hdYJcnJlAIDcIHQDAAAUQBdS0zXtt/36/M+j9qXkz4fW0JMsJQeAQoXQDQAAUIBkLCV/6+e9OpN0ZSl5x3plNIql5ABQKBG6AQAACoj9MUkatWiXNh25ain5PfUVWpul5ABQWBG6AQAAnCwpJU3TfjugzzccldVmyMPVrIG3s5QcAIoCQjcAAICTZLeUPKz+laXkFUuylBwAigJCNwAAgBPsi76yK3nGUvIq/7+U/HaWkgNAkULoBgAAuImSUtL03m8HNOeqpeQZu5K7u7CUHACKGodD96+//qpPP/1Uhw8fVlxcnAzDyHTcZDLp0KFDN1wgAABAUWAYhhZHnNJby/bqLEvJAaDYcCh0T5o0SSNGjFCZMmXUokULNWzYMK/rAgAAKDKiohM1evFubWYpOQAUOw6F7mnTpqlDhw5atmyZXF1d87omAACAIiExJU3vrTygueH/LCUf1KGmnritKkvJAaCYcCh0x8XF6f777ydwAwAAZMMwDC2K+FtvL4uyLyXvVL+sXutal6XkAFDMOBS6W7RooX379uV1LQAAAIVeVHSiRi/arc1HrywlrxborbH31Fe7WqWdXBkAwBkcCt3Tp0/X3XffrebNm6tv3755XRMAAEChk5iSpqkr9+uL8GOy2gx5ulr0fIcaLCUHgGLOZPx72/FcaNSokc6fP6/Tp0+rRIkSqlixoiyWzP8xMZlM2rlzZ54VWtgkJibKz89PCQkJ8vX1dXY5AAAgnxiGoYU7riwlj71wZSn53Q3K6rWu9VTB39PJ1QEA8ktuM59DV7oDAgJUqlQp1axZ0+ECAQAACru9pxM1evEubTkaJ4ml5ACArBwK3WvWrMnjMgAAAAqPxJQ0TVmxX19u/Gcp+aA7amhAW5aSAwAycyh0AwAAFEeGYejH7X9r/C//LCXv3LCsRnZhKTkAIHu5Ct1r166VJLVr1y7Tz/8lYz4AAEBht+dUosb8lHkp+bju9XVbTZaSAwBylquN1Mxms0wmky5duiQ3Nzf7zzkxDEMmk0lWqzVPiy1M2EgNAICiIeFSxq7kR2UzxFJyAICkPN5IbfXq1ZIkNze3TD8DAAAUVTaboR93/K0Jv+xV7IXLkqQuDctpZJe6Ks9ScgBALjn0yDD8N650AwBQeO05dWVX8q3H/n8peWlvvX5PA7WtGejkygAABUW+PjIMAACgKPr3UnIvN4teuKOm+t9aVW4uZmeXBwAohBwK3f3797/mcZPJJA8PD1WsWFG33367Wrdu7VBxAAAAN0O2S8kbldNrXeqqnB9LyQEAjnModP/++++6dOmSzp49K0kqWbKkJCku7soSrNKlS8tms+ncuXMymUwKCwvT999/Ly8vrzwqGwAAIG/sPpWg0Yt3a9v/LyWvXtpb41hKDgDIIw6tk/rll1/k7u6usWPH6ty5c/Z/YmNjNWbMGHl6eurPP/9UXFycRo0apeXLl2vUqFF5XTsAAIDDEi6lacziXer2wXptOxYnLzeLRtxdR78MbkfgBgDkGYc2UrvjjjtUs2ZNzZw5M9vjzzzzjA4fPqwVK1ZIkvr27as///xTx44du7FqCxE2UgMAoGCy2Qz9sP2kJvwSpXMXWUoOAHBMbjOfQ1e6N27cqMaNG+d4vHHjxtqwYYP959tuu00xMTGOvBUAAECe2fV3gu6fuUEvfx+pcxcvq0ZQCX39REt91LcpgRsAkC8cuqfb399fK1as0LPPPpvt8eXLl8vPz8/+84ULF7jaCwAAnCYhOU2TV+7TVxuP2XclH3xHTT3OruQAgHzmUOh+8skn9frrr+v+++/Xs88+qxo1akiSDh48qBkzZmjp0qWZ7uFetmyZQkJC8qRgAACA3LLZDH2//aTeuWopeddG5TSSpeQAgJvEodA9ZswYXbp0SVOnTtXChQszHbNYLBo2bJjGjBkjSUpJSdFjjz2mRo0a3Xi1AAAAubTr7wSNWrxLO47HS5JqBJXQ6/fUV5sabJIGALh5HNpILcOZM2e0atUq+wZplStX1h133KGgoKA8K7CwYiM1AACcIyE5Te+u2KevN/2zlHzInTX1WBuWkgMA8k5uM59DV7ozBAUFqU+fPjdyCgAAgDxhsxn6fttJTVgepfP/v5S8W+PyGtm5rsr6eTi5OgBAceVQ6D5+/Hiu5gUHBztyegAAgOuS7VLy7vXVpjpLyQEAzuVQ6K5SpYpMJtN/zrNarY6cHgAAIFfiky///1Ly4zIMydvNoiF31tJjt1aRq4Wl5AAA53ModH/22WdZQrfVatXRo0f1xRdfKCgoSAMHDsyTAgEAAP7NZjO0YNsJvbN8n30p+T2Ny+t/LCUHABQwDoXuxx57LMdjw4cPV8uWLZWQkOBoTQAAADn66+SVpeQRJ+IlSTWDSuj17g3Uunop5xYGAEA2bmgjtex4e3vr8ccf19SpU/XCCy/k9ekBAEAxFZ98WZN+3advNv+zlHzoXbXUrw1LyQEABVeeh25Jstlsio6Ozo9TAwCAYsZmM/Td1hN6Z3mU4pLTJEndQ64sJS/jy1JyAEDBlqehOzExUWvXrtWkSZPUpEmTvDw1AAAohv69lLxWmRIadw9LyQEAhYdDodtsNue4e7lhGAoODtb06dNvqDAAAFB8/XspeQl3Fw25syZLyQEAhY5DoXv06NFZQrfJZFLJkiVVvXp1dezYUS4u+bJyHQAAFGE2m6H5W09oIkvJAQBFhMkwDMPZRRRFiYmJ8vPzU0JCgnx9fZ1dDgAABV7kyXiNWrxbO69aSv569wZqVY2l5ACAgie3mY/L0QAAwKniLl7WpBX7NI+l5ACAIihXobt///7XfWKTyaRPP/30ul8HAACKh4yl5O8sj1L8/y8lv7dJBb16dx0FsZQcAFBE5Cp0//777zlunJaT650PAACKj50n4jV68S7tPJkgSapdxkevd6+vliwlBwAUMbkK3UePHs3nMgAAQHEQd/GyJv66T99u+Wcp+dC7aunR1pVZSg4AKJK4pxsAAOQ7q83Q/C0nNPFXlpIDAIqXGwrdu3bt0rJly+xXwqtUqaK7775bDRs2zIvaAABAERDx/0vJI/9/KXmdsj4adw9LyQEAxYNDjwxLTU3V008/rS+//FKGYchsvrIczGazyWQy6aGHHtInn3wiNze3PC+4sOCRYQCA4u78xcua9GuUvt1yQoYh+Vy1lNyFpeQAgEIut5nPof/iDR8+XF988YWeffZZ7d27VykpKUpNTdXevXv1zDPP6KuvvtIrr7zicPEAAKDwstoMfb3pmDpMXqN5m68E7p5NKmjVS+3Vv21VAjcAoFhx6Ep3YGCgunTporlz52Z7/JFHHtEvv/yi2NjYGy6wsOJKNwCgOIo4Ea9Ri3bpr7//WUr+evcGalE1wMmVAQCQt3Kb+Ry6pzstLU2tWrXK8XibNm20ZMkSR04NAAAKofMXL2vi8ijN3/rPUvJhHWvpkVYsJQcAFG8Ohe6wsDD9+uuvevbZZ7M9vnz5cnXs2PGGCgMAAAWfYRj6dssJTfglSgmXruxK3rNpBY24u46CfNiVHAAAh5aX79u3Tw8++KCqV6+ugQMHqkaNGpKkAwcO6KOPPtKRI0c0f/58lS5dOtPrAgKKz9IylpcDAIq6hOQ0vfLDTv26O0bSlaXkb/RooFuqFJ//3gMAiq/cZj6HQnfGbuWSZDKZMh3LON2/xyXJarVe71sVWoRuAEBRtuN4nJ7/Zof+jr8kN4tZL4fV1uO3VmEpOQCg2MjXe7pHjx6dbagGAABFm81m6NP1R/TO8iil2wwFB3jpo75N1bCin7NLAwCgQHLoSjf+G1e6AQBFTdzFy3pxwU79HnVGktSlYTmNv6+hfD1cnVwZAAA3X75e6QYAAMXL1qPnNWjeDp1OSJGbi1mju9bTQy2DWfkGAMB/IHQDAIAc2WyGZvxxSFNW7pfVZqhaoLc+7NtU9cqzigsAgNwgdAMAgGzFXkjV0PkRWncgVpLUI6S83ry3oUq489cHAAByi/9qAgCALMIPndPgb3foTFKqPFzNGndPfT3YvBLLyQEAuE6EbgAAYGe1Gfrw94Oatmq/bIZUI6iEPurbVLXL+ji7NAAACiVCNwAAkCSdSUrRkG8jtOHQOUnSA80qalz3+vJy468LAAA4yuzIiyIiIjRv3rxMY7/++qvatWunli1batq0aXlSHAAAuDnWH4hV52nrtOHQOXm6WjTlwcaa9EBjAjcAADfIof+SvvLKK/Ly8lKfPn0kSUeOHNG9996rUqVKqXz58ho2bJg8PT311FNP5WmxAAAgb6VbbXrvtwP6aM1BGYZUp6yPPuzbVDWCSji7NAAAigSHrnTv3LlTbdu2tf/8xRdfyGKxaMeOHdq0aZPuv/9+zZw5M8+KBAAAeS86IUV9P9mkD1dfCdx9WgRr0cBbCdwAAOQhh650JyQkqFSpUvafly1bprvuukuBgYGSpLvuuku//PJL3lQIAADy3Op9Z/Tidzt1/uJlebtZNP6+RrqncXlnlwUAQJHjUOguV66c9u7dK0k6ffq0tm3bpscff9x+/MKFCzKbHbqIDgAA8lGa1aZ3V+zTx38cliTVK+erjx5qqqqB3k6uDACAosmh0N29e3d98MEHSklJ0aZNm+Tu7q57773Xfnznzp2qVq1anhUJAABu3N/xl/TCvB3adixOkvRo68r6X+e68nC1OLkyAACKLodC95tvvqmzZ8/qyy+/lL+/v+bMmaMyZcpIkhITE/X9999r4MCBeVooAABw3Mo9MXppwU4lXEqTj4eLJt7XSHc3LOfssgAAKPJMhmEYeXlCm82mpKQkeXt7y8Wl+D5mJDExUX5+fkpISJCvr6+zywEAFFOX0216Z3mUPl1/RJLUuKKfPujTVMGlvJxcGQAAhVtuM59DN173799fmzZtyv6EZrP27dvH48IAAHCyE+eT9cDMDfbA3f/WqlrwTBsCNwAAN5FDoXvOnDk6dOhQjsePHDmiuXPnOlwUAAC4Mct3nVbn99dp58kE+Xm6avajzTW6Wz25ubDRKQAAN1O+/Jf31KlT8vT0vO7XrV27Vt26dVP58uVlMpm0aNEi+7G0tDQNHz5cDRs2lLe3t8qXL69HH31Up06dynSOKlWqyGQyZfpnwoQJmeZERkbqtttuk4eHhypVqqSJEydmqWXBggWqU6eOPDw81LBhQy1btuy6+wEA4GZLSbNqzOJdeuar7UpKSVfTYH/9/EJb3VWvjLNLAwCgWMr1TdeLFy/W4sWL7T/PmjVLv/32W5Z58fHx+u2333TLLbdcdzEXL15U48aN1b9/f/Xs2TPTseTkZG3fvl2jRo1S48aNFRcXp8GDB+uee+7R1q1bM819/fXX9eSTT9p/9vHxsf//iYmJ6tixo+68807NnDlTf/31l/r37y9/f3/7kvgNGzaoT58+Gj9+vLp27apvvvlGPXr00Pbt29WgQYPr7gsAgJvhaOxFDfxmu3afSpQkPd2+ml7qWFuuFq5uAwDgLLneSG38+PF6++23JV0JwG5ublk2SjOZTPL29lazZs00ZcoU1apVy/HCTCYtXLhQPXr0yHHOli1b1KJFCx07dkzBwcGSrlzpHjJkiIYMGZLta2bMmKGRI0cqOjpabm5ukqQRI0Zo0aJFioqKkiT16tVLFy9e1NKlS+2va9WqlUJCQjRz5sxsz5uamqrU1FT7z4mJiapUqZJiY2PtN9WbzWZZLBZZrVbZbDb73Izx9PR0Xf11WCwWmc3mHMfT0tIy1ZDxfaSnp+dq3NXVVTabTVar1T5mMpnk4uKS43hOtdMTPdETPdGTc3tavOOkXvtpjy6mWlXSy1VTHgxR+1qBhbqnovg90RM90RM90VPR6SkxMVGBgYH/uZFarq90v/rqq3r11VftTX766afq27dvbl+eLxISEmQymeTv759pfMKECXrjjTcUHBysvn37aujQofYPLjw8XO3atbMHbkkKCwvTO++8o7i4OJUsWVLh4eEaNmxYpnOGhYVlWu7+b+PHj9e4ceOyjK9YsUJeXlc2rAkODlaTJk0UGRmp48eP2+fUrl1bderU0ebNm3X27Fn7eEhIiCpXrqy1a9cqKSnJPt66dWsFBQVpxYoVmf4ghIaGytPTM8tS+M6dO+vSpUtavXq1fczFxUVdunRRbGyswsPD7eM+Pj7q0KGDTpw4oYiICPt46dKl1aZNGx04cED79u2zj9MTPdETPdGTc3u6o2MnvfrdNi3868p7Vvcx9GwTi0LrBOnYsWOFsqei+D3REz3REz3RU9HrKTk5WbmR548Myyv/daU7JSVFt956q+rUqaOvv/7aPj5lyhQ1bdpUAQEB2rBhg1599VU9/vjjmjJliiSpY8eOqlq1qj7++GP7a/bs2aP69etrz549qlu3rtzc3DR37lz16dPHPmf69OkaN26cYmJisq2HK930RE/0RE/0dLN7OnT2ooZ8F6mo6CSZTNKz7appUGg1ubpYCm1PUtH7nuiJnuiJnuipaPaU51e6C5K0tDQ9+OCDMgxDM2bMyHTs6ivUjRo1kpubm55++mmNHz9e7u7u+VaTu7t7tud3dXWVq6trpjGLxSKLxZJlbsaXm9vxf5/XkXGz2SyzOeu9fjmN51Q7PdHT9Y7TEz1J9JRTjbkZ/3H7Sb22aJeSL1sVWMJNU3uF6LaapTPNLWw9Xa2ofE9Xoyd6kugppxqvd5ye6Elyfk85vS7La3I1Kxu//PKL7rrrLpUqVUouLi72D+Lqf/JDRuA+duyYVq5cec3fKEhSy5YtlZ6erqNHj0qSypYtm+VqdcbPZcuWveacjOMAADhL8uV0vbxgp4Z9t1PJl61qXa2Ulr1wW5bADQAACgaHQvcPP/ygrl27KiYmRr1795bNZlOfPn3Uu3dveXp6qlGjRho9enRe12oP3AcOHNBvv/2mUqVK/edrIiIiZDabFRQUJOnKev61a9dmWlqwcuVK1a5dWyVLlrTPWbVqVabzrFy5Uq1bt87DbgAAuD77Y5LU/cM/tWDbSZlN0tA7a+mrJ1oqyNfD2aUBAIAcOLS8fPz48WrRooXWr1+vuLg4zZgxQ/3791eHDh109OhRtWrVSlWrVr3u8164cEEHDx60/3zkyBFFREQoICBA5cqV0/3336/t27dr6dKlslqtio6OliQFBATIzc1N4eHh2rRpk0JDQ+Xj46Pw8HANHTpUDz/8sD1Q9+3bV+PGjdOAAQM0fPhw7dq1S9OmTdPUqVPt7zt48GC1b99ekydPVpcuXfTtt99q69atmjVrliMfFwAAN8QwDC3YelKjf9qllDSbgnzcNa13E7Wu/t+/fAYAAM7l0EZqXl5eGj9+vAYPHqz4+HgFBATol19+UVhYmCTp9ddf1/z587V79+7rOu+aNWsUGhqaZbxfv34aO3ZsjkF+9erVuv3227V9+3Y999xzioqKUmpqqqpWrapHHnlEw4YNy3S/dWRkpAYOHKgtW7YoMDBQgwYN0vDhwzOdc8GCBXrttdd09OhR1axZUxMnTlTnzp1z3UtiYqL8/Pz+86Z6AACu5WJqukYu/EuLIk5Jkm6rGaipvUIUWCL/9ikBAAD/LbeZz6Er3V5eXvZHbvn7+8vd3V2nT5+2Hy9TpoyOHDly3ee9/fbbda3fAfzX7weaNm2qjRs3/uf7NGrUSOvWrbvmnAceeEAPPPDAf54LAID8sudUop7/ZrsOx16UxWzSsLtq6dn21WU2m5xdGgAAyCWH7umuXbu29uzZY/85JCREX375pdLT05WSkqJvvvlGwcHBeVYkAADFiWEY+nrTMfWY/qcOx15UWV8PfftUKw0MrUHgBgCgkHEodN97771avHix/bnUI0eO1Jo1a+Tv76/SpUtr3bp1GjFiRJ4WCgBAcZCUkqbn5+3QyIW7dDndpg51grRs8G26pUqAs0sDAAAOcOie7uysW7dOP/74oywWi7p06ZLtvdnFCfd0AwCu118nE/T8vO06di5ZLmaTXulUW0+0rcbVbQAACqDcZr48C93IjNANAMgtwzA0d8NRvb0sSpetNlXw99QHfZuoaXBJZ5cGAABykK8bqQEAgLyRkJymV37YqV93x0iSOtYro0n3N5afl6uTKwMAAHnB4dD91Vdf6bPPPtPhw4cVFxeXZWdxk8mkhISEGy4QAICiasfxOA2at0Mn4y7J1WLS/zrX1WNtqshkYjk5AABFhUOhe/jw4Xr33XdVoUIFNW/eXH5+fnldFwAARZZhGPp0/RFN+CVK6TZDwQFe+rBvEzWq6O/s0gAAQB5zKHTPnj1bXbt21cKFC2U2O7QBOgAAxVLcxct6acFOrYo6I0nq3LCsJtzXSL4eLCcHAKAocnh5eefOnQncAABch61Hz+uFeTt0KiFFbi5mjepaTw+3DGY5OQAARZhDqblr165av359XtcCAECRZLMZmr7moHrN2qhTCSmqGuithc+10SOtKhO4AQAo4hx6ZFhCQoK6deumRo0aqX///qpUqZIsFkuWeQEBAXlSZGHEI8MAAJJ07kKqhn23U3/sPytJ6h5SXm/d21Al3HmACAAAhVm+PjLM29tbbdq00aRJkzRjxowc51mtVkdODwBAkbDx8DkN/naHYhJT5e5i1uvd6+vB5pW4ug0AQDHiUOh+/vnnNXv2bLVq1UotW7Zk93IAAK5itRn6aPVBvffbftkMqUZQCX3Ut6lql/VxdmkAAOAmcyh0z58/X4888ojmzJmTx+UAAFC4nUlK0dD5Efrz4DlJ0v3NKur17vXl5cZycgAAiiOH/gbg6uqqVq1a5XUtAAAUan8ejNXgbyMUeyFVnq4Wvdmjge5rVtHZZQEAACdyaPfy3r17a8mSJXldCwAAhVK61aYpK/bp4U83KfZCqmqX8dGSQbcSuAEAgGNXunv16qVBgwapS5cu6t+/v4KDg7Pdvbxp06Y3XCAAAAVZdEKKXvh2hzYfOS9J6tOiksZ0qy8P16z/XQQAAMWPQ48MM5v/uUCe3Q6shmHIZDIV693LeWQYABR9a/ad0bDvdur8xcvydrPo7Z4N1T2kgrPLAgAAN0G+PjLs888/d7gwAAAKuzSrTVNW7teMNYckSfXK+eqjh5qqaqC3kysDAAAFzXWH7tTUVJUsWVJVqlRRo0aN8qMmAAAKrFPxlzRo3g5tOxYnSXqkVWWN7FKX5eQAACBb172Rmpubmx544AFt2LAhP+oBAKDA+m1PjDq/v07bjsXJx91F0x9qqjd6NCBwAwCAHF33lW6TyaSaNWsqNjY2P+oBAKDAuZxu08TlUfpk/RFJUqOKfvqwT1MFl/JycmUAAKCgc+iRYf/73//04Ycfat++fXldDwAABcqJ88l64ONwe+Duf2tVff9MGwI3AADIFYc2Utu4caNKlSqlBg0a6Pbbb1eVKlXk6emZaY7JZNK0adPypEgAAJxh+a7Tevn7SCWlpMvXw0XvPtBYHeuXdXZZAACgELnhR4bleGIeGcYjwwCgkEpNt+rtn/dqbvgxSVKTYH990KeJKpbk6jYAALgiXx8ZZrPZHC4MAICC7GjsRT0/b7t2/Z0oSXq6fTW91LG2XC0O3ZEFAACKOYdCNwAARdHSyFMa8cNfupCarpJerpryYIhC6wQ5uywAAFCI3VDoPnLkiH755RcdO3Zl+V3lypV19913q2rVqnlSHAAAN0NKmlWvL92jbzYdlyTdUqWk3u/TROX8PP/jlQAAANfmcOh+8cUXNW3atCxLzc1ms4YMGaJ33333hosDACC/HTp7QQO/3q6o6CSZTNLA22toyJ015cJycgAAkAcc+hvF5MmTNXXqVPXs2VPh4eGKj49XfHy8wsPDdf/992vq1KmaOnVqXtcKAECeWrjjpLp9sF5R0UkKLOGmL/q30EthtQncAAAgzzi0e3mdOnVUp04dLVq0KNvjPXr0UFRUlKKiom60vkKL3csBoOC6dNmqMT/t0ndbT0qSWlcrpWm9QxTk6+HkygAAQGGR28zn0K/yjx49qrCwsByPh4WF6ejRo46cGgCAfLU/Jkn3fLhe3209KZNJGnJnTX31REsCNwAAyBcO3dMdFBSknTt35nh8586dKl26tMNFAQCQ1wzD0IJtJzV68S6lpNlU2sdd03qHqE31QGeXBgAAijCHQvcDDzygadOmqUqVKho0aJC8vb0lSRcvXtSHH36oTz75REOGDMnLOgEAcNjF1HSNWrRLP+74W5J0W81ATe0VosAS7k6uDAAAFHUO3dOdnJysbt26afXq1XJxcVH58uUlSadOnVJ6erpCQ0O1ZMkSeXl55XnBhQX3dANAwbD3dKIGfrNdh89elNkkvdixtp5tX11ms8nZpQEAgEIst5nPodCdYfHixVme0925c2d169ZNJlPx/ssMoRsAnMswDH2z+bjGLdmjy+k2lfX10Pt9mqhF1QBnlwYAAIqAPA3dPXv21NChQ3XbbbdJktauXau6dety3/Y1ELoBwHmSUtL06o9/aWnkaUlSaO3SmvxgiAK83ZxcGQAAKCrydPfyxYsX6/jx4/afQ0NDtXLlyhuvEgCAPLbr7wR1+2C9lkaelovZpP91rqNP+91C4AYAAE6Rq9BdoUIF7dixw/6zYRjFfvk4AKBgMQxDczccVc/pG3T0XLIq+Htq/tOt9VQ77t8GAADOk6vl5a+88oreffddVaxYUf7+/tq1a5cqVaokPz+/nE9sMl3zsWJFHcvLAeDmSbiUpuHfR2r57mhJ0l31ymjS/Y3k78XVbQAAkD9ym/ly9ciw8ePHq0aNGlq9erXOnDkjk8kkb29vlSpVKs8KBgDAEREn4vX8N9t1Mu6SXC0mvXp3XT1+axVWZAEAgALBod3LzWazvvrqK/Xt2zc/aioSuNINAPnLMAx9uv6I3lkepTSroUoBnvqwT1M1ruTv7NIAAEAxkKdXuv/tyJEj7FwOAHCahEtpevG7CP2294wkqXPDsppwXyP5erg6uTIAAIDMHArdlStXzus6AADIlYRLaXr4k0366+8EubmYNaprPT3cMpjl5AAAoEByKHQDAOAMCZfS9OinVwJ3gLebvujfQg0q5LypJwAAgLMRugEAhUJiSpoe/Wyzdp5MUEkvV33zZEvVKcueGQAAoGDL1XO6AQBwpqSUND366WbtPBGvkl6u+vqJVgRuAABQKBC6AQAFWlJKmvp9tlkRJ+Ll7+Wqr55oqXrlCdwAAKBwuKHl5ampqdq+fbvOnDmjW2+9VYGBgXlVFwAAupCarsc+36Ltx+Pl5+mqrwa0VP3y3MMNAAAKD4evdL///vsqV66c2rZtq549eyoyMlKSFBsbq8DAQH322Wd5ViQAoPi5kJquxz7brG3H4uTr4aKvn2jJpmkAAKDQcSh0f/755xoyZIg6deqkTz/9VIZh2I8FBgaqQ4cO+vbbb/OsSABA8XIxNV39P9+irfbA3YrADQAACiWHQvfkyZPVvXt3ffPNN+rWrVuW482aNdPu3btvuDgAQPGTfDldj8/Zos1Hz8vHw0VfDmiphhUJ3AAAoHByKHQfPHhQd999d47HAwICdO7cOYeLAgAUT8mX09V/zhZtPnJePu5XAnfjSv7OLgsAAMBhDoVuf39/xcbG5nh8z549Klu2rMNFAQCKn0uXrRowZ6s2Hj6vEu4u+mJAC4UQuAEAQCHnUOju3LmzZs2apfj4+CzHdu/erdmzZ+uee+650doAAMVESppVT3yxReGHz8nbzaK5/VuoSXBJZ5cFAABww0zG1bug5dKpU6fUsmVLGYahbt26adasWXr44YdltVr1ww8/qFy5ctq8eXOxfoRYYmKi/Pz8lJCQIF9fnicLADlJSbPqyS+2at2BWHvgbl4lwNllAQAAXFNuM59DV7rLly+vbdu2qVOnTpo/f74Mw9CXX36pJUuWqE+fPtq4cWOxDtwAgNy5OnB7uVk0h8ANAACKGIeudP/b2bNnZbPZVLp0aZnNDj/6u0jhSjcAXFtKmlVPf7lNf+w/eyVwP95CLaoSuAEAQOGQ28znkhdvVrp06bw4DQCgmEhNt+qZr64Ebk9Xiz577BYCNwAAKJIcCt2vv/76NY+bTCZ5eHioYsWKateunSpUqOBQcQCAoic13apnv9quNfvOysPVrM8eu0WtqpVydlkAAAD5wqHl5WazWSaTSZL075f/e9xisejJJ5/Uhx9+WKyWnrO8HACySk236rmvtmtV1JkrgbvfLWpTgz1AAABA4ZOvG6mdPHlSjRo1Ur9+/bRt2zYlJCQoISFBW7du1aOPPqqQkBDt379f27dv10MPPaSPP/5Yb7/9tsPNAAAKv8vpNg38eodWRZ2Ru4tZnxK4AQBAMeDQle4ePXrI09NT8+bNy/Z47969lZ6eru+//17Sled6Hzx4UPv377+xagsRrnQDwD8up9s08JvtWrknxh6429YkcAMAgMIrX690//7772rfvn2Ox9u3b6+VK1faf+7cubOOHz/uyFsBAAq5NKtNg+ZdCdxuLmbNfrQ5gRsAABQbDoVud3d3bdq0KcfjGzdulJubm/3n9PR0lShRwpG3AgAUYmlWm16Yt0O/7v4ncLerxRMvAABA8eFQ6O7Tp4+++OILvfTSSzp06JBsNptsNpsOHTqkF198UV999ZX69Oljn7969WrVq1cvz4oGABR8aVabBn+7Q7/sipabxayPH2mm9gRuAABQzDj0yLCJEycqJiZGU6ZM0dSpU+27kttsNhmGofvuu08TJ06UJKWkpKhZs2Zq06ZN3lUNACjQ0q02DZkfoWV//RO4Q2sHObssAACAm86hjdQy7NixQ8uXL9exY8ckSZUrV1ZYWJiaNm2aZwUWVmykBqC4SrfaNPS7nVqy85RcLSbNfLiZ7qhbxtllAQAA5KncZj6HrnRnaNKkiZo0aXIjpwAAFCFWm6EXF/wTuKc/ROAGAADFm0P3dAMA8G9Wm6GXFuzU4ohTcjGb9GHfprqrHoEbAAAUbw6H7l9++UV33XWXSpUqJRcXF1ksliz/AACKB6vN0MsLdmrhjr/tgTusfllnlwUAAOB0DoXuH374QV27dlVMTIx69+4tm82mPn36qHfv3vL09FSjRo00evTovK4VAFAAWW2GXvk+Uj/u+FsWs0kf9GmiTg0I3AAAAJKDoXv8+PFq0aKFduzYoXHjxkmS+vfvr6+//lq7du3S6dOnVbVq1TwtFABQ8Nhshkb8EKkftp+UxWzS+72b6O6G5ZxdFgAAQIHhUOjes2ePevfuLYvFIheXK3uxpaWlSZKqVKmi5557Tu+8807eVQkAKHBsNkOv/viXFmy7Erin9Q5Rl0YEbgAAgKs5FLq9vLzk5uYmSfL395e7u7tOnz5tP16mTBkdOXIkbyoEABQ4Npuh/y38S/O3npDZJE3tFaKujco7uywAAIACx6HQXbt2be3Zs8f+c0hIiL788kulp6crJSVF33zzjYKDg/OsSABAwWGzGRq5aJe+3fJP4L6nMYEbAAAgOw6F7nvvvVeLFy9WamqqJGnkyJFas2aN/P39Vbp0aa1bt04jRozI00IBAM5nGIZGLd6leZuPy2ySpjwYou4hFZxdFgAAQIFlMgzDyIsTrVu3Tj/++KMsFou6dOmi0NDQvDhtoZWYmCg/Pz8lJCTI19fX2eUAwA0zDEOjF+/WlxuPyWSSJj/QWD2bVnR2WQAAAE6R28yXZ6EbmRG6ARQlhmFo7E+7NTf8SuCedH9j3d+MwA0AAIqv3GY+h5aXAwCKD8MwNG7JHnvgnnhfIwI3AABALrk4+sKvvvpKn332mQ4fPqy4uDj9+4K5yWRSQkLCDRcIAHAewzD0+tI9mrPhqCTpnZ6N9EDzSs4tCgAAoBBxKHQPHz5c7777ripUqKDmzZvLz88vr+sCADiZYRh68+e9+vzPo5KkCT0b6sFbCNwAAADXw6HQPXv2bHXt2lULFy6U2cwKdQAoagzD0NvL9urT9UckSW/f21C9W/AoSAAAgOvlcGLu3LkzgRsAiiDDMDRheZRmr7sSuN/s0UB9WxK4AQAAHOFQau7atavWr1+f17UAAJzMMAxN/HWfPv7jsCTpje719XCryk6uCgAAoPBy6JFhCQkJ6tatmxo1aqT+/furUqVKslgsWeYFBATkSZGFEY8MA1DYGIahd1fs00erD0mSxt1TX/3aVHFuUQAAAAVUbjOfQ/d0e3t7q02bNpo0aZJmzJiR4zyr1erI6QEAN5lhGJqycr89cI/pVo/ADQAAkAccCt3PP/+8Zs+erVatWqlly5bsXg4Ahdx7vx3QB78flCSN6lpPj99a1ckVAQAAFA0Ohe758+frkUce0Zw5c/K4HADAzfbeb/s1bdUBSdJrXepqQFsCNwAAQF5xaCM1V1dXtWrVKq9rAQDcZO+vOqD3frsSuEd2rqsnbqvm5IoAAACKFodCd+/evbVkyZK8rkVr165Vt27dVL58eZlMJi1atCjTccMwNHr0aJUrV06enp668847deDAgUxzzp8/r4ceeki+vr7y9/fXgAEDdOHChUxzIiMjddttt8nDw0OVKlXSxIkTs9SyYMEC1alTRx4eHmrYsKGWLVuW5/0CgDN9+PsBTVm5X5L06t119GQ7AjcAAEBecyh09+rVS6dPn1aXLl30ww8/aMuWLdq+fXuWf67XxYsX1bhxY3300UfZHp84caLef/99zZw5U5s2bZK3t7fCwsKUkpJin/PQQw9p9+7dWrlypZYuXaq1a9fqqaeesh9PTExUx44dVblyZW3btk2TJk3S2LFjNWvWLPucDRs2qE+fPhowYIB27NihHj16qEePHtq1a9d19wQABdFHqw/q3RVXAvfwTnX0dPvqTq4IAACgaHLokWFm8z9Z3WQyZTluGIZMJtMN7V5uMpm0cOFC9ejRw37O8uXL68UXX9RLL70k6cqjy8qUKaM5c+aod+/e2rt3r+rVq6ctW7aoefPmkqTly5erc+fOOnnypMqXL68ZM2Zo5MiRio6OlpubmyRpxIgRWrRokaKioiRd+aXCxYsXtXTpUns9rVq1UkhIiGbOnJmr+nlkGICCasaaQ3pn+ZV/370cVlsDQ2s4uSIAAIDCJ18fGfb55587XJijjhw5oujoaN155532MT8/P7Vs2VLh4eHq3bu3wsPD5e/vbw/cknTnnXfKbDZr06ZNuvfeexUeHq527drZA7ckhYWF6Z133lFcXJxKliyp8PBwDRs2LNP7h4WFZVnufrXU1FSlpqbaf05MTJQkpaWlKS0tTdKVX1ZYLBZZrVbZbDb73Izx9PR0Xf07EIvFIrPZnON4xnkzuLhc+TrT09NzNe7q6iqbzZbplyMmk0kuLi45judUOz3REz0Vjp4+XnvYHriH3lFDT7WtbH9tYe0pu9oL+/dET/RET/RET/RETwW/p3+fLycOhe5+/fo58rIbEh0dLUkqU6ZMpvEyZcrYj0VHRysoKCjTcRcXFwUEBGSaU7Vq1SznyDhWsmRJRUdHX/N9sjN+/HiNGzcuy/iKFSvk5eUlSQoODlaTJk0UGRmp48eP2+fUrl1bderU0ebNm3X27Fn7eEhIiCpXrqy1a9cqKSnJPt66dWsFBQVpxYoVmf4ghIaGytPTM8v95507d9alS5e0evXqTJ9Lly5dFBsbq/DwcPu4j4+POnTooBMnTigiIsI+Xrp0abVp00YHDhzQvn377OP0RE/0VHh6Ou5VU5NXHbnSRyWrqiRHadmyqELdU1H8nuiJnuiJnuiJnuipcPSUnJys3HBoefnN8O/l5Rs2bNCtt96qU6dOqVy5cvZ5Dz74oEwmk+bPn6+3335bc+fOzfRFSVJQUJDGjRunZ599Vh07dlTVqlX18ccf24/v2bNH9evX1549e1S3bl25ublp7ty56tOnj33O9OnTNW7cOMXExGRbb3ZXuitVqqTY2Fj7UoOC/psaqej99ome6Imervh8wzG9/cuVfze+EFpdgzr8cw93Ye3pWrXTEz3REz3REz3REz3ld0+JiYkKDAzMm+Xl/fv3l8lk0qxZs2SxWNS/f///fI3JZNKnn36am9PnStmyZSVJMTExmUJ3TEyMQkJC7HPOnDmT6XXp6ek6f/68/fVly5bNEpwzfv6vORnHs+Pu7i53d/cs466urnJ1dc00ZrFYZLFYsszN+HJzO/7v8zoybjabZTZn3U8vp/GcaqcnerrecXq6eT19tv7IP4G7Qw0N61j7mvNzU7uze7qRcXqiJ4mecqrxesfpiZ4kesqpxusdp6fC11NOr8tST24m/f777zKbzbLZbLJYLPr999+z3UDtav91/HpVrVpVZcuW1apVq+whOzExUZs2bdKzzz4r6cqygfj4eG3btk3NmjWz126z2dSyZUv7nJEjRyotLc3+Ia1cuVK1a9dWyZIl7XNWrVqlIUOG2N9/5cqVat26dZ72BAD5bc6fR/T60j2SpOdDa2joXbWcXBEAAEDxkqvQffTo0Wv+nFcuXLiggwcP2n8+cuSIIiIiFBAQoODgYA0ZMkRvvvmmatasqapVq2rUqFEqX768fQl63bp11alTJz355JOaOXOm0tLS9Pzzz6t3794qX768JKlv374aN26cBgwYoOHDh2vXrl2aNm2apk6dan/fwYMHq3379po8ebK6dOmib7/9Vlu3bs30WDEAKOi+CD+qsUuuBO7nbq+uFzvWyvNfiAIAAODaCtQ93WvWrFFoaGiW8X79+mnOnDkyDENjxozRrFmzFB8fr7Zt22r69OmqVeufKzfnz5/X888/ryVLlshsNuu+++7T+++/rxIlStjnREZGauDAgdqyZYsCAwM1aNAgDR8+PNN7LliwQK+99pqOHj2qmjVrauLEiercuXOue+GRYQCc6cuNxzRq0S5J0jPtq2t4p9oEbgAAgDyU28xXoEJ3UULoBuAsX286ppELrwTup9tV04i76xC4AQAA8lhuM1/Wu9cBAIXWvM3H7YH7yduqErgBAACcjNANAEXE/C3H9eqPf0mSBrStqv91rkvgBgAAcDJCNwAUAd9tOaER/x+4H7+1il7rQuAGAAAoCAjdAFDILdh6QsN/jJRhSI+1qaLRXesRuAEAAAoIQjcAFGI/bDupV364ErgfbV1ZY7oRuAEAAAqSXD2nOzu//vqrPv30Ux0+fFhxcXH69yboJpNJhw4duuECAQDZW7jjpF76fqcMQ3q4VbDG3VOfwA0AAFDAOBS6J02apBEjRqhMmTJq0aKFGjZsmNd1AQCuYdGOv/Xid1cC90Mtg/X6PQ0I3AAAAAWQQ6F72rRp6tChg5YtWyZXV9e8rgkAcA2LI/7WsO8iZDOkPi2C9Ub3BjKbCdwAAAAFkUP3dMfFxen+++8ncAPATbZk5ykNnX8lcPe+pZLe6kHgBgAAKMgcCt0tWrTQvn378roWAMA1LI08pSH/H7gfbF5Rb9/bkMANAABQwDkUuqdPn64ff/xR33zzTV7XAwDIxrK/TmvwtxGy2gzd36yiJvRsROAGAAAoBEzGv7cdz4VGjRrp/PnzOn36tEqUKKGKFSvKYrFkPrHJpJ07d+ZZoYVNYmKi/Pz8lJCQIF9fX2eXA6AQ++Wv03p+3g5ZbYZ6Nq2gSfc3loXADQAA4FS5zXwObaQWEBCgUqVKqWbNmg4XCAD4b8t3RWvQ/wfue5sQuAEAAAobh0L3mjVr8rgMAMC/rdgdree/2a50m6HuIeX17gMEbgAAgMLmuu/pTk5OVqlSpfTuu+/mRz0AAEm/7YnRwP8P3Pc0Lq/JBG4AAIBC6bpDt5eXl1xcXOTl5ZUf9QBAsbdqb4ye/Xqb0qyGujYqpykPNpaLxaF9LwEAAOBkDv0t7r777tP3338vB/ZgAwBcw+qoM3r2q+1Ksxrq0rCc3usVQuAGAAAoxBy6p7t379567rnnFBoaqieffFJVqlSRp6dnlnlNmza94QIBoLhYs++Mnv5ymy5bbercsKze603gBgAAKOwcemSY2fzPXwJNpqz3GBqGIZPJJKvVemPVFWI8MgzA9fhj/1k9+cVWXU63qVP9svqgbxO5ErgBAAAKrHx9ZNjnn3/ucGEAgMzWXhW4w+qXIXADAAAUIQ6F7n79+uV1HQBQLK0/EGsP3HfVK6MP+jQlcAMAABQhN/w3u9OnT2vnzp26ePFiXtQDAMXGnwdjNWDuFqWm23Rn3SB91Lep3FwI3AAAAEWJw3+7W7x4serUqaOKFSuqadOm2rRpkyQpNjZWTZo00cKFC/OsSAAoajYc+idw31EnSB89ROAGAAAoihz6G96SJUvUs2dPBQYGasyYMZkeHRYYGKgKFSpozpw5eVUjABQp4YfOqf+cLUpJsym0dmlNf7ip3F0szi4LAAAA+cCh0P3666+rXbt2Wr9+vQYOHJjleOvWrbVjx44bLg4AippNh/8J3O1rldaMh5sRuAEAAIowh0L3rl279OCDD+Z4vEyZMjpz5ozDRQFAUbT5yHk9PmeLLqVZdVvNQH38SDN5uBK4AQAAijKHQreXl9c1N047fPiwSpUq5XBRAFDUbDl6Xo99vlnJl68E7tmPNidwAwAAFAMOhe7Q0FDNnTtX6enpWY5FR0dr9uzZ6tix4w0XBwBFwbZj5/XYZ1cCd9saBG4AAIDixKHQ/dZbb+nkyZO65ZZb9PHHH8tkMunXX3/Va6+9poYNG8owDI0ZMyavawWAQmf78Tj1+2yLLl62qk31UgRuAACAYsZkXL31+HXYvXu3Bg8erNWrV2favfz222/XRx99pLp16+ZZkYVRYmKi/Pz8lJCQIF9fX2eXA8AJdhyP06OfblZSarpaVyulzx67RZ5uBG4AAICiILeZz8XRN6hfv75+++03xcXF6eDBg7LZbKpWrZpKly7t6CkBoMiIOBFvD9wtqwbo08eaE7gBAACKIYdDd4aSJUvqlltuyYta/q+9+w6Pqsz7P/6ZmfSQQkihhRAhBFA60pQqwmIWdfERFQUeXAsurm1V5Lc2dF272LsLirKo+9iN0gkgQZSuSAwtAQwlQArpmTm/P3BmGZKQMMwwM8n7dV25rs09Zw7f794M5pNz7nMDQKOweW+BJr7zvYorqtUvOUazp5yvsKAz/ucWAAAAfqhBPwW+9957Lp180qRJLr0PAPzVlr2Fuu7t71VcXq3z2zfX7P8lcAMAADRlDVrTbTbXfN6ayWSSJJ38dvu4JFmt1jOtz2+xphtoen7aV6hr3/5ehWVV6pvUXHOu76dmwQRuAACAxsita7p37drl9H1BQYEmT56sqKgo/fWvf1Vqaqokadu2bXrppZdUXFysd9999wzKBwD/cmLg7kPgBgAAwO9cenr5lClTtHfvXi1cuNDpyrYk2Ww2jRo1SomJiZo9e7bbCvU3XOkGmo6tvxVpwttrVFBapV7tovXe9f0UERLo7bIAAADgQQ3NfC7t0/3ZZ5/pT3/6U43ALR2/FX3cuHH6/PPPXTk1APiVX/KKdO3vgbtnYrTeJXADAADgBC6FbsMwtG3btjpf37p1a4213gDQ2GzbX6Rr3/5eR0ur1KNtlN77cz9FErgBAABwApdC9+WXX67XXntNzz33nEpLSx3jpaWlevbZZ/XGG2/osssuc1uRAOBrsvYXa8Jb3+tISaW6t43Se3/uT+AGAABADS6t6S4sLNSll16qlStXKjAwUK1atZIk5eXlqaqqShdccIG+/PJLRUdHu7tev8GabqDx+vVAsa55c40Ol1TqvDaR+uDPAxQVRuAGAABoShqa+VwK3Xaff/650tPTlZubK0lKSkrSJZdcorFjx9a63rspIXQDjVP2gWJd89Ya5R+r1LmtI/XBDf0VHRbk7bIAAABwlp2V0I26EbqBxmf7wWO6+s01yj9Woa6tIjXvRgI3AABAU+XWfbrrUlJSooyMDOXk5EiS2rdvryFDhig8PPxMTgsAPmfHoWO/X+GuUJdWXOEGAABAw7gcul966SXdf//9OnbsmNOTyiMiIvTYY4/p1ltvdUuBAOBtOw8d0zVvrtGh4gp1bhmhD27or+bhBG4AAADUz6Wnl7/33nu6/fbbdd5552nevHnauHGjNm7cqH//+9/q1q2bbr/9ds2dO9fdtQLAWbcrv0TXvLVGB4srlJpwPHDHELgBAADQQC6t6e7Zs6eio6O1ZMkSWSwWp9esVqsuuugiFRQUaOPGje6q0++wphvwf0XlVRo9a4XyCsvVKaGZ5t04QLHNgr1dFgAAAHxAQzOfS1e6s7KydOWVV9YI3JJksVh05ZVXKisry5VTA4DPWLz1gPIKy9UmOlQf3EDgBgAAwOlzKXRHRUVp9+7ddb6+e/duru4C8HsZvx6SJF3eq7XiIgjcAAAAOH0uhe60tDS99NJLmj9/fo3XPvzwQ7388ssaO3bsGRcHAN5itRla8XvoHtop3svVAAAAwF+5tKb70KFDGjp0qLKystSyZUulpKRIkrKzs7V//3517txZGRkZio2NdXvB/oI13YB/27inQJe/8p0iggO0/sGLFWhx6XeUAAAAaKQ8uqY7Li5O69ev13PPPadu3brpwIEDOnDggLp166ZZs2Zp3bp1TTpwA/B/GVnHr3Jf0DGWwA0AAACXubxPd0hIiG6//Xbdfvvt7qwHAHxCxq8HJUlDU+O8XAkAAAD8GZdvAOAkBaWV2rinQJI0tBOhGwAAAK5z+Ur3qlWr9K9//Us7d+7U0aNHdfLScJPJpE2bNp1xgQBwtq3ani+bIXVKaKbW0aHeLgcAAAB+zKXQ/dxzz+mee+5RSEiIUlNTFRMT4+66AMBr7Ou5ucoNAACAM+VS6H766ad1wQUX6Msvv1RUVJS7awIArzEMw7E/N1uFAQAA4Ey5tKa7tLRU1157LYEbQKPzS16xDhZXKDTQor7tm3u7HAAAAPg5l0L38OHDtWXLFnfXAgBeZ7/KPbBDC4UEWrxcDQAAAPydS6H7pZde0pIlS/TMM8/oyJEj7q4JALzGsVUY67kBAADgBi6F7sTERN1888267777FBcXp/DwcEVGRjp9ces5AH9zrKJaP+4+KonQDQAAAPdw6UFqDz74oB577DG1adNGffv2JWADaBRWb89Xtc1QUoswtY8N93Y5AAAAaARcCt2vv/660tLS9Nlnn8lsduliOQD4HPt67mFc5QYAAICbuJSYKysrlZaWRuAG0Gg4bRWWSugGAACAe7iUmv/4xz9q5cqV7q4FALxmZ36J9h4tU5DFrAHntPB2OQAAAGgkXArdDz30kLZu3aq//OUvWrdunQ4dOqQjR47U+AIAf7E86/hV7n7JMQoLcmnlDQAAAFCDSz9ZpqamSpI2btyoN954o87jrFara1UBwFnmuLWc9dwAAABwI5efXm4ymdxdCwB4RXmVVd/vPCyJ9dwAAABwL5dC98MPP+zmMgDAe9bsPKyKaptaRYUoJb6Zt8sBAABAI8LjxwE0eY6twlLjuIsHAAAAbkXoBtDksZ4bAAAAnkLoBtCk7TlSqp2HSmQxmzSoY6y3ywEAAEAjQ+gG0KQt//0qd592zRUZEujlagAAANDYELoBNGkZv+/PzVPLAQAA4AmEbgBNVmW1Tat35EtiPTcAAAA8w6Utw1asWHHK100mk0JCQtS2bVu1atXKpcIAwNN+zDmi0kqrYpsFqWurSG+XAwAAgEbIpdA9bNiwBm+rk5KSopkzZ+qqq65y5Y8CAI+xP7V8SKc4mc1sFQYAAAD3cyl0f/vtt5o+fboqKip04403qmPHjpKk7Oxsvf322woNDdX999+vnJwcvfHGG5owYYIsFov+53/+x63FA8CZcKzn5tZyAAAAeIjJMAzjdN901113KTMzUxkZGQoKCnJ6rby8XMOGDdPQoUP15JNPqry8XH379lVoaKh++OEHtxXu64qKihQVFaXCwkJFRnLbKuBrDhSVq/8/l8hkktbdf7FiwoPqfxMAAADwu4ZmPpcepPbBBx9owoQJNQK3JIWEhOjaa6/Vu+++6/j+uuuu09atW135owDAI+xXubu3jSZwAwAAwGNcCt0lJSU6cOBAna/n5eXp2LFjju+jo6NlsVhc+aMAwCPs67m5tRwAAACe5FLoHjFihJ5//nl99dVXNV778ssv9cILL2jEiBGOsY0bN6p9+/YuFwkA7lRttWllNqEbAAAAnufSg9RefvllDR8+XJdddpnatGmjDh06SJJ27Nihffv2KSkpSS+99JKk42u8c3NzdcMNN7ivagA4A5v2FqiovFpRoYHq0TbK2+UAAACgEXMpdLdr105btmzR66+/rgULFignJ0eS1KVLF91xxx26+eabFR4eLun4mu709HT3VQwAZ8i+nvvClFgFWFy64QcAAABoEJdCtySFhYXprrvu0l133eXOegDA4+zruYdxazkAAAA8jEs8AJqUw8cqtHlfoSTWcwMAAMDzXL7SvWDBAr3zzjvauXOnjh49qpO3+zaZTNqxY8cZFwgA7rRqe74MQ+rSKlLxkSHeLgcAAACNnEuh++mnn9Z9992nhIQE9evXT926dXN3XQDgEcuzeGo5AAAAzh6XQrd9S7D09HQFBga6uyYA8AibzdAK9ucGAADAWeTSmu6jR4/qf/7nfwjcAPzKz78V6XBJpcKDLOqT1Nzb5QAAAKAJcCl09+vXT1lZWe6uBQA8KuPXg5KkQR1jFRTAcyQBAADgeS791Pnqq6/qk08+0bx589xdDwB4jGOrsFRuLQcAAMDZ4VLovuqqq1RdXa2JEycqKipK5557rrp37+701aNHD3fXKklq3769TCZTja9p06ZJkoYNG1bjtalTpzqdIzc3V2lpaQoLC1N8fLzuueceVVdXOx2zfPly9e7dW8HBwerYsaPmzJnjkX4AnB2FZVVan1sgSRqSQugGAADA2eHSg9RiYmLUokULpaSkuLueev3www+yWq2O73/66SddfPHFuvLKKx1jN954ox555BHH92FhYY7/bbValZaWppYtW2r16tXKy8vTpEmTFBgYqH/+85+SpF27diktLU1Tp07VBx98oCVLluiGG25Qq1atNHr06LPQJQB3W709X1aboQ5x4UqMCav/DQAAAIAbuBS6ly9f7uYyGi4uzvkK1RNPPKEOHTpo6NChjrGwsDC1bNmy1vcvXLhQW7du1eLFi5WQkKCePXvq0Ucf1fTp0/Xwww8rKChIr7/+upKTk/Xss89Kkrp06aJVq1Zp1qxZdYbuiooKVVRUOL4vKiqSJFVVVamqqkqSZDabZbFYZLVaZbPZHMfax6urq532O7dYLDKbzXWO289rFxBwfDpPvmpf13hgYKBsNpvTLzFMJpMCAgLqHK+rdnqiJ1/vaVnW8fXcg1Niner3554a4zzREz3REz3REz3REz35S08nn68uLoVuX1FZWan3339fd911l0wmk2P8gw8+0Pvvv6+WLVtq7Nix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GpJqzI19vqqrq93XpJ84nc/Je++9ZwQGBhoHDx6scQ4+J+5X39xs377dkGT89NNPTq9fdNFFxs033+z4ns+Je53OZ+bQoUPG0aNHDcMwjISEBOOpp55yvMa8uJ9OWje8Y8eOWtcKDxkyxLjtttsc3zMXnnfy3JzoVGu6//CHPxjPP/98jfHly5cb4eHhxhtvvOE0vmHDhhpzYzKZHHNz8rOtziZCt5/q16+fceuttzq+t1qtRps2bep88E15ebkRGhpqzJ492zAMw1iwYEGtP9g8+eSTRmRkpJGZmVnjtfz8fGPLli1OX61btzamT59ubNu2zS19NQanmpu8vLwa/x9KMl544QVj586dhmEwN+50up+TVatWGZKMTZs2GYbBXHjSqebGZrMZrVu3rvEgtZ49exozZswwDMMwfv31VyM0NNQoKSlxOmbevHlGSEhIrT9AFRUV1Zibvn37Gtddd52xZcsWD3TpHxr6ORk6dKhxxRVX1Hg/nxPPOdXcbN682ZBkbN261ek9o0aNMm688UbDMPiceMrp/rdlyZIlhslkcvzdZl484+RgZ3+Q2jPPPOMYKywsdHqQGnNxdrgSuouLi43g4GBj165dTuPLli0zwsPDjZdffrnGucrKymrMzWWXXWaMGDHC2LJli1FRUeGmjk4fodtPzZ8/3wgODjbmzJljbN261bjpppuM6OhoY//+/caOHTuMf/7zn8aPP/5o5OTkGN99950xduxYIyYmxjhw4IBhGIYxbdo0469//avTOZ944gkjKCjI+M9//mPk5eU5voqLi+usg6fN1nSquanNyf8QMTfuc6q52L59u/HII48YP/74o7Fr1y7j888/N8455xxjyJAhjvczF55T3+dk1qxZRmRkpPHxxx8b2dnZxv3332+EhIQ4fkv99NNPG2PHjnU65wcffGAEBAQYr7zyitPcFBQU1FkHT5xt2L9Z2dnZhslkMr755psa7+dz4jmnmpvKykqjY8eOxuDBg43vv//e2L59u/HMM88YJpPJ+Prrrw3D4HPiKfV9Zv71r38ZmZmZxvbt2425c+caMTExxl133eV4P/PiPsXFxcaGDRscVzife+45Y8OGDUZOTo5hGMf/LYqOjjY+//xzY/PmzcZll11mJCcnG2VlZYZhMBeeVN/cHD582NiwYYPx9ddfG5KM+fPnGxs2bDDy8vIM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\n",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"cell_type": "markdown",
"source": [
"## `<picture>` element usage among plugin users"
],
"metadata": {
"id": "MPMmUzqXStjI"
}
},
{
"cell_type": "code",
"source": [
"client = bigquery.Client(project=project_id)\n",
"plugin_and_picture_element_usage = f\"\"\"\n",
" CREATE TEMP FUNCTION getFeature(payload STRING, generator_tag STRING)\n",
" RETURNS STRING\n",
" LANGUAGE js\n",
" AS '''\n",
" try {{\n",
" var $ = JSON.parse(payload);\n",
" var almanac = JSON.parse($._almanac);\n",
" var generators = almanac['meta-nodes'].nodes.find(node => node.name == 'generator' && node.content.startsWith(generator_tag));\n",
" if ( generators.length == 0 ) {{\n",
" return \"\";\n",
" }}\n",
" var content = generators.content;\n",
" return content;\n",
" }} catch (e) {{\n",
" return \"\";\n",
" }}\n",
" ''';\n",
"\n",
"WITH\n",
" sites_using_webp_uploads AS (\n",
" SELECT\n",
" date,\n",
" page AS origin,\n",
" client AS device,\n",
" IF( JSON_EXTRACT(custom_metrics, '$.markup.images.picture.total') = '0', 'false', 'true') AS has_picture_element\n",
"\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) AS technologies,\n",
" UNNEST(technologies.categories) AS category\n",
" WHERE\n",
" date > PARSE_DATE( '%Y-%m-%d', '2024-05-01' )\n",
" AND technologies.technology = 'WordPress'\n",
" AND category = 'CMS'\n",
" AND is_root_page = TRUE\n",
" AND client='mobile'\n",
" AND getFeature(payload, 'webp-uploads') != ''\n",
" )\n",
"\n",
" SELECT\n",
" date,\n",
" COUNT( DISTINCT origin ) AS uses_modern_images_plugin,\n",
" COUNT( DISTINCT IF( ( has_picture_element = 'true' ), origin, null ) ) AS also_uses_picture_element,\n",
" SAFE_DIVIDE( COUNT( DISTINCT IF( ( has_picture_element = 'true' ), origin, null ) ), COUNT( DISTINCT origin ) ) AS percent_using_plugin_that_use_picture_element\n",
"FROM sites_using_webp_uploads\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\n",
"\"\"\"\n",
"\n",
"plugin_and_picture_element_usage_df = client.query(plugin_and_picture_element_usage).to_dataframe()\n"
],
"metadata": {
"id": "6DujP806t5wt"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"plugin_and_picture_element_usage_df.head(1000)"
],
"metadata": {
"id": "NWdbbdeTTdIY",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "7df7422b-7de1-4dc8-893d-c6eb71236fb2"
},
"execution_count": null,
"outputs": [
{
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"summary": "{\n \"name\": \"plugin_and_picture_element_usage_df\",\n \"rows\": 6,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 6,\n \"samples\": [\n \"2024-06-01\",\n \"2024-07-01\",\n \"2024-11-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_modern_images_plugin\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 6,\n \"samples\": [\n 10883,\n 12651,\n 19402\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"also_uses_picture_element\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 6,\n \"samples\": [\n 857,\n 1021,\n 1605\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"percent_using_plugin_that_use_picture_element\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0015379410458597764,\n \"min\": 0.07874666911697142,\n \"max\": 0.08272343057416762,\n \"num_unique_values\": 6,\n \"samples\": [\n 0.07874666911697142,\n 0.08070508260216584,\n 0.08272343057416762\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
"type": "dataframe",
"variable_name": "plugin_and_picture_element_usage_df"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-06-01\",\n{\n 'v': 10883,\n 'f': \"10883\",\n },\n{\n 'v': 857,\n 'f': \"857\",\n },\n{\n 'v': 0.07874666911697142,\n 'f': \"0.07874666911697142\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-07-01\",\n{\n 'v': 12651,\n 'f': \"12651\",\n },\n{\n 'v': 1021,\n 'f': \"1021\",\n },\n{\n 'v': 0.08070508260216584,\n 'f': \"0.08070508260216584\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-08-01\",\n{\n 'v': 13075,\n 'f': \"13075\",\n },\n{\n 'v': 1065,\n 'f': \"1065\",\n },\n{\n 'v': 0.08145315487571701,\n 'f': \"0.08145315487571701\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-09-01\",\n{\n 'v': 16148,\n 'f': \"16148\",\n },\n{\n 'v': 1330,\n 'f': \"1330\",\n },\n{\n 'v': 0.08236314094624721,\n 'f': \"0.08236314094624721\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-10-01\",\n{\n 'v': 17804,\n 'f': \"17804\",\n },\n{\n 'v': 1472,\n 'f': \"1472\",\n },\n{\n 'v': 0.08267804987643226,\n 'f': \"0.08267804987643226\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-11-01\",\n{\n 'v': 19402,\n 'f': \"19402\",\n },\n{\n 'v': 1605,\n 'f': \"1605\",\n },\n{\n 'v': 0.08272343057416762,\n 'f': \"0.08272343057416762\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"uses_modern_images_plugin\"], [\"number\", \"also_uses_picture_element\"], [\"number\", \"percent_using_plugin_that_use_picture_element\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-bf04c6f3-be83-4e13-8704-a97dc210e35c\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-bf04c6f3-be83-4e13-8704-a97dc210e35c')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-bf04c6f3-be83-4e13-8704-a97dc210e35c button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n ",
"text/html": [
"\n",
" <div id=\"df-b97badc1-d053-4646-946a-9f9f194d232a\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>uses_modern_images_plugin</th>\n",
" <th>also_uses_picture_element</th>\n",
" <th>percent_using_plugin_that_use_picture_element</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-06-01</td>\n",
" <td>10883</td>\n",
" <td>857</td>\n",
" <td>0.078747</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-07-01</td>\n",
" <td>12651</td>\n",
" <td>1021</td>\n",
" <td>0.080705</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-08-01</td>\n",
" <td>13075</td>\n",
" <td>1065</td>\n",
" <td>0.081453</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-09-01</td>\n",
" <td>16148</td>\n",
" <td>1330</td>\n",
" <td>0.082363</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-10-01</td>\n",
" <td>17804</td>\n",
" <td>1472</td>\n",
" <td>0.082678</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-11-01</td>\n",
" <td>19402</td>\n",
" <td>1605</td>\n",
" <td>0.082723</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b97badc1-d053-4646-946a-9f9f194d232a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-b97badc1-d053-4646-946a-9f9f194d232a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-b97badc1-d053-4646-946a-9f9f194d232a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-56a84a19-a16d-47fb-9a6c-5f4fb6f6a0ec\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-56a84a19-a16d-47fb-9a6c-5f4fb6f6a0ec')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-56a84a19-a16d-47fb-9a6c-5f4fb6f6a0ec button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"text/plain": [
" date uses_modern_images_plugin also_uses_picture_element \\\n",
"0 2024-06-01 10883 857 \n",
"1 2024-07-01 12651 1021 \n",
"2 2024-08-01 13075 1065 \n",
"3 2024-09-01 16148 1330 \n",
"4 2024-10-01 17804 1472 \n",
"5 2024-11-01 19402 1605 \n",
"\n",
" percent_using_plugin_that_use_picture_element \n",
"0 0.078747 \n",
"1 0.080705 \n",
"2 0.081453 \n",
"3 0.082363 \n",
"4 0.082678 \n",
"5 0.082723 "
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.dates as mdates\n",
"\n",
"plt.figure(figsize=(16, 10))\n",
"plt.plot(plugin_and_picture_element_usage_df['date'], plugin_and_picture_element_usage_df['percent_using_plugin_that_use_picture_element'])\n",
"\n",
"# Format the y-axis as percentages\n",
"\n",
"# Format the x-axis dates\n",
"plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%Y'))\n",
"plt.gca().xaxis.set_major_locator(mdates.MonthLocator()) # Show ticks at monthly intervals\n",
"\n",
"# Format the y-axis as percentages\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.4%}'.format(y)))\n",
"\n",
"\n",
"# Additional formatting for clarity\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('Percent of site using modern image formats plugin with picture elements', fontsize=12)\n",
"plt.title('Picture element percentage over time', fontsize=14)\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle horizontal grid\n",
"\n",
"plt.tight_layout() # Adjust layout for better readability\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "8tjRAcTTuN_F",
"outputId": "eb676e28-f71f-447e-963e-18c6a4b78dce"
},
"execution_count": null,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABjYAAAPdCAYAAAApm1FCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3hU1drG4Wdm0isEQk9C6D2hhl5UOoiKImLB7rFXVI6ADUQQEXv5VNCjINWKAopgQCAIAiIdkhB6SEIa6TP7+wMzMiRAGAKT8ruvi+uYvdfeed+ZgZPMM2stk2EYhgAAAAAAAAAAAMoBs6sLAAAAAAAAAAAAKCmCDQAAAAAAAAAAUG4QbAAAAAAAAAAAgHKDYAMAAAAAAAAAAJQbBBsAAAAAAAAAAKDcINgAAAAAAAAAAADlBsEGAAAAAAAAAAAoNwg2AAAAAAAAAABAuUGwAQAAAAAAAAAAyg2CDQAAAFwW9evXV/369V1dRpnXu3dvmUwmV5cB4BJ54YUXZDKZtHLlSleXAgAAUG4RbAAAAMAp8fHxMplMDn88PDwUEhKiUaNG6a+//irV78cb/hXTypUrZTKZ9MILL7i6lHKLx7Bs4fkAAAC49NxcXQAAAADKt4YNG+qWW26RJGVmZmrdunWaM2eOFi1apOXLl6tbt26SpOXLl7uyTAAoEx566CGNHDlSoaGhri4FAACg3CLYAAAAwEVp1KhRkU8mjxs3TpMmTdJzzz1nX26lYcOGl784AChjqlevrurVq7u6DAAAgHKNpagAAABQ6h5++GFJ0h9//GE/drY9NgzD0MyZM9WjRw9VqVJFPj4+aty4se677z4lJCRIkkwmk3777Tf7fxf+uf322yWde+mXwiWzCseeWU9qaqoeeughhYSEyM3NTbNmzbKP+euvvzRy5EjVrl1bHh4eCgsL08MPP6zk5OQLejwSExP1+OOPq1GjRvL09FT16tU1fPhw/f333xd0n2+//VZXXnmlqlatKi8vL7Vq1UrTpk2T1Wp1GDdr1iyZTCbNmjVL33//vaKiouTj46O6detq/PjxstlskqTPPvtMERER8vb2VmhoqF577bViv69hGPr000/VrVs3BQQEyMfHRx06dNCnn35aZOzp+wfMnj1bkZGR8vb2Vu3atfXoo48qOzvbYWyfPn0kSS+++KLDcxsfH3/Ox+L0Hr/99lt16tRJPj4+Cg4O1p133qljx44Ve11cXJzuvvtuhYaGytPTU7Vr19btt9+u/fv3FxlrMpnUu3dvHTp0SLfddptq1aols9nssDdCdHS0rrnmGtWsWVOenp4KCQnRddddp9WrV5eZx3D37t16+umn1a5dO1WrVk1eXl5q0qSJnn32WWVmZhb7OP31118aNGiQ/P39FRgYqEGDBunvv//W7bffftbnp6Svz/P5/vvv1adPHwUGBsrb21sRERGaPn26CgoK7GP2798vs9msK664oth75Ofnq3r16goJCbG/3iUpLy9P06dPV7t27eTr6yt/f3/16NFD3333XZF7FPYaGxur119/XS1atJCnp2eRf0tOV5Lno7g9Nk7/d2rHjh0aMmSIqlSpoqpVq+qmm25SUlKSJGnt2rW68sorFRAQoKpVq+ruu+/WyZMni60lOjpaQ4cOVfXq1eXp6anGjRtr3LhxysrKOmv9AAAA5QUzNgAAAHDJnG9PDJvNphtvvFELFixQ3bp1ddNNNykgIEDx8fGaN2+eBg4cqNDQUD3//POaNWuW9u/fr+eff95+fWRk5EXVl5ubqyuuuEKZmZm6+uqr5ebmppo1a0qSvvvuO40YMUJms1nDhg1TSEiItm/frnfeeUdLly5VTEyMqlatet7vsW/fPvXu3VsHDx5Uv379dM011ygxMVELFy7U0qVLtXz5ckVFRZ33PmPHjtWrr76qunXr6rrrrlNgYKBWrVqlMWPGKCYmRvPnzy9yzddff61ly5bpmmuuUbdu3bR48WJNnDhRhmEoMDBQEydO1LBhw9S7d28tXLhQTz/9tGrWrKnbbrvNfg/DMHTzzTdrzpw5aty4sUaNGiUPDw/9/PPPuuuuu7R9+3ZNmzatyPd+5513tGTJEg0bNkxXXHGFlixZorfeektJSUn68ssvJZ3aNyU+Pl6fffaZevXqpd69e9uvr1KlynkfE0n2x/H666/XVVddpXXr1mnmzJlatWqV1q9f7/AcxcTEqH///jp58qSGDBmixo0bKz4+Xl9++aV++uknrV27Vg0aNHC4f3Jysrp06aKgoCCNHDlSOTk5CggIkCS9+eabevzxx+Xt7a1rr71WoaGhOnTokFavXq0FCxaoe/fuZeIxXLRokT755BP16dNHvXv3ls1m07p16zRlyhT99ttvio6Olru7u/26LVu2qEePHjp58qSuu+46NW7cWBs2bFD37t0VERFR7PPgzOuzONOnT9eTTz6poKAgjRo1Sr6+vvruu+/05JNPatWqVVq0aJFMJpPCwsLUs2dP/fbbbzp48KDq1avncJ8ff/xRycnJeuaZZ2Q2n/o8X25urgYMGKCVK1cqMjJSd911l/Lz87V48WINGzZMb7/9th566KEiNT388MNat26dBg8erKFDh6pGjRpnrf9iX9NxcXHq2rWrOnTooLvvvlsbNmzQV199pQMHDujVV19Vv3791LdvX917771auXKlPvnkE9lstiIB2fvvv68HH3xQVapUsde8YcMGTZo0SStWrNCKFSvk4eFx3noAAADKLAMAAABwQlxcnCHJ6N+/f5FzEyZMMCQZffr0sR8LCwszwsLCHMa9/fbbhiTjyiuvNLKyshzOZWVlGcnJyfave/XqZZztx9cVK1YYkoznn3/+rHWOHj3a4XhYWJi9/jO/d1JSkhEQEGDUrVvXiI+Pdzg3Z84cQ5Lx0EMPFVvLmbp27WpYLBZjyZIlDsd37dpl+Pv7G61bt3Y4Xlyfy5Yts9eamZlpP26z2Yz//Oc/hiRjwYIF9uMzZ840JBnu7u7G+vXr7cfT09ONGjVqGD4+PkatWrWMffv22c8lJCQYHh4eRer56KOPDEnGHXfcYeTl5dmP5+bmGkOHDjUkGRs2bLAff/755w1JRmBgoLFz50778aysLKNJkyaG2Ww2Dh06ZD9+rufuXAp7lFTksX322WeLPEd5eXlG/fr1DX9/f+PPP/90GL9q1SrDYrEYQ4YMcTheeP877rjDKCgocDi3efNmw2w2G3Xq1DHi4uIcztlsNoceXf0YHjx40MjNzS1y/MUXXzQkGV988YXD8e7duxuSjC+//NLh+Pjx4+2Pyek9X+jr82z27t1ruLm5GTVq1DASEhLsx3Nycuw1ff755/bjH3/8sSHJmDJlSpF7DR8+3JBk/P333/Zj//3vfw1Jxvjx4w2bzWY/np6ebnTo0MHw8PBweFxHjx5tSDLq1atn7N+//7z1Fzrf81H4/K5YscJ+rPDfKUnGjBkz7MdtNpsxaNAgQ5JRpUoV45tvvrGfy8vLM9q0aWO4ubkZR48etR/ftm2b4ebmZkRERBhJSUkO33vy5MmGJGPatGkl7gcAAKAsYikqAAAAXJS9e/fqhRde0AsvvKAxY8aoZ8+eeumll+Tl5aVJkyad89r33ntPFotF77//vry9vR3OeXt7Kygo6FKWLkmaOnVqke/9+eefKz09XZMnT1ZYWJjDuZEjR6pdu3b66quvznvvTZs2ac2aNRo9erT69+/vcK5Jkya65557tHXr1vMuSfXOO+9Ikj766CP5+vraj5tMJr366qsymUyaM2dOketuueUWdezY0f61v7+/hgwZoqysLN1///0OsxNCQkLUvXt3bd++3WHJn3feeUe+vr569913HT7V7+HhYX9+i/vejz76qJo2bWr/2tvbWzfddJNsNps2btx4zn4vxFVXXVXksX3uuedUpUoVff755/ZliH744QfFx8drzJgxatu2rcP47t27a9iwYfrxxx+Vnp7ucM7Dw0NTp06VxWJxOP7hhx/KZrNp4sSJRZZYM5lMqlOnjv1rVz+GdevWLfbT+YWzE3755Rf7sf3792v16tWKiIjQqFGjHMY/88wzxc5Scvb1eabZs2eroKBATz75pEJCQuzHPT09NWXKFElyWCru+uuvl5eXl7744guH+6SmpuqHH35QZGSkWrZsKenU7LD3339fDRs2tC8RVcjf318TJkxQXl6eFi1aVKSuMWPGXLaNvhs2bKhHHnnE/rXJZNLIkSMlSW3bttWwYcPs59zd3XX99deroKBA27dvtx//8MMPVVBQoLffflvVqlVzuP/TTz+t4ODgEj0fAAAAZRlLUQEAAOCi7Nu3Ty+++KKkU2+01axZU6NGjdKzzz6r1q1bn/W6zMxM7dixQ40aNVLjxo0vV7kOvLy8iq1x3bp1kk4tXbRv374i53NycpSUlKSkpKRzbgJceJ9jx44Vu//Hzp077f/bqlWrc97H19e32P0YpFNveBfe63TFLdVVu3btc56zWq06duyY6tatq6ysLG3dulV16tSxv7F8uvz8fIc+Tte+ffsixwqXC0pNTS22D2f06NGjyDE/Pz9FRkZq5cqVio2NVaNGjezPxa5du4p9Lo4ePSqbzabdu3erQ4cO9uPh4eHFPsfr16+XJPXr1++c9ZWFx9D4Zx+bWbNm6e+//1ZaWprDvhOHDx+2//eWLVskSd26dStyH19fX0VGRmrFihUOx519fZ5p06ZNkuSwfFOhLl26yMvLS5s3b7YfCwwM1NVXX6158+Zpy5Yt9mWy5s+fr9zcXN166632sbt27dKJEydUp04d+79Xpzt+/Lik4p+HTp06nbf20tKmTZsiS/id7++s5PgcFr7WC5e6O5O7u3uJng8AAICyjGADAAAAF6V///5asmTJBV+XlpYm6dSnyV2lRo0axe4DkpKSIkl69913z3n9yZMnzxlsFN5n8eLFWrx48Tnvcy4pKSkqKCgo9g3Zc92jcC+I07m5uZ33XOGb7SdOnJBhGDp06FCpfu8L3Uz6XAr3RDnb8cLXWeFzUbg3xdmc2cvZ7p+WliaTyWR/Y/lsysJj+Mgjj+idd95RSEiIrr76atWuXVuenp6STm1wnZubax9bOGPlbPtIFPd4OPv6PFPh9y7ue5hMJtWsWVOHDh1yOH7rrbdq3rx5+uKLL+zBxv/+9z9ZLBaHGSeFz/+2bdu0bdu2C6rzbK+BS+Fi/85K//Z6vhlzAAAA5RnBBgAAAFwiMDBQkoq8UemMws2BT19CqVDhG9vFOdvm5oVvIG7duvWcMynOp/A+Z9uU+ELuYzKZlJSU5PQ9nP2+0qmZAxs2bLis37ukjh07ds7jha+zwl6+//57DRkypMT3P9trpEqVKjIMQ0eOHDlnOOfqxzAxMVHvvvuu2rRpo7Vr18rHx8d+7ujRo0XCiMJ6ExMTi71fcY93ab0+C7/3sWPHiiwBZxiGjh07VuTN/QEDBtiXVpoyZYoSEhK0evVq9evXT7Vq1Spy7+HDh2vBggUXVNfZXgNlVWGv6enp8vf3d3E1AAAAlwZ7bAAAAMAl/Pz81KJFC8XFxWnPnj3nHV+4x0Fxn1QvXPe/uJCkcHmbCxEVFSVJWrt27QVfe6nuk5ycXKLHqTT5+/urefPm2rFjR6kuH3W6cz2vJbFq1aoixzIzM7V582YFBATY9xEpreeiUOHyRMuWLTvnOFc/hrGxsTIMQ1dddZVDqCEV/9gVznpYs2ZNkXNZWVn2papOV1qvz8K9T1auXFnkXExMjHJycoosx+Tm5qaRI0fq0KFDWrFihb788ksZhqFbbrnFYVzz5s0VEBCgDRs2OMxuuBQu9jV9sQpf64VLUgEAAFREBBsAAABwmQcffFBWq1UPPPCAsrOzHc7l5OTYl1SRZN9I/MCBA0Xu07RpU/n7++u7775zuObYsWOaOHHiBdd1xx13yN/fX88991yxy9ZkZWWV6E3DTp06KSoqSnPmzNHcuXOLnLfZbPrtt9/Oe5/CzYTvvPNOJScnFzl/9OhR7dix47z3ccYjjzyirKws3XPPPcUu0xMXF6f4+Hin73+u57UkfvnlFy1dutTh2KRJk5SamqrbbrvNPptn2LBhCg0N1fTp0xUdHV3kPvn5+Vq9enWJv+9//vMfWSwWjRs3Tvv373c4ZxiGw54HrnwMC2c+rFmzxmFfjYMHD2rs2LHFju/WrZs2b95c5DX72muvOfz9KlRar89Ro0bJzc1N06dPd3j88vLy9Mwzz0iSbr/99iLXFe6l8b///U//+9//5Ovrq2uvvdZhjJubm+6//37t379fTz31VLHhxt9//33WmSoX4mJf0xfrgQcekJubmx5++GElJCQUOZ+amupU4AsAAFCWsBQVAAAAXOb+++/Xb7/9pnnz5qlx48a6+uqrFRAQoISEBC1dulSffPKJrrnmGknSFVdcoQULFmj48OEaOHCgvLy8FBERoaFDh8rDw0MPP/ywXnnlFbVr107Dhg1TRkaGvv/+e/Xq1avYDcDPpXBpmxtuuEEREREaMGCAmjVrptzcXMXHx+u3335T165dS7S3yJw5c9SnTx+NHDlSM2bMULt27eTt7a2EhAStXbtWx48fV05OzjnvMWDAAI0fP14vv/yyGjVqpAEDBigsLEzJycnau3evVq1apYkTJ6p58+YX1GdJ3HfffVq3bp0+++wz/f7777rqqqtUp04dHTt2TDt37lRMTIxmz56t+vXrO3X/Zs2aqU6dOvrqq6/k6empevXqyWQy6eGHH7YvI3UuQ4YM0dChQ3X99derfv36WrdunVasWKGGDRvqpZdeso/z9PTUggULNHDgQPXq1UtXXHGFWrduLZPJpP3792vVqlWqVq1aiTdVbt26tWbMmKFHHnlELVu21DXXXKOwsDAdPXpU0dHRGjx4sGbMmCHJtY9h7dq1NXz4cC1cuFAdOnTQlVdeqWPHjumHH37QlVdeWezfjbfffls9e/bUzTffrIULF6pRo0b6888/tW7dOvXs2VPR0dH2wEgqvddnw4YNNWXKFD355JNq06aNRowYIV9fX33//ffatWuXhg0bVmQmhiR17NhRTZs21ezZs5Wfn69bb71Vvr6+Rca9+OKL+vPPP/XWW29p8eLF6tmzp2rUqKFDhw5p69at2rJli9auXXvW/UVK6mJf0xerVatWeu+993T//feradOmGjRo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27aVJM2dO1dPPPGEPvjgA0VFRWnGjBnq37+/du3apRo1akiSHn/8cS1evFjz589XYGCgHnroIV133XX6/fffJZ0KXQYPHqxatWppzZo1OnLkiG677Ta5u7vrlVdekSTdfffduuKKKzR37lzdfffdeuWVVzRt2jRJ0uuvv65u3bqpU6dOpfZ4AQAAAKgYCqw2fRgdqxm/7Fa+1VB1Pw9Nvq6N+rao6erSAAAAgDLHqc3DAwMDNXXqVN13332lWsyQIUNUs2ZNffLJJ/Zjw4cPl7e3t7744osS36dly5a68cYbNWHCBElSVFSUOnbsqHfeeUeSZLPZFBISoocffljPPvus0tLSFBwcrNmzZ+v666+XJO3cuVPNmzfX2rVr1blzZ/30008aMmSIDh8+rJo1T/1y8cEHH+iZZ57R8ePH5eHhIR8fH/35559q1qyZ3n//ff3www9avHixYmNjNWDAAG3cuFH+/v4X9JiweTgAAABQscUnndQT8zbrz4RUSVK/FjU1+brWqubn6drCAAAAgMvokm8e3qdPH23dutWp4s6la9eu+uijj7R79241adJEW7Zs0erVqzV9+vQS38NmsykjI8O+FFZeXp42btyosWPH2seYzWZdddVVWrt2rSRp48aNys/P11VXXWUf06xZM4WGhtqDjbVr16p169b2UEOS+vfvr/vvv1/btm1T27ZtFRERoZ9//lmNGjXS8uXL1aZNG0nSf/7zH02dOrVEoUZubq5yc3PtX6enp0uS8vPzlZ+fb6/fYrHIarXKZrM59GWxWFRQUOCwfJfFYpHZbD7r8cL7FnJzO/WyOH2ZrXMdd3d3l81mk9VqtR8zmUxyc3M76/Gz1U5P9ERP9ERP9ERP9ERP9FRZejIMQ3P+OKhXl+xWdr5Vfp5uGj+4qa6NrCOTyWS/tjz1dObxivA80RM90RM90RM90RM90dPl6enMe52LU8HG22+/rX79+mnatGm68847ndpPozjPPvus0tPT1axZM/uDO2nSJN18880lvse0adOUmZmpESNGSJKSkpJktVodAglJqlmzpnbu3ClJOnr0qDw8PFSlSpUiY44ePWofU9w9Cs9J0scff6wHHnhA06ZNU7du3TR27Fj973//k4+Pjzp27Kj+/ftr3759GjlypCZOnFhs/ZMnT9aLL75Y5PiyZcvk4+MjSQoNDVXbtm31119/KSEhwT6madOmatasmdavX6/jx4/bj0dGRiosLEzR0dHKyMiwH+/SpYtq1KihZcuWObyg+vTpI29vb/34448ONQwaNEjZ2dlasWKF/Zibm5sGDx6spKQke1AkSf7+/rriiit04MABbd682X48ODhYXbt21Z49e7Rr1y77cXqiJ3qiJ3qiJ3qiJ3qip8rU04GkDM3ZZ9bOtFPbHnZpUE0DqyXL68gW/XRkS7nsqSI+T/RET/RET/RET/RET/R0+XrKyspSSTm1FJUkzZgxQ0899ZQMw5CXl5csFovjjU0mpaWlXdA9v/rqK40ZM0avvfaaWrZsqc2bN+uxxx7T9OnTNXr06PNeP3v2bN1zzz369ttv7bMvDh8+rLp162rNmjXq0qWLfezTTz+t3377TTExMZo9e7buuOMOh5kSktSpUyf16dNHU6ZM0b333qv9+/c7bEyelZUlX19f/fjjjxo4cGCRepKTk9WxY0dFR0frkUceUUREhJ566il17NhRU6ZM0dChQ4tcU9yMjZCQECUlJdmn35TlVK1QRUoK6Yme6Ime6Ime6Ime6ImeSrOnb/48oOe/36607AJ5upn1dP+muqNbuKzWktVeFnuqiM8TPdETPd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment