{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "2b02a8cc-cea0-479c-8e76-f60339d1b63d", "metadata": {}, "outputs": [ { "data": { "application/mercury+json": "{\n \"widget\": \"File\",\n \"max_file_size\": \"100MB\",\n \"label\": \"File upload\",\n \"model_id\": \"cabb68a84dd94439bbd6a77cf831a47f\",\n \"code_uid\": \"File.0.50.74.4-randc3c2ef99\",\n \"disabled\": false,\n \"hidden\": false\n}", "application/vnd.jupyter.widget-view+json": { "model_id": "cabb68a84dd94439bbd6a77cf831a47f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "mercury.File" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import mercury as mr\n", " \n", "# add file upload widget\n", "my_file = mr.File(label=\"File upload\", max_file_size=\"100MB\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "3ba380e2-9503-45aa-8419-456bea19bd98", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "df = pd.read_csv(my_file.filepath or \"https://raw.githubusercontent.com/pandas-dev/pandas/refs/heads/main/pandas/tests/io/data/csv/iris.csv\")" ] }, { "cell_type": "code", "execution_count": 3, "id": "dd4cc720-da9e-4118-9a39-d13634b4d78f", "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", "
SepalLengthSepalWidthPetalLengthPetalWidthName
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa
\n", "
" ], "text/plain": [ " SepalLength SepalWidth PetalLength PetalWidth Name\n", "0 5.1 3.5 1.4 0.2 Iris-setosa\n", "1 4.9 3.0 1.4 0.2 Iris-setosa\n", "2 4.7 3.2 1.3 0.2 Iris-setosa\n", "3 4.6 3.1 1.5 0.2 Iris-setosa\n", "4 5.0 3.6 1.4 0.2 Iris-setosa" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "f96c7e5a-b321-421b-bb75-277ef2327820", "metadata": {}, "outputs": [ { "data": { "application/mercury+json": "{\n \"widget\": \"Text\",\n \"value\": \"make a scatter plot\",\n \"sanitize\": true,\n \"rows\": 1,\n \"label\": \"What should we plot?\",\n \"model_id\": \"6b21a09cb5864bf390213ca0994e3a8d\",\n \"code_uid\": \"Text.0.50.78.3-randf8784216\",\n \"url_key\": \"\",\n \"disabled\": false,\n \"hidden\": false\n}", "application/vnd.jupyter.widget-view+json": { "model_id": "6b21a09cb5864bf390213ca0994e3a8d", "version_major": 2, "version_minor": 0 }, "text/plain": [ "mercury.Text" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import mercury as mr\n", "\n", "instructions = mr.Text(value=\"make a scatter plot\", label=\"What should we plot?\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "1d06a699-56b5-400e-9775-4e8278b944fd", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " Prompt\n", "
\n",
       "  Create a plot in Python with matplotlib package.\n",
       "\n",
       "Input data:\n",
       "\n",
       "\n",
       "```python\n",
       "# pandas DataFrame\n",
       "'''\n",
       "   SepalLength  SepalWidth  PetalLength  PetalWidth         Name\n",
       "0          5.1         3.5          1.4         0.2  Iris-setosa\n",
       "1          4.9         3.0          1.4         0.2  Iris-setosa\n",
       "2          4.7         3.2          1.3         0.2  Iris-setosa\n",
       "3          4.6         3.1          1.5         0.2  Iris-setosa\n",
       "4          5.0         3.6          1.4         0.2  Iris-setosa\n",
       "'''\n",
       "# DataFrame columns\n",
       "'''\n",
       "['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Name']\n",
       "'''\n",
       "\n",
       "# pandas data frame variable is df\n",
       "```\n",
       "            \n",
       "\n",
       "\n",
       "Plot should contain: make a scatter plot\n",
       "\n",
       "Initial python code to be updated        \n",
       "\n",
       "```python\n",
       "# TODO import required dependencies\n",
       "# TODO Provide the plot\n",
       "```\n",
       "\n",
       "Output only Python code.\n",
       "\n",
       "  
\n", "
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", " Response\n", "
\n",
       "  ```python\n",
       "import matplotlib.pyplot as plt\n",
       "\n",
       "# Scatter plot\n",
       "plt.figure(figsize=(8, 6))\n",
       "plt.scatter(df['SepalLength'], df['SepalWidth'], label='Sepal', color='blue')\n",
       "plt.scatter(df['PetalLength'], df['PetalWidth'], label='Petal', color='green')\n",
       "plt.xlabel('Length')\n",
       "plt.ylabel('Width')\n",
       "plt.title('Sepal and Petal Measurements')\n",
       "plt.legend()\n",
       "plt.show()\n",
       "```\n",
       "  
\n", "
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqYAAAIjCAYAAADRBtn0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqoklEQVR4nO3de3wU9b3/8fdmMSGQCxe5JgE0BJCLN0AFRUBBVGqDiHirIhytLahwUkLFHovWKhqsQrV4a4v+bPGGES+t94JS8QIqVK1aiCBXFUUTAkhkM78/toksye7OZmZ2ZjavZx95YHZmvvuZ2bF8nJ35vgOGYRgCAAAAXJbmdgEAAACARGMKAAAAj6AxBQAAgCfQmAIAAMATaEwBAADgCTSmAAAA8AQaUwAAAHgCjSkAAAA8gcYUAAAAnkBjCsCSQCCg66+/3u0y6l166aXq0aOH22Uk7IEHHlAgENDGjRvdLgUAXENjCnjY+++/rwkTJqh79+5q2bKl8vLyNHr0aN15551ul+Z7I0aMUCAQqP9p166dBg8erD//+c+qra1NaKw9e/bo+uuv1/Lly50p9gDXX3+9AoGA0tLStHnz5gbLq6qqlJmZqUAgoCuvvNLxehDbwoUL9cADD7hdBuAbNKaAR61cuVKDBg3S2rVrdfnll+uuu+7SZZddprS0NC1YsMDt8lJCfn6+HnroIT300EO67rrrtH//fv3P//yPrr322oTG2bNnj2644YakNKZ1MjIy9PDDDzd4vby8PGk1ID4aUyAxLdwuAEDjbrrpJuXm5mrVqlVq06ZNxLIvv/zSnaJSTG5urn7yk5/U/37FFVeod+/euuuuu3TjjTfqkEMOcbG62M4880w9/PDDmjVrVsTrixcv1tixY/XEE0+4VJl9du/erdatW7tdBoAk4oop4FEVFRXq169fg6ZUkjp27Njgtb/85S8aOHCgMjMz1a5dO51//vkNvuodMWKE+vfvr3feeUdDhw5VZmamDjvsMN1zzz0R69XU1OjXv/61Bg4cqNzcXLVu3VrDhg3TsmXLmrQvZsfbuHGjAoGAbrvtNt13330qLCxURkaGBg8erFWrVjUYd+nSperfv79atmyp/v3768knn2xSfXVatWqlE044Qbt379aOHTskSd9++61mzJihgoICZWRkqGfPnrr11lvrv+7fuHGjOnToIEm64YYb6m8NqLvv9l//+pcuvfRSHX744WrZsqU6d+6sKVOm6Ouvv7ZU64UXXqg1a9bo448/rn/t888/1z/+8Q9deOGFjW6zb98+zZkzRz179lRGRoYKCgo0a9Ys7du3L2K9RYsW6ZRTTlHHjh2VkZGhvn376u67724w3urVqzVmzBgdeuih9efSlClT6pcvX75cgUCgwZXkus/5wCuJl156qbKyslRRUaEzzzxT2dnZuuiiiyRJtbW1mj9/vvr166eWLVuqU6dOuuKKK/TNN99EjNujRw/96Ec/0vLlyzVo0CBlZmZqwIAB9e9fXl6uAQMGqGXLlho4cKDee++9Bvv08ccfa8KECWrXrp1atmypQYMG6emnn45Yp+5+4Ndff10lJSXq0KGDWrdurbPPPrv+vKmr58MPP9Srr75af16MGDFCkvT999/rhhtuUFFRkVq2bKn27dvrpJNO0ksvvdToZwc0F1wxBTyqe/fueuONN/TBBx+of//+Mde96aabdN1112nixIm67LLLtGPHDt155506+eST9d5770U0t998843OPPNMTZw4URdccIEee+wx/fznP1d6enp9U1FVVaU//vGPuuCCC3T55Zdr165d+tOf/qQxY8bo7bff1tFHH53QviQ63uLFi7Vr1y5dccUVCgQCKisr0/jx4/Xpp5/WX8V88cUXdc4556hv376aO3euvv76a02ePFn5+fkJ1XawTz/9VMFgUG3atNGePXs0fPhwbd26VVdccYW6deumlStXavbs2dq+fbvmz5+vDh066O6779bPf/5znX322Ro/frwk6cgjj5QkvfTSS/r00081efJkde7cWR9++KHuu+8+ffjhh3rzzTcVCASaVOfJJ5+s/Px8LV68WL/5zW8kSY8++qiysrI0duzYBuvX1tbqxz/+sf75z3/qpz/9qY444gi9//77uuOOO/Sf//xHS5curV/37rvvVr9+/fTjH/9YLVq00DPPPKOpU6eqtrZW06ZNkxS+an/aaaepQ4cOuuaaa9SmTRtt3LjR0q0E+/fv15gxY3TSSSfptttuU6tWrSSFr2Q/8MADmjx5sq6++mpt2LBBd911l9577z29/vrrEVe2169frwsvvFBXXHGFfvKTn+i2227TWWedpXvuuUfXXnutpk6dKkmaO3euJk6cqE8++URpaeFrNB9++KFOPPFE5eXl6ZprrlHr1q312GOPady4cXriiSd09tlnR9R71VVXqW3btpozZ442btyo+fPn68orr9Sjjz4qSZo/f76uuuoqZWVl6Ve/+pUkqVOnTpLC9wrPnTtXl112mY477jhVVVVp9erVevfddzV69OgmH0PA9wwAnvTiiy8awWDQCAaDxpAhQ4xZs2YZL7zwglFTUxOx3saNG41gMGjcdNNNEa+///77RosWLSJeHz58uCHJ+N3vflf/2r59+4yjjz7a6NixY/3Y+/fvN/bt2xcx3jfffGN06tTJmDJlSsTrkow5c+bE3Bez423YsMGQZLRv397YuXNn/etPPfWUIcl45pln6l87+uijjS5duhjffvttxDGTZHTv3j1mPYYRPhZ9+vQxduzYYezYscP46KOPjKuvvtqQZJx11lmGYRjGjTfeaLRu3dr4z3/+E7HtNddcYwSDQWPTpk2GYRjGjh07oh6HPXv2NHjt4YcfNiQZr732Wv1rixYtMiQZGzZsiFn3nDlzDEnGjh07jJkzZxo9e/asXzZ48GBj8uTJhmGEP5dp06bVL3vooYeMtLQ0Y8WKFRHj3XPPPYYk4/XXX49Z85gxY4zDDz+8/vcnn3zSkGSsWrUqaq3Lli0zJBnLli2LeL3uc160aFH9a5MmTTIkGddcc03EuitWrDAkGX/9618jXn/++ecbvN69e3dDkrFy5cr611544QVDkpGZmWl89tln9a/fe++9DWo79dRTjQEDBhjfffdd/Wu1tbXG0KFDjaKiovrX6j6rUaNGGbW1tfWv/+///q8RDAYjzsl+/foZw4cPb3BsjjrqKGPs2LENXgeaO77KBzxq9OjReuONN/TjH/9Ya9euVVlZmcaMGaO8vLyIrxbLy8tVW1uriRMn6quvvqr/6dy5s4qKihp8Xd6iRQtdccUV9b+np6friiuu0Jdffql33nlHkhQMBpWeni4pfKVt586d2r9/vwYNGqR333034X1JdLzzzjtPbdu2rf992LBhksJXMyVp+/btWrNmjSZNmqTc3NyIY9a3b1/TdX388cfq0KGDOnTooCOOOEJ33nmnxo4dqz//+c+SpMcff1zDhg1T27ZtI47tqFGjFAqF9Nprr8V9j8zMzPp//u677/TVV1/phBNOkKQmHcsDXXjhhVq/fr1WrVpV/2e0r/Eff/xxHXHEEerTp0/EvpxyyimSFHGeHFhzZWWlvvrqKw0fPlyffvqpKisrJan+Kvyzzz6r77//3tJ+HOjnP/95g7pzc3M1evToiLoHDhyorKysBud33759NWTIkPrfjz/+eEnSKaecom7dujV4ve6c2rlzp/7xj39o4sSJ2rVrV/37fP311xozZozWrVunrVu3RrzXT3/604gr3sOGDVMoFNJnn30Wdz/btGmjDz/8UOvWrTNzWIBmg6/yAQ8bPHiwysvLVVNTo7Vr1+rJJ5/UHXfcoQkTJmjNmjXq27ev1q1bJ8MwVFRU1OgYBz/A07Vr1wYPlPTq1UtS+N6/uqbpwQcf1O9+9zt9/PHHEY3HYYcd1qR9SWS8AxsISfVNat09hXV/8Te2z7179zbd8PXo0UP333+/AoGAWrZsqaKiooj7d9etW6d//etf9feQHszMQ2g7d+7UDTfcoEceeaTB+nVNXlMdc8wx6tOnjxYvXqw2bdqoc+fO9Y3mwdatW6ePPvrI1L68/vrrmjNnjt544w3t2bOnQc25ubkaPny4zjnnHN1www264447NGLECI0bN04XXnihMjIymrQ/LVq0aHArxrp161RZWdnofdUH1y01PHfq/sOloKCg0dfrzqn169fLMAxdd911uu6666K+V15eXtT3Ovg8jeU3v/mNiouL1atXL/Xv31+nn366Lr744vpbQIDmisYU8IH09HQNHjxYgwcPVq9evTR58mQ9/vjjmjNnjmpraxUIBPTcc88pGAw22DYrKyvh9/vLX/6iSy+9VOPGjVNpaak6duyoYDCouXPnqqKiwvHxGtsPSTIMI+H3jqV169YaNWpU1OW1tbUaPXp0gyff69Q19LFMnDhRK1euVGlpqY4++mhlZWWptrZWp59+esLzpTbmwgsv1N13363s7Gydd9559fdLHqy2tlYDBgzQ7bff3ujyusatoqJCp556qvr06aPbb79dBQUFSk9P19///nfdcccd9TUHAgEtWbJEb775pp555hm98MILmjJlin73u9/pzTffVFZWVtT7Z0OhUKOvZ2RkNKi/trZWHTt21F//+tdGtzm40Y527sQ7p+r2a+bMmRozZkyj6/bs2TOhMWM5+eSTVVFRoaeeekovvvii/vjHP+qOO+7QPffco8suuyzu9kCqojEFfGbQoEGSwl9nS1JhYaEMw9Bhhx1mqlHatm1bg2l4/vOf/0hSfWLSkiVLdPjhh6u8vDyiuZgzZ06TarZ7vO7du0tSo1+DfvLJJ00aszGFhYWqrq6O2bxKitqAffPNN3rllVd0ww036Ne//nX963Z+fXvhhRfq17/+tbZv366HHnoo6nqFhYVau3atTj311JgPXD3zzDPat2+fnn766YgrgtFmZDjhhBN0wgkn6KabbtLixYt10UUX6ZFHHtFll11WfwXx22+/jdjGzFfdB9b98ssv68QTT4y4xcBuhx9+uKTwNwzxPu9ExDrW7dq10+TJkzV58mRVV1fr5JNP1vXXX09jimaNe0wBj1q2bFmjV17+/ve/Swp/ZS1J48ePVzAY1A033NBgfcMwGkxLtH//ft177731v9fU1Ojee+9Vhw4dNHDgQEk/XAk6cLy33npLb7zxRpP2xe7xunTpoqOPPloPPvhgxNfhL730kv797383aczGTJw4UW+88YZeeOGFBsu+/fZb7d+/X5Lqnx4/uAFrbL+l8NPadiksLNT8+fM1d+5cHXfccVHXmzhxorZu3ar777+/wbK9e/dq9+7dUWuurKzUokWLIrb55ptvGuxX3ewKddNPde/eXcFgsMG9uAsXLjS5d+G6Q6GQbrzxxgbL9u/f3+CYN1XHjh01YsQI3XvvvfX/0XegA6eBSkTr1q0brfHgfy+zsrLUs2fPBlN3Ac0NV0wBj7rqqqu0Z88enX322erTp49qamq0cuVKPfroo+rRo4cmT54sKdyY/Pa3v9Xs2bO1ceNGjRs3TtnZ2dqwYYOefPJJ/fSnP9XMmTPrx+3atatuvfVWbdy4Ub169dKjjz6qNWvW6L777qu/H/VHP/qRysvLdfbZZ2vs2LHasGGD7rnnHvXt21fV1dUJ74vd40nh6X7Gjh2rk046SVOmTNHOnTt15513ql+/fk0e82ClpaV6+umn9aMf/UiXXnqpBg4cqN27d+v999/XkiVLtHHjxvo5PPv27atHH31UvXr1Urt27dS/f3/1799fJ598ssrKyvT9998rLy9PL774ojZs2GBLfXWmT58ed52LL75Yjz32mH72s59p2bJlOvHEExUKhfTxxx/rscce0wsvvKBBgwbptNNOU3p6us466yxdccUVqq6u1v3336+OHTtGNGwPPvigFi5cqLPPPluFhYXatWuX7r//fuXk5OjMM8+UFL6P89xzz9Wdd96pQCCgwsJCPfvs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bkqTOY+pHccJqcmRCfaXL19e//PWW2+ppqZGhx9+uE455ZT6RrVTp0627IBZNKYA0LzFm7jdzPKrn7taW3dtrV+el52n35/xe1PbS/EbYzNjxEt+isftZCc7jhNSl6PJT5L03XffaeXKlfWN6ttvv63vv/9effr00YcfftjkwhNFYwoAzVfdxO0H37tY9xXxzKEzddvK2xxbbianPV6NqZD13hz2EdY43pjWqamp0euvv67nnntO9957r6qrq3n4CQDgODMTt6cF0hQyov+dFAwEoy6Pt72Zh3aaw+TyzWEfYZ1jE+zX1NTotdde0w033KCRI0eqTZs2+tnPfqZvvvlGd911lzZs2GCpcAAAzDAzcXusplRSzOXxtjczMXxzmFy+Oewjksv0BPunnHKK3nrrLR122GEaPny4rrjiCi1evFhd3JwgDQDQLHllQvZYdTSHyeWbwz4iuUw3pitWrFCXLl10yimnaMSIERo+fLjat2/vZG0AADTKKxOyx6qjOUwu3xz2Ecll+qv8b7/9Vvfdd59atWqlW2+9VV27dtWAAQN05ZVXasmSJdqxY4eTdQIAUG9Yt2HKz8mvf8DmYAEFFAzEvqcxGAg2efuAAirIKdCwbsMs1RhvDK9rDvuI5DLdmLZu3Vqnn366brnlFr311lv66quvVFZWplatWqmsrEz5+fnq37+/k7UCACDph4nbJTVoiup+LxlSosB//3fw8oACKhlS0uTtpfgTw5up0e+TyzeHfURyJfTw04Fat26tdu3aqV27dmrbtq1atGihjz76yM7aAACIavwR47Vk4hLl5eRFvJ6fk68lE5eobHSZo8vNTIEUr8ZUmEapOewjksf0dFG1tbVavXq1li9frmXLlun111/X7t27lZeXF5EG1b17d6drrsd0UQDgrHiTotd8H9LCv61QxRfbVdipi6aOHab0Q8ylLplZbkeNTi+3o0a3eeFzQOpyZB7TnJwc7d69W507d65vQkeMGKHCwsImFzp37lyVl5fr448/VmZmpoYOHapbb71VvXv3NrU9jSkAOCdems+sReW6/d/TFcr6YXmwOl8lfReobLK51KV4aUFwXjI+Bz7r5s2RxvTee+/VyJEj1atXL1uKlKTTTz9d559/vgYPHqz9+/fr2muv1QcffKB///vfat26ddztaUwBwBnx0nx+fOhMPbXjNkmG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T0/XwIED9corr9S/Vltbq1deeUVDhgxxsTIAAAAkm+tf5ZeUlGjSpEkaNGiQjjvuOM2fP1+7d+/W5MmT3S4NAAAASeR6Y3reeedpx44d+vWvf63PP/9cRx99tJ5//vkGD0QBAAAgtbk+j6kVJD8BAAB4m2/mMQUAAADq0JgCAADAE2hMAQAA4AmuP/xkRd3tsVVVVS5XAgAAgMbU9WlmHmvydWO6a9cuSVJBQYHLlQAAACCWXbt2KTc3N+Y6vn4qv7a2Vtu2bVN2drYCgYDj71dVVaWCggJt3ryZWQAs4Djag+NoHcfQHhxHe3AcreMY2sPu42gYhnbt2qWuXbsqLS32XaS+vmKalpam/Pz8pL9vTk4OJ7wNOI724DhaxzG0B8fRHhxH6ziG9rDzOMa7UlqHh58AAADgCTSmAAAA8AQa0wRkZGRozpw5ysjIcLsUX+M42oPjaB3H0B4cR3twHK3jGNrDzePo64efAAAAkDq4YgoAAABPoDEFAACAJ9CYAgAAwBNoTAEAAOAJNKYmvPbaazrrrLPUtWtXBQIBLV261O2SfGnu3LkaPHiwsrOz1bFjR40bN06ffPKJ22X5yt13360jjzyyftLjIUOG6LnnnnO7LN+75ZZbFAgENGPGDLdL8ZXrr79egUAg4qdPnz5ul+U7W7du1U9+8hO1b99emZmZGjBggFavXu12Wb7So0ePBudiIBDQtGnT3C7NV0KhkK677joddthhyszMVGFhoW688UZTGfd28XXyU7Ls3r1bRx11lKZMmaLx48e7XY5vvfrqq5o2bZoGDx6s/fv369prr9Vpp52mf//732rdurXb5flCfn6+brnlFhUVFckwDD344IMqLi7We++9p379+rldni+tWrVK9957r4488ki3S/Glfv366eWXX67/vUUL/lpJxDfffKMTTzxRI0eO1HPPPacOHTpo3bp1atu2rdul+cqqVasUCoXqf//ggw80evRonXvuuS5W5T+33nqr7r77bj344IPq16+fVq9ercmTJys3N1dXX311Umrg/0FMOOOMM3TGGWe4XYbvPf/88xG/P/DAA+rYsaPeeecdnXzyyS5V5S9nnXVWxO833XST7r77br355ps0pk1QXV2tiy66SPfff79++9vful2OL7Vo0UKdO3d2uwzfuvXWW1VQUKBFixbVv3bYYYe5WJE/dejQ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from plotai import PlotAI\n", "\n", "plot = PlotAI(df)\n", "plot.make(instructions.value)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.5" } }, "nbformat": 4, "nbformat_minor": 5 }