diff --git "a/data/create_fig.ipynb" "b/data/create_fig.ipynb" new file mode 100644--- /dev/null +++ "b/data/create_fig.ipynb" @@ -0,0 +1,730 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "from rdkit import Chem\n", + "from rdkit.Chem import Draw\n", + "from datasets import load_dataset\n", + "from scipy.stats import chi2_contingency" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f611bafcb7ea45a0b218d0652293c6b2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "README.md: 0%| | 0.00/744 [00:00" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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IiMji22PjIxUbm5uqWNyc3NL3b+wsFAHDx5UdHR0iTHJyckaO3asa/306dP69ddfVbduXdlsNi8cie84HA7FxsYqOztboaGh1KJWte6NWlVXqzr3Rq1LpzdqVV2t6twbtaquVnXuzdvH6UuWZeno0aOKiYkpdz+fzWGdG0gsyyo3pJS2f2nbz7Lb7bLb7cW21alTx4NOq05oaKjXnkjUujRqebsetS6NWt6uR62qq+XtetS6NGp5ux61Lo1a3q5XXWv5UlhY2Hn3qeHtf/Tyyy+Xn59fiVmgvLy8ErM/Z0VFRZW6v7+/v+rWrevtFgEAAADA+2GoZs2auu6667Ru3bpi29etW6f4+PhSx8TFxZXYf+3atWrfvr0CAgK83SIAAAAAeD8MSdLYsWP197//XfPmzdOOHTv06KOPau/eva7vDUpOTtbQoUNd+48cOVJ79uzR2LFjtWPHDs2bN09z587VuHHjfNFelbPb7Zo4cWKJ0/yoZW4tb9ej1qVRy9v1qFV1tbxdj1qXRi1v16PWpVHL2/Wqa63qwmZZ57vfnGdmzZqlqVOnKicnR61atdK0adPUtWtXSdLw4cP1008/KT093bV/RkaGHn30UdeXrk6YMOGi/tJVAAAAANWbz8IQAAAAAFRnPjlNDgAAAACqO8IQAAAAACMRhgAAAAAYiTB0kTt06JAiIiL0008/VarOgAED9Morr3inKQCogMLCQs2bN0+JiYmqX7++oqKidP3112vatGk6fvx4VbcH+FxCQoJsNptsNpuysrKquh2X4cOHu/pasWJFVbdTTEJCgh555JGqbgOXEMLQBXbgwAEFBASooKBAhYWFCg4O1t69ez2ul5KSot69e6tx48aV6uuZZ57RCy+8IIfDUak6Jho+fLgef/xxj8dnZmaqd+/eiomJqdQbT0pKijp06KCQkBBFRESob9+++v777z3ua/bs2WrTpo3rW6bj4uL04Ycfelzv933abDaP38wmTZrkepM+u0RFRXncz759+3T33Xerbt26qlWrlq699lp98cUXbtdp3Lhxib5sNptGjRrldq3CwkI99dRTatKkiYKCgnTFFVfoueee0+nTp92uJUlHjx7VI488okaNGikoKEjx8fHasmWLR7W85aefflL79u316quvql+/fnrvvfe0du1aPfzww1q7dq1at26tXbt2Vbje7z+82Ww21a1bVzfddJO++uorj/rLzc3V6NGjdcUVV8hutys2Nla9e/fWxx9/7Hatc3s7u7hzfGfr9O3bt8T29PR02Ww2/fbbb273Vl5dd8bbbDa9+OKLxbavWLFCNpvN7XrZ2dm69957FRMTo5o1a6pRo0YaM2aMDh065HFvNptNAQEBuuKKKzRu3Djl5+e7XUs684XwI0aMUMOGDWW32xUVFaVevXpp48aNHtWTpPvvv991511PNW/eXKtWrfJ4/LleffVV5eTkeK0eUJ0Rhi6wjRs36tprr1WtWrX0xRdfKDw8XA0bNvSo1vHjxzV37lzdd999le6rTZs2aty4sd5+++1K1zorISFBCxYs8Fq96uj06dNavXq1+vTp43GN/Px8tW3bVjNnzqxULxkZGRo1apQ2bdqkdevWqbCwUImJiR6/6Tdo0EAvvviitm7dqq1bt+qPf/yj+vTpo2+++cbjHrds2aLXX39dbdq08biGJLVs2VI5OTmu5euvv/aozuHDh9WlSxcFBAToww8/1LfffquXX35ZderUcbvWli1bivV09oukb7/9drdrTZkyRXPmzNHMmTO1Y8cOTZ06VX/96181Y8YMt2tJ0n333ad169bprbfe0tdff63ExETdeOON2rdvn0f1KsvhcCgxMVG33XabsrKyNHLkSMXHx6tNmzYaOHCgPvzwQ02YMEG9evVya4bopptucv3///jjj+Xv769bb73V7f5++uknXXfddfrkk080depUff311/roo4/UvXt3j8Ltub2dXZo0aeJRreooMDBQU6ZM0eHDhytV58cff1T79u31ww8/aPHixdq1a5fmzJmjjz/+WHFxcfr111/drnn2//2PP/6o559/XrNmzfL4ewz79++v7du3a+HChfrhhx+0atUqJSQkeNTXWbVq1VJUVJT8/f09rtGnTx+tXLnS4/HnCgsLq9QfmVB9nTx5sqpbqH4sXFATJkywxowZY1mWZb300kvWoEGDPK6VlpZmXX755V7qzLImTZpk3XDDDV6r161bN2v+/Pleq1cdZWZmWhEREVZRUZFX6kmyli9f7pVaeXl5liQrIyPDK/Usy7Iuu+wy6+9//7tHY48ePWo1a9bMWrdundWtWzfX74G7Jk6caLVt29ajseeaMGGCdf3113ul1rnGjBljNW3a1Dp9+rTbY2+55RbrnnvuKbat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1bRp0wr31717d9drxebNm5WYmKikpCTt2bOnwjWs//+vnJ7M6FW0t6ysLE2fPt0rdbKysir9V2NvmjJlihYuXOj260RFePqzef/991W7dm0FBgYqLi5OXbt29fj6u/79+2v//v1atWqVevXqpfT0dP3hD3+oFtfH3nbbbV69bsgbduzYIafTqR49elR1KyWce+1qdHS08vLy3K7z3//+V6dOnVKXLl1c2wICAtSxY0ft2LHD7XqdO3cu9hyPi4vTzp07VVRU5Hats7zx2alt27bq0aOHWrdurdtvv11vvPFGpa8RrC48v1oPFdayZUvt2bNHp06d0unTp1W7dm0VFhaqsLBQtWvXVqNGjTy6KP3yyy/36hPx7HRuvXr1PBo/cuRIDRw40LV+1113qX///urXr59rW/369d2qGRISopCQEI/68bVVq1apZ8+eJU7nqGqjR4/WqlWrlJmZqQYNGlSqVs2aNXXllVdKOvNiumXLFr366qtuTbN/8cUXysvL03XXXefaVlRUpMzMTM2cOVNOp9PtD+W/FxwcrNatW2vnzp1uj42OjlaLFi2KbbvmmmuUlpbmcT979uzR+vXrtWzZMo9rPPbYY3r88cc1ePBgSVLr1q21Z88epaSkaNiwYW7Xa9q0qTIyMpSfny+Hw6Ho6GgNGjTI7Qv4z/0dL835fscvv/xynTp1Sjk5OYqOjlbXrl314osvau7cuTpx4oRSU1MlSVlZWXryySc1Z86cCvcXHBzser5K0nXXXaewsDC98cYbev755ytUo1mzZrLZbNqxY0el7rB2vt68WcfT09J8oWvXrurVq5eeeOIJDR8+3K2xV155pWw2m7799ttS/99/9913uuyyy9z+42H37t01e/ZsBQQEKCYmRgEBAW6NP1dgYKB69uypnj176plnntF9992niRMnun283paYmKg777xTP/zwg6666qoq7eWs6vb++HvnPg9sNptHd+wsK6RbluX1P6p4qrRTft3l5+endevW6fPPP9fatWs1Y8YMPfnkk9q8efNFfzMYZoYugA8++EBZWVmKiorSokWLlJWVpVatWik1NVVZWVn64IMPPKrbrl07r/717T//+Y8aNGjg0SyVdObalCuvvNK1BAUFKSIiosS2S8XKlSt12223VXUbLpZl6aGHHtKyZcv0ySef+OTFybIst8+V79Gjh77++usSM3x33XWXsrKyKhWEJMnpdGrHjh2Kjo52e2yXLl1K3H78hx9+UKNGjTzuZ/78+YqIiNAtt9zicY2CgoIS16H5+fl5fGvts4KDgxUdHa3Dhw9rzZo1bt8F8dzf8dKW8/2O16hRQ7fddpvr7omvvvqqduzYodDQUDVu3FhdunTRnj171K9fP6WkpCgxMdHj47XZbKpRo4Zbd6QLDw9Xr1699Nprr5V6J0ZPb19tkhdffFH//Oc/9fnnn7s1rm7duurZs6dmzZpV4meWm5urt99+W4MGDXL7A+bZANmoUaNKB6HStGjRwuO7dnpTrVq11KNHj2o1O9SsWTMFBQV5dEv6i8WVV16pmjVrFrsG89SpU9q6dauuueYat+ude93Xpk2b1KxZs0q/V3qDzWZTly5d9Oyzz+rLL79UzZo1tXz58qpuq9KYGboAGjVqpNzcXP3yyy/q06ePatSooW+//Vb9+vXz+DQaSerVq5eSk5N1+PBhXXbZZZXu87PPPqvUB4+LxcyZM7V8+fJKvTjn5eVpy5YtXvkyumPHjhX7vpHdu3crKyvL7duujxo1Su+8845WrlypkJAQ5ebmSjpzi1RPQugTTzyhpKQkxcbG6ujRo1qyZInS09P10UcfuVUnJCSkxPdnBAcHq27duh59r8a4cePUu3dvNWzYUHl5eXr++eflcDg8mjF59NFHFR8fr8mTJ2vgwIH697//rddff12vv/6627WkM6fdzZ8/X8OGDavUbXJ79+6tF154QQ0bNlTLli315Zdf6pVXXtE999zjUb01a9bIsiw1b95cu3bt0mOPPabmzZvrT3/6k8c9VsbEiRPVvn17xcXF6dZbb9X27dv1yy+/KDQ0VAEBAXr44Yc9usDa6XS6nveHDx/WzJkzdezYMfXu3dutOrNmzVJ8fLw6duyo5557Tm3atFFhYaHWrVun2bNne3Tqi0lat26tu+66y6NT0WbOnKn4+Hj16tVLzz//vJo0aaJvvvlGjz32mOrXr68XXnjBBx1XzKFDh3T77bfrnnvuUZs2bRQSEqKtW7dq6tSplfp6BW/q06ePFi5cqMcee6yqW5F0ZhZtwoQJGj9+vGrWrKkuXbrowIED+uabb3TvvfdWdXteERwcrD//+c967LHHXO/bU6dOVUFBgUfHmJ2drbFjx2rEiBHatm2bZsyYoZdfftkHnbtn8+bN+vjjj5WYmKiIiAht3rxZBw4c8CjwVTeEoQskPT1dHTp0UGBgoD777DPVr1+/UkFIOvOG0759e7377rsaMWJEpWqdOHFCy5cv15o1aypV52Jw8OBB/fe//61UjX/+85/q1KmTIiIiKt3P1q1b1b17d9f62LFjJUnDhg1z6zz0s9e5JCQkFNs+f/58j07f+OWXXzRkyBDl5OQoLCxMbdq00UcffaSePXu6Xcubfv75Z91xxx06ePCg6tWrp86dO2vTpk0ezeZ06NBBy5cvV3Jysp577jk1adJEqampuuuuuzzqbf369dq7d6/HoeWsGTNm6Omnn9aDDz6ovLw8xcTEaMSIEXrmmWc8qnfkyBElJyfr559/Vnh4uPr3768XXnjBJ38lr4grrrhC7777rgYOHKg77rhDDzzwgFq3bi2bzabvvvtO06dPl9Pp1Lx589yq+9FHH7lmCENCQnT11VfrvffeK/E7cT5NmjTRtm3b9MILL+gvf/mLcnJyVK9ePV133XWVvp7MFP/3f/+nd9991+1xzZo109atWzVp0iQNGjRIhw4dUlRUlPr27auJEyd65e6Ynqpdu7Y6deqkadOmua4TiY2N1f33368nnniiyvr6vd69e+vPf/6zDhw44PEp79729NNPy9/fX88884z279+v6OhojRw5sqrb8qoXX3xRp0+f1pAhQ3T06FG1b99ea9as8egP1UOHDtXx48fVsWNH+fn5afTo0XrggQd80LV7QkNDlZmZqdTUVDkcDjVq1Egvv/yykpKSqrq1SrNZ1qVwTzxzffDBBxo3bpz+85//VOr2zq+99ppWrlyptWvXerG7S9dtt92m66+/XuPHj6/qVoCL1p49e/Tcc89p2bJlcjgcqlGjhsLDw3X33XfrySefrNIPvsCFkJCQoGuvvdZ1rZw3xMXF6YEHHvDKzK/NZtPy5cu9ev0cyuaL5wPOj2uGLnI333yzRowYUelvkg8ICPD47jomuv7663XHHXdUdRvARa1Ro0aaO3euDh06pH379ik7O1u5ubl6+eWXCUIwxqxZs1S7dm19/fXXXqn37LPPuvXdWqU5eydYwATMDAEAAFSBffv2uW4W0bBhQ9WsWbOKOzojLy9PDodD0pm7bnrjbmQ4P2aGqgZhCAAAAICROE0OAAAAgJEIQwAAAACMRBgCAAAAYCTCEAAAAAAjEYYAAAAAGIkwBAAAAMBIhCEAAAAARiIMAQAAADDS/werMTeep5TshQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "zinc_count = dict(sorted(zinc_count.items()))\n", + "fig, axes = plt.subplots(1, 1, figsize=(10, 6))\n", + "plt.bar(zinc_count.keys(), np.array(list(zinc_count.values()))/sum(zinc_count.values())*100, alpha=0.7, edgecolor=\"grey\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0, 0, '0'),\n", + " Text(0, 5, '5'),\n", + " Text(0, 10, '10'),\n", + " Text(0, 15, '15'),\n", + " Text(0, 20, '20')]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "zinc_count = dict(sorted(zinc_count.items()))\n", + "fig, axes = plt.subplots(1, 1, figsize=(20, 6))\n", + "plt.bar(zinc_count.keys(), np.array(list(zinc_count.values()))/sum(zinc_count.values())*100, alpha=0.7, edgecolor=\"grey\")\n", + "axes.set_xticks(range(len(zinc_count)))\n", + "axes.set_xticklabels(zinc_count.keys(), alpha=0, fontsize=0)\n", + "axes.set_yticks(range(0, 22, 5))\n", + "axes.set_yticklabels(range(0, 22, 5), alpha=0, fontsize=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idCATALYSTREACTANTREAGENTSOLVENTINTERNAL_STANDARDNoDataPRODUCTYIELDTEMP
0ord-b45f2eddde7844199a0384f3f9ed9b3eNaNC(=NC1CCCCC1)=NC1CCCCC1.CC(C)(C)OC(=O)CO/N=C(\\...NaNCC(=O)N(C)C.CC(=O)N(C)C.ONaNNaNCC(C)(C)OC(=O)CO/N=C(\\C(=O)N[C@@H]1C(=O)N2C(C(...83.0NaN
1ord-c7e5a1f8ae464c78babc02d43cb78f73NaNCC(C)OC(=O)N=NC(=O)OC(C)C.CCCCC[C@H](O)c1ccc(C...NaNC1CCOC1NaNNaNCCCCC[C@@H](OC(=O)c1ccc([N+](=O)[O-])cc1)c1ccc...63.0NaN
2ord-77314c6f17694a36aebf35c12cd3211aNaNCC(CN1CCCC1)N1c2ccccc2Sc2ccc(C(N)=S)cc21.CCOC(...NaNNaNNaNNaNCC(CN1CCCC1)N1c2ccccc2Sc2ccc(C3=NC4CCCCC4N3)cc21NaNNaN
3ord-60c8bc2894e14e68bad70a37f7315f8bNaNCC(C)(C)OC(=O)N(C(=O)[C@@H]1C[C@H](F)CN1)C(C)(...NaNNaNNaNNaNCC(C)(C)NC(=O)[C@@H]1C[C@H](F)CN1C(=O)[C@@H](O...NaNNaN
4ord-164f0514fbfe45bf82e47f63642b75a0NaNCCC=CCCc1cc(Cl)cc(C(=O)OC)c1ONaNO=C(O)C(F)(F)FNaNNaNCOC(=O)c1cc(Cl)cc2c1O[C@@H]1CCCC[C@@H]21NaN70.0
.................................
227434ord-2889af2d79d44981b3deff1cb0e380a9NaNCC(C)(C)OC(=O)Nc1cncc(C(=O)N2CCC(c3cccc(CN(C(=...NaNNaNNaNNaNCC(C)(C)OC(=O)N(Cc1cccc(C2CCN(C(=O)c3cncc(N(Cc...NaNNaN
227435ord-198a46ae7f114510a733a320a69456d1NaNB.CSC.O=C(O)COCCc1ccc(Br)cc1NaNC1CCOC1NaNNaNOCCOCCc1ccc(Br)cc181.0NaN
227436ord-8e5916d7de784c3580826d326212eea6NaNC#CCN1CCCC1.COc1ccc(Nc2ncc3c(n2)-c2ccc(I)cc2NC...NaNNaNNaNNaNCOc1ccc(Nc2ncc3c(n2)-c2ccc(C#CCN4CCCC4)cc2NC(=...NaNNaN
227437ord-66932398dee34023ace480a221417349NaNC1CCOC1.CO.Cc1cn(-c2ccc([N+](=O)[O-])cc2F)cn1....NaNNaNNaNNaNCc1cn(-c2ccc(N)cc2F)cn1NaNNaN
227438ord-16c33f0d5ce6487186a8cd44d8b455acNaNCC1(c2ccc(O)c(N)c2)OCCO1.CON.Cl.O=C([O-])[O-]....NaNCCONaNNaNCON=C(C)c1ccc(O)c(N)c1NaNNaN
\n", + "

2274399 rows × 10 columns

\n", + "
" + ], + "text/plain": [ + " id CATALYST \\\n", + "0 ord-b45f2eddde7844199a0384f3f9ed9b3e NaN \n", + "1 ord-c7e5a1f8ae464c78babc02d43cb78f73 NaN \n", + "2 ord-77314c6f17694a36aebf35c12cd3211a NaN \n", + "3 ord-60c8bc2894e14e68bad70a37f7315f8b NaN \n", + "4 ord-164f0514fbfe45bf82e47f63642b75a0 NaN \n", + "... ... ... \n", + "227434 ord-2889af2d79d44981b3deff1cb0e380a9 NaN \n", + "227435 ord-198a46ae7f114510a733a320a69456d1 NaN \n", + "227436 ord-8e5916d7de784c3580826d326212eea6 NaN \n", + "227437 ord-66932398dee34023ace480a221417349 NaN \n", + "227438 ord-16c33f0d5ce6487186a8cd44d8b455ac NaN \n", + "\n", + " REACTANT REAGENT \\\n", + "0 C(=NC1CCCCC1)=NC1CCCCC1.CC(C)(C)OC(=O)CO/N=C(\\... NaN \n", + "1 CC(C)OC(=O)N=NC(=O)OC(C)C.CCCCC[C@H](O)c1ccc(C... NaN \n", + "2 CC(CN1CCCC1)N1c2ccccc2Sc2ccc(C(N)=S)cc21.CCOC(... NaN \n", + "3 CC(C)(C)OC(=O)N(C(=O)[C@@H]1C[C@H](F)CN1)C(C)(... NaN \n", + "4 CCC=CCCc1cc(Cl)cc(C(=O)OC)c1O NaN \n", + "... ... ... \n", + "227434 CC(C)(C)OC(=O)Nc1cncc(C(=O)N2CCC(c3cccc(CN(C(=... NaN \n", + "227435 B.CSC.O=C(O)COCCc1ccc(Br)cc1 NaN \n", + "227436 C#CCN1CCCC1.COc1ccc(Nc2ncc3c(n2)-c2ccc(I)cc2NC... NaN \n", + "227437 C1CCOC1.CO.Cc1cn(-c2ccc([N+](=O)[O-])cc2F)cn1.... NaN \n", + "227438 CC1(c2ccc(O)c(N)c2)OCCO1.CON.Cl.O=C([O-])[O-].... NaN \n", + "\n", + " SOLVENT INTERNAL_STANDARD NoData \\\n", + "0 CC(=O)N(C)C.CC(=O)N(C)C.O NaN NaN \n", + "1 C1CCOC1 NaN NaN \n", + "2 NaN NaN NaN \n", + "3 NaN NaN NaN \n", + "4 O=C(O)C(F)(F)F NaN NaN \n", + "... ... ... ... \n", + "227434 NaN NaN NaN \n", + "227435 C1CCOC1 NaN NaN \n", + "227436 NaN NaN NaN \n", + "227437 NaN NaN NaN \n", + "227438 CCO NaN NaN \n", + "\n", + " PRODUCT YIELD TEMP \n", + "0 CC(C)(C)OC(=O)CO/N=C(\\C(=O)N[C@@H]1C(=O)N2C(C(... 83.0 NaN \n", + "1 CCCCC[C@@H](OC(=O)c1ccc([N+](=O)[O-])cc1)c1ccc... 63.0 NaN \n", + "2 CC(CN1CCCC1)N1c2ccccc2Sc2ccc(C3=NC4CCCCC4N3)cc21 NaN NaN \n", + "3 CC(C)(C)NC(=O)[C@@H]1C[C@H](F)CN1C(=O)[C@@H](O... NaN NaN \n", + "4 COC(=O)c1cc(Cl)cc2c1O[C@@H]1CCCC[C@@H]21 NaN 70.0 \n", + "... ... ... ... \n", + "227434 CC(C)(C)OC(=O)N(Cc1cccc(C2CCN(C(=O)c3cncc(N(Cc... NaN NaN \n", + "227435 OCCOCCc1ccc(Br)cc1 81.0 NaN \n", + "227436 COc1ccc(Nc2ncc3c(n2)-c2ccc(C#CCN4CCCC4)cc2NC(=... NaN NaN \n", + "227437 Cc1cn(-c2ccc(N)cc2F)cn1 NaN NaN \n", + "227438 CON=C(C)c1ccc(O)c(N)c1 NaN NaN \n", + "\n", + "[2274399 rows x 10 columns]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ord = pd.concat([pd.read_csv(f\"./all_ord_reaction_uniq_with_attr20240506_v3_{split}.csv\") for split in [\"train\", \"valid\", \"test\"]])\n", + "ord" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "ord_count = {}\n", + "smiles = ord[\"CATALYST\"].to_list() + ord[\"REACTANT\"].to_list() + ord[\"REACTANT\"].to_list() + ord[\"REAGENT\"].to_list() + ord[\"SOLVENT\"].to_list() + ord[\"PRODUCT\"].to_list()\n", + "for text in smiles:\n", + " if isinstance(text, str):\n", + " for character in list(text):\n", + " if character in ord_count:\n", + " ord_count[character] += 1\n", + " else:\n", + " ord_count[character] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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tWpVr9t+7rnn9PLLL3ut42Lt2rXLV7mrrV+/fnrqqae8Lp8xY4aqVasmf39/3XTTTdqwYYNbmfXr16tTp06KjIz0+g8tMTFRzZs3V2BgoEJDQ3Xvvfdqz549Hrc5c+ZMNWrUyHkX5latWumzzz7LdT8SExNls9k8fmmPHTvW+c82ZwoPD/dYz6FDh/Tggw+qfPnyKl26tG688UZ9//33buWqVq3qVqfNZtPQoUNdyp09e1bPPPOMqlWrplKlSql69ep68cUXde7cObc6jx8/rscff1xVqlRRqVKlFBMTo82bN+e631fK/v371axZM02dOlVdunTRhx9+qFWrVumf//ynVq1apYYNG2rfvn0u63zzzTfy8fHRHXfc4bHOC38E2Ww2lS9fXnfccYd++OEHj+XT0tI0bNgwVa9eXXa7XVFRUerUqZO++OILt/r8/PwUFhamjh07avbs2R6f74u3nzNd3F5v5S7e37S0NA0fPlw1a9aUv7+/wsLCdMstt+iNN97QyZMnnXXde++9bm1JTk6WzWbT33//7fW58rRebss/+ugj+fv7a8KECfmu58L99TQC6ZAhQ2Sz2dSvXz+Xsq+88opLuaVLl8pms7nMO3jwoAYMGKDIyEiVLFlSVapU0fDhw3X06FGP2895HatXr64RI0YoMzPTazlfX19FR0fr0Ucf1bFjx9zafeTIET3yyCOKjo6W3W5XeHi44uLitHHjRkny+PpeOOXsr+T9x+HF+9ypUyfdfvvt7k+wpI0bN8pmsykgIEBnz551zj9x4oT8/Px06623upTfsGGDbDabmjZtqq5du7osS09PV1RUlJ555hnnPGOMbr/9dsXFxblte8aMGQoODtaBAwec7ztvU/v27T22/+GHH3aObutJ7dq1tXz5co/LLjZ16lQdPnw4X2WLk88//1xz587VJ598kutzWRQWL16sf/3rX1dse8UVQdEzwlAR27hxo2688UaVLl1a33//vUJCQhQdHa0///xTAwcO1MSJE7Vy5UolJSVpxYoVzvUeffRRvfLKKwoKCnKr89SpU5o1a5YGDhyY67YbNWqkqlWr6v333/da5uuvv9aaNWtc5q1Zs0Zff/2113XatWunuXPn5rrtonLu3DmtWLFCnTt39rh84cKFevzxxzVmzBht27ZNt956q+Lj450BNEdmZqYaN26s6dOne93WunXrNHToUH377bdavXq1zp49q9jYWLcfOJJUuXJlvfLKK9qyZYu2bNmi2267TZ07d9bOnTs91r1582a99dZbatSokdft169fX4cPH3ZOO3bscCtz7NgxtW7dWn5+fvrss8+0a9cuvfrqqypbtqzHbV5YX86Nju+77z6XcuPHj9cbb7yh6dOna/fu3ZowYYL+/e9/a9q0aW51Dhw4UKtXr9Z7772nHTt2KDY2VrfffrsOHTrkdb8ubv+JEyfyVTbHb7/95vJjzJOMjAzFxsbqnnvuUUpKigYPHqyYmBg1atRI3bt312effaZRo0YpLi7OpYdo9uzZGjZsmL766iu390yOO+64w/kcfvHFF/L19dXdd9/tVm7//v266aab9OWXX2rChAnasWOHPv/8c7Vv394lgObUt3//fn322Wdq3769hg8frrvvvtvjfl64/Zxp/vz5+SpXrVo15/JffvlFTZo00apVqzRu3Dht27ZNa9as0RNPPKGPP/7Y7XuhqL3zzjvq1auXpk+frpEjRxZ4/aioKC1YsMDl9Tx9+rTmz5+v6Ohol7L+/v4aP368xxCS45dfflGzZs30008/af78+dq3b5/eeOMNffHFF2rVqpX++usvl/I5z/cvv/yil156STNmzPB4r7wLX+933nlHH3/8sYYMGeJWrmvXrtq+fbuSkpL0008/afny5WrXrp1zuxe+rlOmTFFQUJDLvKlTpxbo+ZOkAQMG6Msvv9Svv/7qtmz27NmqU6eOTp48qS1btjjnb9iwQeHh4dq8ebMzQEvnw3JkZKQWLlyozz//3OX/0LBhwxQSEqLnnnvOOc9ms2nOnDnatGmT3nzzTef81NRUjRo1SlOnTlV0dLRiYmLc3teHDx/Wm2++KZvN5vG5lKTSpUsrPDxcvr6+Hpd37txZy5Yty9fzFBwc7PXgVHH2888/KyIiQjExMbk+l0UhJCREgYGBV2x716KsrKyr3YTiy6BIjRo1ygwfPtwYY8zEiRNNjx49jDHGbNq0yYSFhTnLde/e3UyYMMEYY8z7779v7rnnHq91Llq0yFSoUCFf2x87dqy59dZbvS4/cOCA6datm3n00UdN06ZNzaOPPmp69Ohh/vvf/3pdp23btmbOnDn52n5hW79+vQkNDTXZ2dkel7do0cIMHjzYZV6dOnXMU0895bVOSWbJkiV5bvvIkSNGklm3bl2+2lquXDnzzjvvuM0/fvy4qVWrllm9erVp27at8/1xoeeff940btw4z22MGjXK3HLLLflqz8WGDx9uatSoYc6dO+cy/6677jL9+/d3mdelSxfz4IMPusw7efKk8fHxMZ988onL/MaNG5sxY8Z43e6ZM2fMJ598Yu677z5jt9tNSkqKefnll01AQECu0/r1640x59/TYWFhJiEhwfzwww8et/H00087P2vp6emmb9++Jjw83DRp0sTMmTPH1KtXzxhjzIMPPmgSExONMcacOHHCBAYGmh9//NH06NHDvPDCC2719u3b13Tu3Nll3vr1640kc+TIEZf58fHxplKlSubEiRNu9Rw7dsxrfcYY88UXXxhJ5u23385z+57kp1xcXJypXLmyx/YZY5zvC291rV271khy7ktB23Dh8vHjxxu73W4++uijAtdzYZmGDRuaefPmOee///77pmHDhqZz586mb9++zrJ33323qVOnjnnyySedZZcsWWIu/Jd4xx13mMqVK5uTJ0+6bOvw4cOmdOnSLt8znto4cOBAEx4enue+JCQkmJCQEJd5x44dM5JMcnJyrvudY86cOSY4ONjrcm/fMxfv85kzZ0xYWJgZO3asS7nMzEwTGBhopk2bZiIjI52fGWOMGTlypBk6dKipV6+eWb16tXP+bbfdZnr16mWMMWbq1KmmXLly5tChQ2bp0qXGz8/PbNu2zWNb586da8qUKWN++eUXc+7cOdO+ffs8X/9du3aZoKAgr9873vb/Qhs2bMj1f4snef3v+Oyzz0zr1q1NcHCwCQkJMXfddZfZt2+fW9uGDh1qhg4d6iw3ZswYt+9lY4zJzs42r7zyiqlRo4YpWbKkiYqKMi+99JJbuRMnTpjevXubgIAAEx4ebiZOnOj1OTh37pwZP368qVatmvH39zeNGjUyH374oVu5vn37GknOqUqVKh73OSMjw/Ts2dOULl3ahIeHm0mTJnncdtu2bc2wYcPMk08+acqVK2fCwsLM888/7/W5zM9rmFvZtm3bmscee8wMHz7clC1b1oSGhpo333zTnDhxwvTr18+UKVPGVK9e3Xz66acFbuPp06fNsGHDTMWKFY3dbjetW7c23333ncd25fe1vrD8E088YcqXL2/atGnjsdyHH35oGjRoYPz9/U1ISIjp0KGDx+/1i19DSSY1NdWlTJUqVczkyZNd5jVu3Nhtv5OSkkxISIg5ffq0y/wuXbqY3r17e2zntYyeoSJw4MABlS1bVmXLltWkSZP05ptvqmzZsnr66ae1dOlSlS1bVm+++aZOnjypbdu26a+//tLmzZvVqFEj/fXXX3ruuedy7bFYv369mjVrlq+2tGjRQt99950cDofH5VFRUfrwww8VHBysrVu3qmzZslqwYIEqVap0Sfte1JYvX65OnTqpRAn3t25WVpa+//57xcbGusyPjY3VN998c9nbTk9Pl3T+CFVusrOztWDBAmVmZqpVq1Zuy4cOHaq77rrL6+koOfbu3avIyEhVq1ZN999/v3755Re3MsuXL1ezZs103333KTQ0VE2aNNHbb7+d575kZWVp3rx56t+/v9upQbfccou++OIL/fTTT5Kk7du366uvvtKdd97pUu7s2bPKzs6Wv7+/y/xSpUrpq6++ctvmjh07NGLECFWuXFl9+vRR+fLltXbtWjVu3FiDBw9WSkpKrlPOe37UqFF67bXXtGfPHjVt2lRNmzbV1KlT9ccffzi3lZSU5DwF5//9v/+n3bt3a9GiRZowYYISExOdvXv9+vVzniK5cOFC1a5dW7Vr19aDDz6oOXPmyORxG7YTJ07o/fffV82aNVW+fHnn/L/++kuff/65hg4dqoCAALf1PPXcXei2225T48aNtXjx4lzLXaqjR49q1apVXtsnye19UVSeeuop/etf/9Inn3zidjpVQT300EOaM2eO8/Hs2bPVv39/t3I+Pj4aN26cpk2bpv/+979uy//66y+tXLlSQ4YMUalSpVyWhYeHq1evXlq4cGGu749SpUrpzJkzubb3l19+0eeffy4/Pz+X+WXKlFGZMmW0dOlSr9/dRcHX11d9+vTR3LlzXfbtww8/VFZWlnr16qV27dpp7dq1zmVr165Vu3bt1LZtW+f8rKwsbdy40XnK2rBhw9S4cWP16dNHgwYN0nPPPacbb7zRYxv69u2rDh066KGHHtL06dP1n//8R2+99ZbXNv/999+699571bZt28s6jSomJkbGGH377beXXMfFMjMzlZCQoM2bN+uLL75QiRIl9I9//MPtFNikpCT5+vpq06ZNeu211zR58mS98847bvWNHj1a48eP17PPPqtdu3bpgw8+UFhYmFu5J598UmvXrtWSJUu0atUqJScnezx1WpKeeeYZzZkzRzNnztTOnTv1xBNP6MEHH9S6detcyk2dOlUvvviiKleurMOHD3s9HTohIUFff/21li9frtWrV2vDhg3aunWrx7JJSUkKCAjQpk2bNGHCBL344ovOMxaKQlJSkipUqKDvvvtOw4YN06OPPqr77rtPMTEx2rp1q+Li4tS7d2+XHs78tHHkyJFatGiRkpKStHXrVtWsWVNxcXFuvcc59eXntb64/Ndff+3SY5rj8OHDeuCBB9S/f3/t3r1bycnJ6tKli8fvpqlTp6pVq1bOU0YPHz6sqKiogjyFTvfdd5+ys7NdTi39888/9cknn+ihhx66pDqvqqsaxYqpM2fOmNTUVLN9+3bj5+dnUlJSzL59+0yZMmXMunXrTGpqqvnjjz/M4sWLTYMGDUyNGjWcqfuhhx4yU6ZMMevWrTM33nijqV+/vttRms6dO7sdufdm+/btRpLZv3+/x+X//e9/TY8ePczgwYNN06ZNzeDBgwulZ2jevHkej+pfrhtuuMEsX77c47JDhw4ZSebrr792mf/yyy+bG264wWudykfP0Llz50ynTp1y7YX54YcfTEBAgPHx8THBwcFmxYoVbmXmz59vGjRoYE6dOmWM8X6069NPPzUfffSR+eGHH5w9SGFhYebPP/90KWe3243dbjejR482W7duNW+88Ybx9/c3SUlJue7PwoULjY+Pjzl06JDHfX3qqaeMzWYzvr6+xmazmXHjxnmsp1WrVqZt27bm0KFD5uzZs+a9994zNpvN+Xz/+eefZurUqaZJkyamZMmSpnPnzmbRokXG4XDk2r78+v33383kyZNNkyZNjJ+fn+ncubNJSkoygYGBzjIVK1Y0X331lfPxe++95zyquXPnTmdbY2JizJQpU4wx5z/DFSpUcDnSbcz5I2s+Pj7O97UkExERYb7//nuXcps2bTKSzOLFi3Ntf269Hj169DB169bNdfs504svvphnuW7dujmXf/vttx7bV758eWf5kSNH5rpNf3//y+4ZKlmypJFkvvjii1zL5bdn6I8//jB2u92kpqaa/fv3G39/f/PHH3+49Qzl1NeyZUvnd+mFvSQ5z4+374VJkyYZSeb333/32MZNmzaZ8uXLm+7du7u1M+e5zHn+JJlJkya5beOjjz4y5cqVM/7+/iYmJsaMHj3abN++3WN7CqtnyBhjdu/ebSSZL7/80jmvTZs25oEHHjDGGPPWW2+ZgIAAc+bMGZORkWF8fX3N77//bhYsWGBiYmKMMcasW7fOSDI///yzW70NGzY0Z86c8dpWY85/ritWrGhKlCiR62coOzvbxMfHm7p165r09PQC7//FHnroIef7Pj/y87/jQjlnF+zYscOlbXXr1nXpHRg1apTbZz8jI8PY7Xa33uKLHT9+3JQsWdIsWLDAOe/o0aOmVKlSbs/BiRMnjL+/v/nmm29c5g8YMMD5el9o8uTJXnuEctro5+fn8pvl77//NqVLl/bYU3Px/9PmzZubUaNGeay7MHqGLtze2bNnTUBAgEsvxuHDh40ks3Hjxny38cSJE8bPz8+8//77znlZWVkmMjLSebbPhW3Iz2t9Yfkbb7wx1339/vvvc/2N56nO3J7H/PYMGWPMo48+auLj452Pp0yZYqpXr+61p+taRs9QEfD19VXVqlX1448/qnnz5mrcuLHS0tIUFhamNm3aqGrVqqpQoYL+8Y9/aMeOHdq3b5/Gjh2r5ORk7dixQw8//LDuv/9+TZkyRYsWLdKAAQN05MgRZ/2nTp1yOxrvTc5RzQuPdFxo//79GjhwoGbOnKnAwEDNnDlTAwcOdBmlbty4cc4jlWXKlNGGDRs0ePBgt3kXyrlW4+Kj+pdj9+7d+u9//5tnj8rFR7SNMZd9lPuxxx7TDz/84PHajBy1a9dWSkqKvv32Wz366KPq27evdu3a5Vx+8OBBDR8+XPPmzcvz9YuPj1fXrl3VsGFD3X777c7ryZKSklzKnTt3Tk2bNtW4cePUpEkTPfLII3r44Yc1c+bMXOufNWuW4uPjFRkZ6bZs4cKFmjdvnj744ANt3bpVSUlJmjhxotu2Jem9996TMUaVKlWS3W7Xa6+9pp49e8rHx0eSNG3aNA0fPlxlypTRvn37tHTpUnXp0kUlS5Z0qefi95inydNAGKGhoXr88ce1detWLVu2TBs3blTfvn1dzmXPyspy6f0oU6aM8+/t27erRo0a2rNnj7777jvdf//9ks5/hnv06KHZs2e7bbN9+/bO9/WmTZsUGxur+Ph4l+sszP9/VO5y3nfe3rcXbj9nungQDE/lXnvtNbcyF9f/3XffKSUlRfXr13fpkfC0zdyOZuZXznWNzz33nI4fP37Z9VWoUEF33XWXkpKSNGfOHN11112qUKGC1/Ljx49XUlKSy+c0Pzy9vp988onKlCkjf39/tWrVSm3atPF4nV3Oc7lp0yYNGzZMcXFxGjZsmFu5rl276rffftPy5csVFxen5ORkNW3atMiv16xTp45iYmKc7/2ff/5ZGzZscPawtW/fXpmZmdq8ebM2bNigG264QaGhoWrbtq02b96szMxMJScnKzo6WtWrV3fWO3v2bJUuXVqpqakee+MuFBoaqkGDBqlu3br6xz/+4bXc008/rY0bN2rZsmUer68tqHvuuSff1w3lx88//6yePXuqevXqCgoKcl6zd/H1iC1btnR5L7Vq1Up79+5Vdna2c97u3bvlcDjUoUOHPLeZlZXlclZCSEiIateu7VZ2165dOn36tDp27OjyXfvuu+/q559/LvD+/vLLLzpz5oxatGjhnBccHOxx25LcrpmNiIhw+a1T2C7cno+Pj8qXL6+GDRs65+X0sl3Yhrza+PPPP+vMmTNq3bq1c56fn59atGih3bt3u7UhP6/1hfL67dS4cWN16NBBDRs21H333ae3334712shC9PDDz+sVatWOa8RnjNnjnOQmOvNlbv6zULq16+vX3/9VWfOnNG5c+dUpkwZnT17VmfPnlWZMmVUpUoVtwvrHQ6HhgwZonnz5mnfvn06e/as2rZtK0m64YYbtGnTJnXq1EnS+X/4+X2z53TTVqxY0ePyCz/AOS4OG4MHD1b37t2dj3v16qWuXbuqS5cuznkXn1YXGBhY6Bc7Ll++XB07dnQ7bSVHhQoV5OPjo7S0NJf5R44c8XgqQX4NGzZMy5cv1/r161W5cmWv5UqWLKmaNWtKOv8FtnnzZk2dOtXZtf3999/ryJEjuummm5zrZGdna/369Zo+fbocDoczRFwsICBADRs21N69e13mR0REqF69ei7z6tatq0WLFnlt56+//qo1a9Z4PQXrySef1FNPPeUMBg0bNtSvv/6qxMRE9e3b16VsjRo1tG7dOmVmZiojI0MRERHq0aOH85/+oEGD5Ofnp6SkJNWrV09du3ZV79691b59e5dTHS9+j3ni6dTN48eP66OPPtJ7772n9evXq23bturdu7eeeOIJHT58WBEREWrTpo1eeeUVzZo1S6dPn9aUKVMkSSkpKRozZozeeOMNzZo1S2fPnnXZhjFGfn5+OnbsmMqVK+ecHxAQ4HydJemmm25ScHCw3n77bb300kuSpFq1aslms2n37t15joTmze7du10GPPC2fW9yK1ezZk3ZbDb9+OOPLvNzfrxe/BnzVFdeP2jzo1KlSlq0aJHat2+vO+64Q59//vllf2/0799fjz32mCTp9ddfz7VsmzZtFBcXp6efftpl9LWc52fXrl0eX78ff/xR5cqVcwla7du318yZM+Xn56fIyEi3U99yXPhcvvbaa2rfvr1eeOEFj6d4+fv7q2PHjurYsaOee+45DRw4UM8//7xLW/MjKCjIeZrvhf7++2+PIWLAgAF67LHH9Prrr2vOnDmqUqWK80d4zZo1VblyZa1du1bHjh1z/p8KDw9XtWrV9PXXX2vt2rW67bbbnPVt3LhRkydP1meffaYJEyZowIABWrNmTa4/mnx9fXO9QH/hwoWaOHGiVqxYoVq1auX7uchNbGysevbsqZ9++kk33HDDZdfXqVMnRUVF6e2331ZkZKTOnTunBg0aXNKF8N7+713M5HFq74VyTtdbsWKF2/er3W7Pf+Mu2ranA5KeXPwZsdlsHkfRLCyetnfhvJx2X9iGvNqY2z4XRijwdhpzDh8fH61evVrffPONVq1apWnTpmnMmDHatGmTx/8feSlRooTb6+XtdN8mTZqocePGevfddxUXF6cdO3bo448/LvA2rwX0DBWBTz/9VCkpKQoPD9e8efOUkpKiBg0aaMqUKUpJSdGnn37qts6//vUvxcfHq2nTpsrOznYZRerMmTMuRw2aNGmS7yOZ//nPf1S5cuVcj47mSE5O9jg/JCRENWvWdE6lSpVSaGio27yitmzZMt1zzz1el5csWVI33XST2/m8q1evVkxMTIG3Z4zRY489psWLF+vLL78s8BeLMcbl6HqHDh20Y8cOtx6zXr16KSUlxWsQks6H5d27dysiIsJlfuvWrd2G+/7pp59UpUoVr3XNmTNHoaGhuuuuuzwuP3nypNs1WT4+Prn+kwoICFBERISOHTumlStXOkf7i4yM1JgxY/TTTz9p5cqVstvt6tq1q6pUqaKnnnrKeVDg4veYpynnPZadna3PPvtMPXv2VFhYmBITE3Xbbbfpl19+0RdffKF+/frpnnvucV53N3XqVO3evVtBQUGqWrWqWrdurV9//VVdunRxrvvuu+/q1VdfdXlttm/fripVquQ6GqN0/p9giRIlXEYxCwkJUVxcnF5//XWPow96G446x5dffqkdO3Zc9jU03pQvX14dO3bU9OnTPbbvSoqOjta6det05MgRxcbG5vtWAN7ccccdysrKUlZWlsdhmi/2yiuv6OOPP3a5rjDn+ZkxY4bb/ajS0tL0/vvvq0ePHi4/dnJCTpUqVbwGIU+ef/55TZw4Ub/99lueZevVq3dJr1edOnVcRoDLsXnzZo9H7bt37y4fHx998MEHSkpK0kMPPeSyr+3bt1dycrKSk5NdbsnQtm1brVy5Ut9++63zeqFTp06pb9++euSRR3T77bfrnXfe0ebNmz1e/5BfKSkp6t+/v1555ZV8vcb5Vbp0aXXo0KFQeoeOHj2q3bt365lnnlGHDh1Ut25drwcxL75O6dtvv1WtWrVc/ifUqlVLpUqVcg7L703NmjXl5+fnUuexY8ec14BeqF69erLb7Tpw4IDb9+2lXEtSo0YN+fn56bvvvnPOy8jIcDuIV5zUrFlTJUuWdLlO9syZM9qyZYvq1q3rVj4/r3VB2Ww2tW7dWi+88IK2bdumkiVLasmSJR7LlixZ0msvlHT+wPmFw8ZnZGQoNTXVa/mBAwdqzpw5mj17tm6//fZLvgbpaqNnqAhUqVJFaWlp+v3339W5c2eVKFFCu3btUpcuXTyelrRz504tXLjQeQOzOnXqqESJEpo1a5bCw8Odp9vliIuL0+jRo92OWHuyYcMGtwEFrjXTp0/XkiVLcv2SP3LkiDZv3pznDe4SEhLUu3dvNWvWTK1atdJbb72lAwcOuN1/5MSJEy73XElNTVVKSopz6HPp/EAHH3zwgZYtW6bAwEBnj1NwcLBb+Hv66acVHx+vqKgoHT9+XAsWLFBycrI+//xzZ5nAwEC3+zIEBASofPnybvNHjBihTp06KTo6WkeOHNFLL72kjIwMt56ZJ554QjExMRo3bpy6d++u7777Tm+99ZbXC47PnTunOXPmuJ1KdqFOnTrp5ZdfVnR0tOrXr69t27Zp0qRJHi9EX7lypYwxql27tvbt26cnn3xStWvX9ngBZUxMjGJiYjR16lQtXbrUefrdtm3bXE5VyMu4ceP06quvqnv37lqzZo3HoPv888873wN33323tm/frt9//11BQUHy8/PTP//5T2dv4dKlS3Xs2DENGDBAwcHBLvV069ZNs2bNcvY0SOeDac574dixY5o+fbpOnDjh7LnNMWPGDMXExKhFixZ68cUX1ahRI509e1arV6/WzJkznadQ5NSXnZ2t33//XZ9//rkSExN19913q0+fPm77duH2c/j6+ubrgMfF7WvdurWaNWumsWPHqlGjRipRooQ2b96sH3/80aUHs6hVrlxZycnJat++vWJjY7Vy5UqX1yI9Pd3tBo8XflYv5OPj43xu8/MDo2HDhurVq5fbKW3Tp09XTEyM4uLi9NJLL6latWrauXOnnnzySVWqVEkvv/zyJeypu3bt2ql+/foaN26cM8AfPXpU9913n/r3769GjRopMDBQW7Zs0YQJE7zeViA3Q4YM0fTp0zV06FANGjRIpUqV0urVqzVr1iy99957buXLlCmjHj166Omnn1Z6erpbT1TO8PBnzpxx9gxJ58PQo48+qtOnTzvD0FNPPaVz585p/Pjxks6H31dffVUJCQm64447cr1Xnid//vmn7r33XrVr104PPvig22fBx8fH65kQ+dG5c2clJSW53fuvoMqVK6fy5cvrrbfeUkREhA4cOOD1/ngHDx5UQkKCHnnkEW3dulXTpk3Tq6++6lLG399fo0aN0siRI1WyZEm1bt1af/zxh3bu3KkBAwY4y5UpU0YDBgzQk08+qfLlyyssLExjxozxOOhQYGCgRowYoSeeeELnzp3TLbfcooyMDH3zzTcqU6aM2/+bvAQGBqpv37568sknFRISotDQUD3//PMqUaLEdXnqVH4EBATo0Ucfde5zdHS0JkyYoJMnT7q8Ljny81oXxKZNm/TFF18oNjZWoaGh2rRpk/744w+PQUw6f7/BTZs2af/+/SpTpoxCQkJc3hu33Xab5s6dq06dOqlcuXJ69tlnc/0e7dWrl0aMGKG3335b77777iXvx1V3Fa5TsoT58+c7L7xbv369qVmzpsdy586dMzExMebjjz92mf/xxx+b6OhoExYW5vGCyZYtW5o33ngj1zacOnXKBAUFOS8GLCyFPbT2888/n+tFmcYY884775jWrVvnq77XX3/dVKlSxZQsWdI0bdrU41DYOcMCXzzlXGRtjPG4XJLHfe/fv79zmxUrVjQdOnQwq1atyrOt3i5m7NGjh4mIiDB+fn4mMjLSdOnSxezcudNjHR9//LFp0KCBsdvtpk6dOuatt97yur2VK1caSWbPnj1ey2RkZJjhw4eb6Oho4+/vb6pXr27GjBnjcdCDhQsXmurVq5uSJUua8PBwM3ToUPP333/nud85Dh06lOuFz56kpqY6B6DIzerVq025cuXMkCFDTEpKisnOzjbnzp0zu3btMoMHDzYPPfSQMcaYu+++29x5550e68i5ODVngISLhyYNDAw0zZs39zgktDHG/Pbbb2bo0KHO90alSpXMPffcY9auXetWn6+vr6lYsaK5/fbbzezZsz0O8etpaFRJpnbt2m7l8jME92+//WYee+wxU61aNePn52fKlCljWrRoYf7973+bzMzMXOsqzKG1L2xP7dq1TfPmzV2GH8/rs5rXtrwNoJBj//79xm63uw0msH//ftOvXz8THh5u/Pz8TFRUlBk2bJjbQCaXO+T5+++/b0qWLGkOHDhgjDk/VO9TTz1lmjZtaoKDg03p0qVN7dq1zTPPPOM21LcxeQ+gYIwxW7ZsMXFxcSY0NNQEBQWZZs2amfnz53st/8033xhJJjY21m1ZamqqkWTq1KnjMv/gwYNGkqlRo4Yxxpjk5GTj4+NjNmzY4FZHbGysue2227xebO3t9gJz5871+t0sL0M+F+Ti+7S0NOPr6+s2VL4nymMAhdWrV5u6desau91uGjVqZJKTk93Wadu2rRkyZIgZPHiwCQoKMuXKlTNPPfWU16G1X3rpJVOlShXj5+dnoqOjPQ5uc/z4cfPggw+a0qVLm7CwMDNhwoRch9aeOnWqqV27tvHz8zMVK1Y0cXFxHv9v5jWAgjGeh9Zu0aKF2+0tPLXnws/pxQpjAIWL53kaLODC1ye/bTx16pQZNmyYqVChQp5Da+f3tfa2/Yvt2rXLxMXFOYf1vuGGG8y0adO8lt+zZ49p2bKlKVWqlMehtdPT00337t1NUFCQiYqKMnPnzvU6gEKO3r17exxm+3piM6YAJ5jimvHpp59qxIgR+s9//uPxiI90/nz5ZcuWadWqVVe4dYXvnnvu0S233HJJN2OEdf3666968cUXtXjxYmVkZKhEiRIKCQnRgw8+qDFjxuQ5TDqA61+7du104403Oq8XzEurVq00aNCgPIcIttlsWrJkySVfF2gFmZmZqlSpkl599VWPPSVWUtD34fWiY8eOqlu3rsdBeq4XXDN0nbrzzjv1yCOPOEfx8MTPz8/jaEbXo1tuuUUPPPDA1W4GrjNVqlTRrFmzdPToUR06dEgHDx5UWlqaXn31VYIQYCEzZsxQmTJltGPHjjzLvvDCCy73DbtYzmiqcLdt2zbNnz9fP//8s7Zu3apevXpJ0iWd3olr219//aUFCxboyy+/9Dii6fWEniEAAFBsHTp0yDkQRnR0tNvQ/gV15MgR50AfEREReY74ZSXbtm3TwIEDtWfPHuegRpMmTSrQdaHFVXHrGapataqOHTumZ599ViNGjLjazbkshCEAAAAAlsRpcgAAAAAsiTAEAAAAwJIIQwAAAAAsiTAEAAAAwJIIQwAAAAAsiTAEAAAAwJIIQwAAAAAsiTAEAAAAwJL+PzW7qlbmYxL9AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ord_count = dict(sorted(ord_count.items()))\n", + "fig, axes = plt.subplots(1, 1, figsize=(10, 6))\n", + "plt.bar(ord_count.keys(), np.array(list(ord_count.values()))/sum(ord_count.values())*100, alpha=0.7, edgecolor=\"grey\", color=\"orange\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0, 0, '0'),\n", + " Text(0, 5, '5'),\n", + " Text(0, 10, '10'),\n", + " Text(0, 15, '15'),\n", + " Text(0, 20, '20')]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ord_count = dict(sorted(ord_count.items()))\n", + "fig, axes = plt.subplots(1, 1, figsize=(20, 6))\n", + "plt.bar(ord_count.keys(), np.array(list(ord_count.values()))/sum(ord_count.values())*100, alpha=0.7, edgecolor=\"grey\", color=\"orange\")\n", + "axes.set_xticks(range(len(ord_count)))\n", + "axes.set_xticklabels(ord_count.keys(), alpha=0, fontsize=0)\n", + "axes.set_yticks(range(0, 22, 5))\n", + "axes.set_yticklabels(range(0, 22, 5), alpha=0, fontsize=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Text(0, 0, '0'),\n", + " Text(0, 5, '5'),\n", + " Text(0, 10, '10'),\n", + " Text(0, 15, '15'),\n", + " Text(0, 20, '20')]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAHtCAYAAABlMD3ZAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIUdJREFUeJzt3UFvHGea2PGn2WwWJY4pxZ65CBZ8SIw9LHTxAgn8FWJgIcCHNRzklE+h08yc9ClyCmJ4DwaEBZyvYCTA+iLsYSHksEuHmY0ti2y6urqKrOocJtauHFujrqomH7J/P4AHD1TvPJKoZnf/u953slqtVgEAAAAAAHDFdq56AAAAAAAAgAjRAgAAAAAASEK0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAUdsdesOu6OD4+jrfeeismk8nYywMAAAAAANfIarWKs7OzuHfvXuzsvP5eitGjxfHxcdy/f3/sZQEAAAAAgGvs6Ogo3n333df+mtGjxVtvvfXy//zw8HDs5QEAAAAAgGtkPp/H/fv3X/aD1xk9Wvy4JdTh4aFoAQAAAAAARES80ZESDuIGAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBR2r3oAAAAAAC5fWZZR13Xv64uiiIODgxEnAgDRAgAAAGDrlGUZn3/xJOaL/tHi8HYRn3z8ULgAYFSiBQAAAMCWqes65os6nsW9aKf7a18/bZfx/uI46roWLQAYlWgBAAAAsKXa6X5czHpGh3bcWQAgwkHcAAAAAABAEoPvtKjr+pVDm+bz+dAlAQAAAACALTT4TovHjx/HnTt3Xn7dv39/jLkAAAAAAIAtMzhaPHr0KE5PT19+HR0djTEXAAAAAACwZQZvD1UURRRFMcYsAAAAAADAFnMQNwAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACoMP4gYA4PXKsoy6rntfXxRFHBwcjDgRAAAA5CRaAABsUFmW8fkXT2K+6B8tDm8X8cnHD4ULAAAAbjzRAgBgg+q6jvmijmdxL9rp/trXT9tlvL84jrquRQsAAABuPNECAOAStNP9uJj1jA7tuLMAAABAVg7iBgAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBWdaAAAAAGyhrmtjuqp6XTu9qKJbOXgLgPGJFgAAAABbpqqq6M6O4734JlaT9TfimKy66GInqqpf9ACAXyJaAAAAAGyZpmliFlU8uPs09vfO175+2czi6cmDaJpmA9MBsM1ECwAAAIAtdWt3Gbdn64eHSWdrKAA2Q7QAANgw+0UDAADAmxEtAAA2yH7RAAAA8OZECwCADbJfNAAAALw50QIA4BLYLxoAAAD+tPX3KAAAAAAAANgA0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhhd+gCdV1HXdcv/3s+nw9dEgAAAAAA2EKD77R4/Phx3Llz5+XX/fv3x5gLAAAAAADYMoOjxaNHj+L09PTl19HR0RhzAQAAAAAAW2bw9lBFUURRFGPMAgAAAAAAbDEHcQMAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAAp7A5doK7rqOv65X/P5/OhSwIAAAAAAFto8J0Wjx8/jjt37rz8un///hhzAQAAAAAAW2ZwtHj06FGcnp6+/Do6OhpjLgAAAAAAYMsM3h6qKIooimKMWQAAAAAAgC3mIG4AAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUti96gHIpyzLqOu69/VFUcTBwcFo6/3cmgAAAAAA3DyiBa8oyzK+fPJZtMvT3mtM9+/ERw8/jYODg1HW++maAAAAAADcTKIFr6jrOtrlaXz4ztdxWDRrXz+v9+Kr5x9EXddxcHAweL2fWxMAAAAAgJtJtOBnHRZNvH1r2JZOm1wPAAAAAICbx0HcAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKu1c9APm0XRvnF+fRnJ+vfe35xU60XTvaer+0JgAAAAAAN49owSuqqooXJ6fxh8l3Uc7Kta8/Oz+IFyenUVXVKOv93JoAAAAAANxMogWvaJom2q6LRezFZLJa+/pF7EXbddE0zSjr/dyaAAAAAADcTKIFP2s12YluZ9rrujHXe92aAAAAAADcLN4NBgAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFHavegAAAIBNKssy6roetEZRFHFwcDDSRAAAwC8RLQAAgBurLMv48sln0S5PB60z3b8THz38VLgAAIANEy0AAIAbq67raJen8eE7X8dh0fRaY17vxVfPP4i6rkULAADYMNECAAC48Q6LJt6+NWyLKAAAYPMcxA0AAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKu1c9AMDrlGUZdV33vr4oijg4OBhxIgAAAABgU0QLIK2yLOPzL57EfNE/WhzeLuKTjx8KFwAAAABwDYgWQFp1Xcd8UcezuBftdH/t66ftMt5fHEdd16IFAAAAAFwDogWQXjvdj4tZz+jQjjsLAAAAALA5DuIGAAAAAABSEC0AAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFHavegCA1+m6Nqarqte104squlU78kQAAAAAwKaIFkBaVVVFd3Yc78U3sZqsf2PYZNVFFztRVf2iBwAAAABwuUQLIK2maWIWVTy4+zT2987Xvn7ZzOLpyYNommYD0wEAAAAAYxMtgPRu7S7j9mz98DDpbA0FAAAAANeJg7gBAAAAAIAURAsAAAAAACAF0QIAAAAAAEhBtAAAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAUdocuUNd11HX98r/n8/nQJQEAAAAAgC00+E6Lx48fx507d15+3b9/f4y5AAAAAACALTM4Wjx69ChOT09ffh0dHY0xFwAAAAAAsGUGbw9VFEUURTHGLAAAAAAAwBZzEDcAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACrtXPQAAAMAmtV0b5xfn0Zyf97r+/GIn2q4deSoAAODniBYAAMCNVVVVvDg5jT9MvotyVvZa4+z8IF6cnEZVVSNPBwAA/JRoAQAA3FhN00TbdbGIvZhMVr3WWMRetF0XTdOMPB0AAPBTogWwVcqyjLquB61RFEUcHByMNBEAcBlWk53odqa9rwUAAC6HaAFsjbIs4/MvnsR8MSxaHN4u4pOPHwoXAAAAADAy0QLYGnVdx3xRx7O4F+10v9ca03YZ7y+Oo65r0QIAAAAARiZaAFunne7HxWxAcGjHmwUAAAAA+Gc2ZwUAAAAAAFIQLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFHavegAAAIB/qSzLqOu69/VFUcTBwcGIEwEAAJdFtAAAANIoyzI+/+JJzBf9o8Xh7SI++fihcAEAANeQaAEAAKRR13XMF3U8i3vRTvfXvn7aLuP9xXHUdS1aAADANSRaAAAA6bTT/biY9YwO7bizAAAAl8dB3AAAAAAAQArutACAG8ThtQAAAMB1JloAwA1RlmV8+eSzaJenvdeY7t+Jjx5+KlwAAAAAV0K0AIAboq7raJen8eE7X8dh0ax9/bzei6+ef+DwWgAAAODKiBYAcMMcFk28fav/FlEAAAAAV8VB3AAAAAAAQAqiBQAAAAAAkILtoeCaKMsy6nrYdi9FUdinHgAAAABIS7SAa6Asy/jyyWfRLk8HrTPdvxMfPfxUuAAAAAAAUhIt4Bqo6zra5Wl8+M7XcVg0vdaY13vx1fMPoq7rrY4WXdfGdFX1vn56UUW3akecCAAAbr6hd45v+q5xd7YDQB6iBVwjh0UTb98a9kR6m1VVFd3ZcbwX38Rq0u9In8mqiy52oqr6hw8AANgmZVnG5188ifmi/2uZw9tFfPLxw41EgTHmi9jsjACwTUQLYGs0TROzqOLB3aexv3fea41lM4unJw+iafrd8QIAANumruuYL+p4Fveine6vff20Xcb7i+ON3TU+dL6Izc8IANtEtAC2zq3dZdye9YsOk87WUAAA0Ec73Y+LWc839C/hafig+SIuZUYA2Ab99kcBAAAAAAAYmTstAIBLlf0gTuDqdV0b01W/86OmF1V0Kx93BgCA60q0AAAuTfaDONkuQwNahIi2CVVVRXd2HO/FN7GarH9j+GTVRRc7UVX9ogcAAHC1RAsA4NJkP4iT7TFGQIsQ0TahaZqYRRUP7j6N/b3zta9fNrN4evIgmqbf+VUAAMDVEi0AgEuX/SBObr6hAS1CRNu0W7vLuD1bPzxMOg8SAABwnYkWAABsrUEBLUJEAwAAGJloAQA3SNu1cX5xHs35+luqnF/sROsTygAAAMAVEi0A4IaoqipenJzGHybfRTkr177+7PwgXpycOrwWAAAAuDKiBQDcEE3TRNt1sYi9mExWa1+/iL1ou87htQAAwLVXlmXUdT1ojaIonF0GV0C0AIAbZjXZiW5n2us6AACA664sy/j8iycxXwyLFoe3i/jk44fCBVwy0QIAAAAAuDHquo75oo5ncS/a6X6vNabtMt5fHEdd16IFXDLRAgAAANiormtjuup3btb0oopu1Y480auGzBdxOTMC62un+3ExGxAc/LOGKyFaAAAAABtTVVV0Z8fxXnzTazvKyaqLLnaiqvpHhdcZOl/E5mcEgG0iWgAAAAAb0zRNzKKKB3efxv7e+drXL5tZPD15EE3TbGC64fNFbH5GANgmogUAAACwcbd2l3F7tv6b+pPucvZn6TtfxOXNCADboN99jwAAAAAAACMTLQAAAAAAgBRECwAAAAAAIAXRAgAAAAAASEG0AAAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBdECAAAAAABIQbQAAAAAAABSEC0AAAAAAIAURAsAAAAAACCF3aseAAAAAABgTF3XxnRV9b5+elFFt2pHnAh4U6IFAAAAAHBjVFUV3dlxvBffxGrSb6OZyaqLLnaiqvqHD6Af0QIAAAAAuDGapolZVPHg7tPY3zvvtcaymcXTkwfRNM3I0wF/imgBAAAAANw4t3aXcXvWLzpMOltDwVVxEDcAAAAAAJCCaAEAAAAAAKRgeyiAgcqyjLque19fFEUcHByMOBEAAAAAXE+iBcAAZVnG5188ifmif7Q4vF3EJx8/FC4AAAAA2HqiBcAAdV3HfFHHs7gX7XR/7eun7TLeXxxHXdeiBQAAAABbT7QAGEE73Y+LWc/o0I47CwAAAABcVw7iBgAAAAAAUhAtAAAAAACAFEQLAAAAAAAgBWdawIaUZRl1Xfe+vigKBzMDAAAA6Qx9zyPC+x7ALxMtYAPKsowvn3wW7fK09xrT/Tvx0cNP/QAHAAAA0hjjPY8I73sAv0y0gA2o6zra5Wl8+M7XcVg0a18/r/fiq+cfRF3XfngDAAAAaQx9zyPC+x7A64kWsEGHRRNv3xp2uyT5dV0b01XV69rpRRXdqh15IoCrZ8sAAICbzXsewKaIFgADVFUV3dlxvBffxGqys/b1k1UXXexEVfWLHgAZ2TIAAACAvkQLgAGapolZVPHg7tPY3ztf+/plM4unJw+iafrdUguQkS0DAAAA6Eu0ABjBrd1l3J6t/8bcpLM1FHBz2TIAAACAda2/lwkAAAAAAMAGuNMCwmGhAAAAAAAZiBZsvbIs4/MvnsR8MSxaHN4u4pOPHwoXAHBNdF0b01XV+/rpRRXdyjZ/AAAAYxIt2Hp1Xcd8UcezuBftdL/XGtN2Ge8vjh0WCgDXRFVV0Z0dx3vxTawm/XZMnay66GInqqp/+AAAAOBVogXEHz9pGZNV/wVWK5+0BIBrpGmamEUVD+4+jf29815rLJtZPD15EE3TjDwdAADA9hIt2Ho+aQkA42u7Ns4vzqM57xcEzi92ou02/4GAW7vLuD3rFx0mlzAfAADAthEt2Ho+aQlwuYacI+AMgeuhqqp4cXIaf5h8F+Ws7LXG2flBvDg59YEAAACALSNawP/jk5YAmzf07jZ3tl0PTdNE23WxiL2Y9Nx+cRF70XadDwQAAABsGdECALg0Q+9uc2fb9bKa7ES3M+19LQAAANtHtIANGbKX92Xt4w1wVfre3ebONoA3V5Zl1HXd+/qiKOLg4GDEiQAA4E8TLWADhu7lbR9vAACGKMsyvnzyWbTL095rTPfvxEcPPxUuAAC4VKIFbMDQvbzt4w0AwBB1XUe7PI0P3/k6Dov1n1PO67346vkHUde1aAEAwKUSLWCD+u7lbR9vgKszdDuVCFuqADm0XRu3pmX8anf9x7Tzi8J2pQAAXAnRAiAZb5jC1RljO5UIW6oAV892pQBs0pBzPCOc5XmdeI+CqyBaACRSlmX8zRf/JS6qk0Hr7N66G3/58X/0pADWNHQ7lQhbqgA52K4UgE0ZGsYjxPFNGhoZ/mVgKMsyPv/iScwXw6LF4e0iPvn4oddHvDHRAiCRk5OT+O6f/jH+4q3/EQe7/Z68lRe34m//6d/GycmJJwTQ02HRxNu3hj0xB8jAdqVwdcZ84xAyGRrGI65vHM/+73qMO8f/5V3jdV3HfFHHs7gX7XS/33rtMt5fHPtQF2sRLS5Z9gc34Gr9+ORvstvGZK/fk79JtNfyyR8AXCee1wOvM/Ybh5BR3zD+47XXzRh3HWz6joOhd47/0l3j7XQ/LmYDZrYTGGsSLS6RJy3Am9q2J38A/Dx7COfkeT3wp2zqjUPg6gy96+Ay7zgY887xrmtjuuq/jdf0oopupVqwHtHiEtV1Hc3i+/h3/+pv47BY/4FjXhfx31/8hSctjMYnBAEgLwfD5+XNSOBN2XKSLLz+H8+guw6u2Xv3VVVFd3Yc78U3vT8gOVl10cWO80tYi2hxiX48qGgx+V8x7XFQ0eL8IF6c/Bv/yBnFGAc+O+z5+vAEFd5c27VxfnEezfl5r+vPL3ai7a7ZqxFGM+bj7aYOhvczYTzejATgOnCH4HiG3HVwWXccDHk989PXMk3TxCyqeHD3aezv9Xt9tGxm8fTkgS2sWYtocYmGHlR0XQ8pIqehBz477Pn6EKi46cZ8A/bHDxj8YfJdlD0+YBARcXZ+EC9OTn3IYAtt6g2BMd8Y38SMtrACrsK3334bP/zwQ+/rf/WrX8VvfvObESciYnt/JmT/QIA7BMcx9K6Dy7jjYOjrmV96LXNrdxm3Z/3ej5xcwge6tvWx5yYbHC3qun7lm+L09I8vgObz+dClb5yzs7NYLuv47mw3fph1a1+/PN+N5bKOs7Ozl3++33///eA/68PDw3j77bdfmfH5fCfK2foPwMvznVdmHLrez60ZMfz3Pebv+edmHPvPcT6fxw/lIv7h2za+L/o92J/VbfxQLmI+n8fu7m48f/48ykUVz3cjFrvrz1hdxB+vf/483nrrrYjYzu/H6zDj8fFxHP3Ds/izW38X+9P1n2Qs2734+//z53F0dBT37t2LiPH/rsdYc9PrXYcZx/5+vA4zlmUZ/+1v/jraAVFueutu/Pu//Ks4ODh4+dj4j7u34laPx8aIiOqieOXxMePfS8Rmvx+39ef/999/H6fP/3f82e2/i9uz9T+Jtjifxd8///P49ttvo23bjfz8H3vGMf4NRrz67/A6/Gwd+nfz07+XiPzPozYx4xhrjr3edZjRc5R5fPfdd/HX//U/x6Rb9J5xtXM7/uo//Kf49a9/7XEi0fOyiFd/JkTk+/7+6ZpjPx/dxIw/fj++mFVx0WO78p9+P27rc73nz59HuzyJf33wLGbTi7XXO29343+W72/0fZShr2fGfi0Tsfm/6+vy2MM/94LV6k9/mH+yepNf9Rq/+93v4ve///2QJQAAAAAAgBvu6Ogo3n333df+msHR4qd3WnRdF99//3288847MZlMhiy9debzedy/fz+Ojo7i8PAw5ZpmzDnjNv6eN7GmGc2YaU0zmjHTmmY0Y5b1NrGmGc2YaU0zmjHTmmY0Y5b1NrGmGc2Ybc1tsFqt4uzsLO7duxc7O6+/c2fw9lBFUURRFK/8b3fv3h267FY7PDwc/Rt+7DXNuB3rbWJNM+ZcbxNrmjHneptY04w519vEmmbMud4m1sy+3ibWNGPO9TaxphlzrreJNc2Yc71NrGnG7VhvE2uaMed6m1jzOsy4De7cufNGv67fZmQAAAAAAAAjEy0AAAAAAIAURItEiqKI3/72t//fdluZ1jRjzhm38fe8iTXNaMZMa5rRjJnWNKMZs6y3iTXNaMZMa5rRjJnWNKMZs6y3iTXNaMZsa/KqwQdxAwAAAAAAjMGdFgAAAAAAQAqiBQAAAAAAkIJoAQAAAAAApCBaAAAAAAAAKYgWAAAAAABACqIFAAAAAACQgmgBAAAAAACkIFoAAAAAAAApiBYAAAAAAEAKogUAAAAAAJCCaAEAAAAAAKQgWgAAAAAAACmIFgAAAAAAQAqiBQAAAAAAkML/BcXXosp6/f7WAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# overlay 2 figs\n", + "for key in ord_count.keys():\n", + " if key not in zinc_count:\n", + " zinc_count[key] = 0\n", + "zinc_count = dict(sorted(zinc_count.items()))\n", + "fig, axes = plt.subplots(1, 1, figsize=(20, 6))\n", + "plt.bar(zinc_count.keys(), np.array(list(zinc_count.values()))/sum(zinc_count.values())*100, alpha=0.7, edgecolor=\"grey\")\n", + "plt.bar(ord_count.keys(), np.array(list(ord_count.values()))/sum(ord_count.values())*100, alpha=0.7, edgecolor=\"grey\", color=\"orange\")\n", + "axes.set_xticks(range(len(ord_count)))\n", + "axes.set_xticklabels(ord_count.keys(), alpha=0, fontsize=0)\n", + "axes.set_yticks(range(0, 22, 5))\n", + "axes.set_yticklabels(range(0, 22, 5), alpha=0, fontsize=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p値 = 0.0\n" + ] + } + ], + "source": [ + "all_keys = sorted(set(zinc_count) | set(ord_count))\n", + "\n", + "table = [\n", + " [zinc_count.get(k, 0) for k in all_keys],\n", + " [ord_count.get(k, 0) for k in all_keys]\n", + "]\n", + "\n", + "chi2, p, dof, expected = chi2_contingency(table)\n", + "print(f\"p値 = {p}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'#': 1172662, '%': 0, '(': 87669177, ')': 87669177, '*': 0, '+': 9186965, '-': 5401048, '.': 4, '/': 677156, '0': 0, '1': 66484348, '2': 44491389, '3': 16548907, '4': 3177000, '5': 279564, '6': 11640, '7': 352, '8': 22, '9': 2, '<': 0, '=': 28912320, '>': 0, '@': 31342954, 'A': 0, 'B': 1030844, 'C': 202673663, 'D': 0, 'E': 0, 'F': 7345278, 'G': 0, 'H': 30862893, 'I': 66042, 'K': 0, 'L': 0, 'M': 0, 'N': 39715998, 'O': 46079785, 'P': 12, 'R': 0, 'S': 4055697, 'T': 0, 'U': 0, 'V': 0, 'W': 0, 'X': 0, 'Y': 0, 'Z': 0, '[': 33668842, '\\\\': 165144, ']': 33668842, 'a': 0, 'b': 0, 'c': 208766825, 'd': 0, 'e': 0, 'f': 0, 'g': 0, 'h': 0, 'i': 0, 'l': 3577096, 'm': 0, 'n': 27953151, 'o': 2825629, 'p': 46, 'r': 1030844, 's': 3751081, 't': 0, 'u': 0, 'y': 0}\n", + "{'#': 968675, '%': 362, '(': 39570496, ')': 39570496, '*': 1252, '+': 3475620, '-': 5601354, '.': 14920477, '/': 466538, '0': 75, '1': 25627791, '2': 14374586, '3': 4959361, '4': 1500729, '5': 263457, '6': 40522, '7': 8064, '8': 1572, '9': 338, '<': 6167, '=': 15994602, '>': 5632, '@': 2920923, 'A': 102582, 'B': 1862410, 'C': 84726565, 'D': 37, 'E': 64, 'F': 4996453, 'G': 682, 'H': 3910842, 'I': 429658, 'K': 790585, 'L': 251954, 'M': 81481, 'N': 13335742, 'O': 31511764, 'P': 913328, 'R': 5496, 'S': 2334310, 'T': 8111, 'U': 130, 'V': 689, 'W': 687, 'X': 58, 'Y': 1219, 'Z': 29076, '[': 11300362, '\\\\': 71334, ']': 11300362, 'a': 1228163, 'b': 4061, 'c': 85507933, 'd': 212871, 'e': 34891, 'f': 113, 'g': 75930, 'h': 2678, 'i': 602035, 'l': 5752221, 'm': 196, 'n': 8375534, 'o': 440856, 'p': 162, 'r': 1450783, 's': 774085, 't': 8672, 'u': 47650, 'y': 37}\n" + ] + } + ], + "source": [ + "print(zinc_count)\n", + "print(ord_count)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "reaction_aug", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}