Skip to content

Instantly share code, notes, and snippets.

@CriticalOlymp
Created February 23, 2024 03:57
Show Gist options
  • Save CriticalOlymp/99774c6ac0a68d4f4fd8262ab1e166dc to your computer and use it in GitHub Desktop.
Save CriticalOlymp/99774c6ac0a68d4f4fd8262ab1e166dc to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "50753556",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "319be851",
"metadata": {},
"outputs": [],
"source": [
"data = {\n",
" \"month\": [1,2,3,4,5],\n",
" \"weather\": [\"rainy\", \"sunny\", \"cloudy\", \"windy\", \"cloudy\"]\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f4f3df5e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'month': [1, 2, 3, 4, 5], 'weather': ['rainy', 'sunny', 'cloudy', 'windy', 'cloudy']}\n"
]
}
],
"source": [
"print(data)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "5237e19a",
"metadata": {},
"outputs": [],
"source": [
"df = pd.DataFrame(data)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "1b1eed5b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"0 1 rainy\n",
"1 2 sunny\n",
"2 3 cloudy\n",
"3 4 windy\n",
"4 5 cloudy\n"
]
}
],
"source": [
"print(df)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b2757b95",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 2, 3, 4, 5]\n"
]
}
],
"source": [
"m = list(df['month'])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "d9a41c6b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['rainy', 'sunny', 'cloudy', 'windy', 'cloudy']\n"
]
}
],
"source": [
"m = list(df['weather'])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "47483f98",
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'other'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:3802\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 3801\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m-> 3802\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine\u001b[38;5;241m.\u001b[39mget_loc(casted_key)\n\u001b[0;32m 3803\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\_libs\\index.pyx:138\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\_libs\\index.pyx:165\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:5745\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:5753\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"\u001b[1;31mKeyError\u001b[0m: 'other'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[9], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mother\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(m)\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\frame.py:3807\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3805\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m 3806\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3807\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mget_loc(key)\n\u001b[0;32m 3808\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3809\u001b[0m indexer \u001b[38;5;241m=\u001b[39m [indexer]\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:3804\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 3802\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine\u001b[38;5;241m.\u001b[39mget_loc(casted_key)\n\u001b[0;32m 3803\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[1;32m-> 3804\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m 3805\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[0;32m 3806\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3807\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3808\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3809\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
"\u001b[1;31mKeyError\u001b[0m: 'other'"
]
}
],
"source": [
"m = list(df['other'])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "75507246",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1, 'rainy']\n"
]
}
],
"source": [
"m = list(df.loc[0])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6405c426",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[2, 'sunny']\n"
]
}
],
"source": [
"m = list(df.loc[1])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b747a0eb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[5, 'cloudy']\n"
]
}
],
"source": [
"m = list(df.loc[4])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "8f6d031f",
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "5",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexes\\range.py:391\u001b[0m, in \u001b[0;36mRangeIndex.get_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 390\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 391\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_range\u001b[38;5;241m.\u001b[39mindex(new_key)\n\u001b[0;32m 392\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
"\u001b[1;31mValueError\u001b[0m: 5 is not in range",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(df\u001b[38;5;241m.\u001b[39mloc[\u001b[38;5;241m5\u001b[39m])\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28mprint\u001b[39m(m)\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexing.py:1073\u001b[0m, in \u001b[0;36m_LocationIndexer.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 1070\u001b[0m axis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maxis \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[0;32m 1072\u001b[0m maybe_callable \u001b[38;5;241m=\u001b[39m com\u001b[38;5;241m.\u001b[39mapply_if_callable(key, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj)\n\u001b[1;32m-> 1073\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_axis(maybe_callable, axis\u001b[38;5;241m=\u001b[39maxis)\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexing.py:1312\u001b[0m, in \u001b[0;36m_LocIndexer._getitem_axis\u001b[1;34m(self, key, axis)\u001b[0m\n\u001b[0;32m 1310\u001b[0m \u001b[38;5;66;03m# fall thru to straight lookup\u001b[39;00m\n\u001b[0;32m 1311\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_key(key, axis)\n\u001b[1;32m-> 1312\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_label(key, axis\u001b[38;5;241m=\u001b[39maxis)\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexing.py:1260\u001b[0m, in \u001b[0;36m_LocIndexer._get_label\u001b[1;34m(self, label, axis)\u001b[0m\n\u001b[0;32m 1258\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_get_label\u001b[39m(\u001b[38;5;28mself\u001b[39m, label, axis: \u001b[38;5;28mint\u001b[39m):\n\u001b[0;32m 1259\u001b[0m \u001b[38;5;66;03m# GH#5567 this will fail if the label is not present in the axis.\u001b[39;00m\n\u001b[1;32m-> 1260\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj\u001b[38;5;241m.\u001b[39mxs(label, axis\u001b[38;5;241m=\u001b[39maxis)\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\generic.py:4056\u001b[0m, in \u001b[0;36mNDFrame.xs\u001b[1;34m(self, key, axis, level, drop_level)\u001b[0m\n\u001b[0;32m 4054\u001b[0m new_index \u001b[38;5;241m=\u001b[39m index[loc]\n\u001b[0;32m 4055\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 4056\u001b[0m loc \u001b[38;5;241m=\u001b[39m index\u001b[38;5;241m.\u001b[39mget_loc(key)\n\u001b[0;32m 4058\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(loc, np\u001b[38;5;241m.\u001b[39mndarray):\n\u001b[0;32m 4059\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m loc\u001b[38;5;241m.\u001b[39mdtype \u001b[38;5;241m==\u001b[39m np\u001b[38;5;241m.\u001b[39mbool_:\n",
"File \u001b[1;32m~\\anaconda3\\Lib\\site-packages\\pandas\\core\\indexes\\range.py:393\u001b[0m, in \u001b[0;36mRangeIndex.get_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 391\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_range\u001b[38;5;241m.\u001b[39mindex(new_key)\n\u001b[0;32m 392\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[1;32m--> 393\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m 394\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n\u001b[0;32m 395\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key)\n",
"\u001b[1;31mKeyError\u001b[0m: 5"
]
}
],
"source": [
"m = list(df.loc[5])\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "15503184",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"month 1\n",
"weather rainy\n",
"Name: 0, dtype: object\n"
]
}
],
"source": [
"m = df.loc[0]\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "d41d7edb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"month 5\n",
"weather cloudy\n",
"Name: 4, dtype: object\n"
]
}
],
"source": [
"m = df.loc[4]\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "1eeb9120",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"1 2 sunny\n",
"2 3 cloudy\n"
]
}
],
"source": [
"m = df.loc[1:2]\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "12551600",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"0 1 rainy\n",
"1 2 sunny\n",
"2 3 cloudy\n",
"3 4 windy\n",
"4 5 cloudy\n"
]
}
],
"source": [
"m = df.loc[0:4]\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "43f55b74",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"0 1 rainy\n",
"1 2 sunny\n",
"2 3 cloudy\n"
]
}
],
"source": [
"m = df.loc[-1:2]\n",
"print(m)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "e1d34198",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"a 1 rainy\n",
"b 2 sunny\n",
"c 3 cloudy\n",
"d 4 windy\n",
"e 5 cloudy\n"
]
}
],
"source": [
"idx = ['a', 'b', 'c', 'd', 'e']\n",
"df =pd.DataFrame(data, index=idx)\n",
"print(df)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "cafe6911",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"month 1\n",
"weather rainy\n",
"Name: a, dtype: object\n"
]
}
],
"source": [
"print(df.loc['a'])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "7f93bd72",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"month 5\n",
"weather cloudy\n",
"Name: e, dtype: object\n"
]
}
],
"source": [
"print(df.loc['e'])"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "b63f09b1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"a 1 rainy\n",
"b 2 sunny\n",
"c 3 cloudy\n"
]
}
],
"source": [
"print(df.loc['a':'c'])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "bbe3b7d2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.loc['a']['month']"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "f744712f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'rainy'"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.loc['a']['weather']"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "f1339f3b",
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(\"data_no_idx_sep_comma.csv\", sep=\",\", index=False)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "823ef79c",
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(\"data_def_options.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "87f0a82f",
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(\"data_sep_semicolon.csv\", sep=\";\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "243ea2d1",
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(\"data_sep_tab.csv\", sep=\"\\t\")"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "dd37e94f",
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(\"data_sep_space.csv\", sep=\" \")"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "5b9059ce",
"metadata": {},
"outputs": [],
"source": [
"df.to_excel(\"data_no_idx.xlsx\", index=False)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "0b1c6388",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" month weather\n",
"0 1 rainy\n",
"1 2 sunny\n",
"2 3 cloudy\n",
"3 4 windy\n",
"4 5 cloudy\n"
]
}
],
"source": [
"df2=pd.read_excel(\"data_no_idx.xlsx\")\n",
"print(df2)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "ba2a91eb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" t x y\n",
"0 0.0 2.000000 0.000000\n",
"1 0.2 1.984229 0.250666\n",
"2 0.4 1.937166 0.497380\n",
"3 0.6 1.859553 0.736249\n",
"4 0.8 1.752613 0.963507\n",
".. ... ... ...\n",
"95 19.0 1.618034 -1.175571\n",
"96 19.2 1.752613 -0.963507\n",
"97 19.4 1.859553 -0.736249\n",
"98 19.6 1.937166 -0.497380\n",
"99 19.8 1.984229 -0.250666\n",
"\n",
"[100 rows x 3 columns]\n"
]
}
],
"source": [
"df3=pd.read_excel(\"lissajous_circle.xlsx\")\n",
"print(df3)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"id": "e4c5e9c5",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "477c0122",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1defb117850>"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x='x', y='y', data=df3, alpha=1)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "ba6bad57",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" t x y\n",
"0 0.0 2.000000 0.000000\n",
"1 0.2 1.996053 0.250666\n",
"2 0.4 1.984229 0.497380\n",
"3 0.6 1.964575 0.736249\n",
"4 0.8 1.937166 0.963507\n",
".. ... ... ...\n",
"95 19.0 1.902113 -1.175571\n",
"96 19.2 1.937166 -0.963507\n",
"97 19.4 1.964575 -0.736249\n",
"98 19.6 1.984229 -0.497380\n",
"99 19.8 1.996053 -0.250666\n",
"\n",
"[100 rows x 3 columns]\n"
]
}
],
"source": [
"df4=pd.read_excel(\"lissajous_butterfly.xlsx\")\n",
"print(df4)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "06ef32d8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x1defa97c6d0>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x='x', y='y', data=df4, alpha=1)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "b18619a1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" x\n",
"0 36\n",
"1 31\n",
"2 34\n",
"3 29\n",
"4 5\n",
"... ...\n",
"249995 997\n",
"249996 997\n",
"249997 998\n",
"249998 998\n",
"249999 999\n",
"\n",
"[250000 rows x 1 columns]\n"
]
}
],
"source": [
"df5=pd.read_excel(\"distribution.xlsx\")\n",
"print(df5)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "bcb42414",
"metadata": {},
"outputs": [],
"source": [
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "7279ac0e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Axes: xlabel='x', ylabel='count'>"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.countplot(x='x',data=df5)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"id": "286125f7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" fruit amount\n",
"0 tomato 18\n",
"1 orange 12\n",
"2 apple 13\n",
"3 banana 20\n",
"4 kiwi 14\n",
"5 durian 15\n",
"6 manggo 5\n",
"7 strawberry 15\n"
]
}
],
"source": [
"df6=pd.read_excel(\"fruit_pie_chart.xlsx\")\n",
"print(df6)"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "2f03cd15",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcgAAAGFCAYAAAB5Z2NYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4/UlEQVR4nO3dd3hUVfrA8e9M6qT3Tg8tEDoIiBAUjKIIYsGCgqioCIq6yK6ubS1rx/Zb1w7YWARFwQKigDSpoQdCEkJCkknvbdr9/REJxgRImcmdSd7P8+SRzL1z7jsxmXfOuee8R6MoioIQQggh6tGqHYAQQghhjyRBCiGEEI2QBCmEEEI0QhKkEEII0QhJkEIIIUQjJEEKIYQQjZAEKYQQQjRCEqQQQgjRCEmQQgghRCMkQQohhBCNkAQphBBCNEISpBBCCNEISZBCCCFEIyRBCiGEEI2QBCmEEEI0QhKkEEII0QhJkEIIIUQjJEEKIYQQjZAEKYQQQjRCEqQQQgjRCEmQQgghRCMkQQohhBCNkAQphBBCNEISpBBCCNEISZBCCCFEIyRBCiGEEI2QBCmEEEI0QhKkEEII0QhJkEIIIUQjJEEKIYQQjZAEKYRoMUVRMJlMaochhE1IghRC1FNTU8MDDzxASEgI7u7ujBkzht27dwOwadMmNBoN69atY9iwYbi5ubFlyxZSUlKYMmUKoaGheHl5MXz4cDZs2FCv3a5du/LCCy8we/ZsvL296dy5M++//369c7Zv386gQYNwd3dn2LBhrF69Go1Gw/79++vOOXr0KJMmTcLLy4vQ0FBuu+028vPzbf5zER2PJEghRD2PPvooq1atYunSpezbt4/o6Gji4+MpLCysd86///1vEhMTGTBgAOXl5UyaNIkNGzaQkJBAfHw8kydPJj09vV7br732GsOGDSMhIYG5c+dy3333cezYMQDKysqYPHkysbGx7Nu3j2effZZFixbVe352djbjxo1j0KBB7Nmzh59++omcnBxuvPFG2/9gRMejCCHEH8rLyxUXFxfl888/r3vMYDAoERERyssvv6xs3LhRAZTVq1dfsK2YmBjl7bffrvu+S5cuyowZM+q+t1gsSkhIiPLuu+8qiqIo7777rhIYGKhUVVXVnfPBBx8ogJKQkKAoiqI88cQTyuWXX17vOhkZGQqgHD9+vEWvWYhzkR6kEKJOSkoKRqORiy++uO4xFxcXRowYQWJiYt1jw4YNq/e8iooKHn30UWJiYvDz88PLy4tjx4416EEOGDCg7t8ajYawsDByc3MBOH78OAMGDMDd3b3unBEjRtR7/t69e9m4cSNeXl51X3369KmLXQhrclY7ACGE/VAUBahNXn99/M+PeXp61ju+cOFC1q1bx6uvvkp0dDQ6nY7rr78eg8FQ7zwXF5d632s0GiwWS6PX+HM8Z1gsFiZPnsxLL73UIPbw8PCmvEQhmkx6kEKIOtHR0bi6urJ169a6x4xGI3v27KFv377nfN6WLVuYNWsW1157LbGxsYSFhZGWltasa/fp04eDBw9SU1NT99iePXvqnTNkyBCOHDlC165diY6Orvf116QtRGtJghRC1PH09OS+++5j4cKF/PTTTxw9epS7776byspK7rzzznM+Lzo6mq+//pr9+/dz4MABbrnllrqeYVOdec6cOXNITEys65HC2R7t/fffT2FhITfffDO7du0iNTWV9evXM3v2bMxmc8tfuBCNkAQphKjnxRdf5LrrruO2225jyJAhJCcns27dOvz9/c/5nMWLF+Pv78/o0aOZPHky8fHxDBkypFnX9fHxYc2aNezfv59Bgwbx+OOP8+STTwLU3ZeMiIhg27ZtmM1m4uPj6d+/Pw8++CC+vr5otfJ2JqxLo/x1kF8IIezE559/zh133EFJSQk6nU7tcEQHI5N0hBB2Y9myZXTv3p3IyEgOHDjAokWLuPHGGyU5ClVIghRC2A29Xs+TTz6JXq8nPDycG264geeff17tsEQHJUOs4ryWLFnCggULKC4uVjsUIYRoU3JXWwghhGiEJEghhBCiEXIP0oH99NNPPPfccxw+fBgnJydGjRrFm2++SY8ePUhLS6Nbt258+eWXvPXWW+zbt48ePXrwf//3f8TFxQG1OzOMHz+etWvX8thjj3H8+HEGDhzIhx9+SGxs7Dmvu2bNGp5++mmOHDlCREQEM2fO5PHHH8fZuYP+OlWXQnkOlOmhqhBMNX98VYPZUPvvv/73zDGzAVw8wM37jy+f2v+6+5z9d91///i3LGcQok100He09qGiooKHH36Y2NhYKioqePLJJ7n22mvrbQ20cOFC3njjDWJiYnj99de55pprOHnyJIGBgfXOefPNNwkLC+Oxxx7jmmuuISkpqUFZMIB169YxY8YM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HY8QjkYm6QhhR5qyuY5Go2lwntFobHCep+f594pcuHAh69at49VXXyU6OhqdTsf111+PwWCod56Li0uD61sslgvGKYSjkx6kEHYkOjoaFxcXfv/997rHioqK6i3PCA4OJjs7u+77EydOUFlZ2exrbdmyhVmzZnHttdcSGxtLWFgYaWlprYpfiPZEepBC2BEvLy/uvPNOFi5cSGBgIKGhoTz++ONotWc/y1566aW88847jBw5EovFwqJFixr08poiOjqar7/+msmTJ6PRaHjiiSekZyjEn0iCFMLOvPLKK5SXl3PNNdfg7e3NI488QklJSd3x1157jTvuuIOxY8cSERHBm2++2aJZrosXL2b27NmMHj2aoKAgFi1aRGlpqTVfihAOTaM05aaHEEII0cHIPUghhBCiEZIghRBCiEZIghRCCCEaIQlSCCGEaIQkSCGEEKIRkiCFEEKIRkiCFEIIIRohCVIIIYRohCRIIYQQohGSIIUQQohGSIIUQgghGiEJUgghhGiEJEghhBCiEZIghRBCiEZIghRCCCEaIQlSCCGEaIQkSCGEEKIRkiCFEEKIRkiCFEIIIRohCVIIIYRohCRIIYQQohGSIIUQQohGSIIUQgghGiEJUgghhGiEJEghhBCiEZIghRBCiEZIghRCCCEa8f8w6mByvV7ALQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.pie(df6[\"amount\"], labels=df6[\"fruit\"], autopct='%1.1f%%');"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "b49da97c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" x y z\n",
"0 0 0 82.462113\n",
"1 5 0 77.620873\n",
"2 10 0 72.801099\n",
"3 15 0 68.007353\n",
"4 20 0 63.245553\n",
".. ... ... ...\n",
"436 80 100 80.000000\n",
"437 85 100 80.156098\n",
"438 90 100 80.622577\n",
"439 95 100 81.394103\n",
"440 100 100 82.462113\n",
"\n",
"[441 rows x 3 columns]\n"
]
}
],
"source": [
"df7=pd.read_excel(\"contour.xlsx\")\n",
"print(df7)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "115ce6e4",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 100,
"id": "4e4c2cdc",
"metadata": {},
"outputs": [],
"source": [
"Z = df7.pivot_table(index='x', columns='y', values='z').T.values\n",
"\n",
"X_unique = np.sort(df7.x.unique())\n",
"Y_unique = np.sort(df7.y.unique())\n",
"X, Y = np.meshgrid(X_unique, Y_unique)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"id": "3a0b7062",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>0</th>\n",
" <th>1</th>\n",
" <th>2</th>\n",
" <th>3</th>\n",
" <th>4</th>\n",
" <th>5</th>\n",
" <th>6</th>\n",
" <th>7</th>\n",
" <th>8</th>\n",
" <th>9</th>\n",
" <th>...</th>\n",
" <th>11</th>\n",
" <th>12</th>\n",
" <th>13</th>\n",
" <th>14</th>\n",
" <th>15</th>\n",
" <th>16</th>\n",
" <th>17</th>\n",
" <th>18</th>\n",
" <th>19</th>\n",
" <th>20</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>82.462</td>\n",
" <td>77.621</td>\n",
" <td>72.801</td>\n",
" <td>68.007</td>\n",
" <td>63.246</td>\n",
" <td>58.523</td>\n",
" <td>53.852</td>\n",
" <td>49.244</td>\n",
" <td>44.721</td>\n",
" <td>40.311</td>\n",
" <td>...</td>\n",
" <td>32.016</td>\n",
" <td>28.284</td>\n",
" <td>25.000</td>\n",
" <td>22.361</td>\n",
" <td>20.616</td>\n",
" <td>20.0</td>\n",
" <td>20.616</td>\n",
" <td>22.361</td>\n",
" <td>25.000</td>\n",
" <td>28.284</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>81.394</td>\n",
" <td>76.485</td>\n",
" <td>71.589</td>\n",
" <td>66.708</td>\n",
" <td>61.847</td>\n",
" <td>57.009</td>\n",
" <td>52.202</td>\n",
" <td>47.434</td>\n",
" <td>42.720</td>\n",
" <td>38.079</td>\n",
" <td>...</td>\n",
" <td>29.155</td>\n",
" <td>25.000</td>\n",
" <td>21.213</td>\n",
" <td>18.028</td>\n",
" <td>15.811</td>\n",
" <td>15.0</td>\n",
" <td>15.811</td>\n",
" <td>18.028</td>\n",
" <td>21.213</td>\n",
" <td>25.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>80.623</td>\n",
" <td>75.664</td>\n",
" <td>70.711</td>\n",
" <td>65.765</td>\n",
" <td>60.828</td>\n",
" <td>55.902</td>\n",
" <td>50.990</td>\n",
" <td>46.098</td>\n",
" <td>41.231</td>\n",
" <td>36.401</td>\n",
" <td>...</td>\n",
" <td>26.926</td>\n",
" <td>22.361</td>\n",
" <td>18.028</td>\n",
" <td>14.142</td>\n",
" <td>11.180</td>\n",
" <td>10.0</td>\n",
" <td>11.180</td>\n",
" <td>14.142</td>\n",
" <td>18.028</td>\n",
" <td>22.361</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>80.156</td>\n",
" <td>75.166</td>\n",
" <td>70.178</td>\n",
" <td>65.192</td>\n",
" <td>60.208</td>\n",
" <td>55.227</td>\n",
" <td>50.249</td>\n",
" <td>45.277</td>\n",
" <td>40.311</td>\n",
" <td>35.355</td>\n",
" <td>...</td>\n",
" <td>25.495</td>\n",
" <td>20.616</td>\n",
" <td>15.811</td>\n",
" <td>11.180</td>\n",
" <td>7.071</td>\n",
" <td>5.0</td>\n",
" <td>7.071</td>\n",
" <td>11.180</td>\n",
" <td>15.811</td>\n",
" <td>20.616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>80.000</td>\n",
" <td>75.000</td>\n",
" <td>70.000</td>\n",
" <td>65.000</td>\n",
" <td>60.000</td>\n",
" <td>55.000</td>\n",
" <td>50.000</td>\n",
" <td>45.000</td>\n",
" <td>40.000</td>\n",
" <td>35.000</td>\n",
" <td>...</td>\n",
" <td>25.000</td>\n",
" <td>20.000</td>\n",
" <td>15.000</td>\n",
" <td>10.000</td>\n",
" <td>5.000</td>\n",
" <td>0.0</td>\n",
" <td>5.000</td>\n",
" <td>10.000</td>\n",
" <td>15.000</td>\n",
" <td>20.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>80.156</td>\n",
" <td>75.166</td>\n",
" <td>70.178</td>\n",
" <td>65.192</td>\n",
" <td>60.208</td>\n",
" <td>55.227</td>\n",
" <td>50.249</td>\n",
" <td>45.277</td>\n",
" <td>40.311</td>\n",
" <td>35.355</td>\n",
" <td>...</td>\n",
" <td>25.495</td>\n",
" <td>20.616</td>\n",
" <td>15.811</td>\n",
" <td>11.180</td>\n",
" <td>7.071</td>\n",
" <td>5.0</td>\n",
" <td>7.071</td>\n",
" <td>11.180</td>\n",
" <td>15.811</td>\n",
" <td>20.616</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>80.623</td>\n",
" <td>75.664</td>\n",
" <td>70.711</td>\n",
" <td>65.765</td>\n",
" <td>60.828</td>\n",
" <td>55.902</td>\n",
" <td>50.990</td>\n",
" <td>46.098</td>\n",
" <td>41.231</td>\n",
" <td>36.401</td>\n",
" <td>...</td>\n",
" <td>26.926</td>\n",
" <td>22.361</td>\n",
" <td>18.028</td>\n",
" <td>14.142</td>\n",
" <td>11.180</td>\n",
" <td>10.0</td>\n",
" <td>11.180</td>\n",
" <td>14.142</td>\n",
" <td>18.028</td>\n",
" <td>22.361</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>81.394</td>\n",
" <td>76.485</td>\n",
" <td>71.589</td>\n",
" <td>66.708</td>\n",
" <td>61.847</td>\n",
" <td>57.009</td>\n",
" <td>52.202</td>\n",
" <td>47.434</td>\n",
" <td>42.720</td>\n",
" <td>38.079</td>\n",
" <td>...</td>\n",
" <td>29.155</td>\n",
" <td>25.000</td>\n",
" <td>21.213</td>\n",
" <td>18.028</td>\n",
" <td>15.811</td>\n",
" <td>15.0</td>\n",
" <td>15.811</td>\n",
" <td>18.028</td>\n",
" <td>21.213</td>\n",
" <td>25.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>82.462</td>\n",
" <td>77.621</td>\n",
" <td>72.801</td>\n",
" <td>68.007</td>\n",
" <td>63.246</td>\n",
" <td>58.523</td>\n",
" <td>53.852</td>\n",
" <td>49.244</td>\n",
" <td>44.721</td>\n",
" <td>40.311</td>\n",
" <td>...</td>\n",
" <td>32.016</td>\n",
" <td>28.284</td>\n",
" <td>25.000</td>\n",
" <td>22.361</td>\n",
" <td>20.616</td>\n",
" <td>20.0</td>\n",
" <td>20.616</td>\n",
" <td>22.361</td>\n",
" <td>25.000</td>\n",
" <td>28.284</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>83.815</td>\n",
" <td>79.057</td>\n",
" <td>74.330</td>\n",
" <td>69.642</td>\n",
" <td>65.000</td>\n",
" <td>60.415</td>\n",
" <td>55.902</td>\n",
" <td>51.478</td>\n",
" <td>47.170</td>\n",
" <td>43.012</td>\n",
" <td>...</td>\n",
" <td>35.355</td>\n",
" <td>32.016</td>\n",
" <td>29.155</td>\n",
" <td>26.926</td>\n",
" <td>25.495</td>\n",
" <td>25.0</td>\n",
" <td>25.495</td>\n",
" <td>26.926</td>\n",
" <td>29.155</td>\n",
" <td>32.016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>85.440</td>\n",
" <td>80.777</td>\n",
" <td>76.158</td>\n",
" <td>71.589</td>\n",
" <td>67.082</td>\n",
" <td>62.650</td>\n",
" <td>58.310</td>\n",
" <td>54.083</td>\n",
" <td>50.000</td>\n",
" <td>46.098</td>\n",
" <td>...</td>\n",
" <td>39.051</td>\n",
" <td>36.056</td>\n",
" <td>33.541</td>\n",
" <td>31.623</td>\n",
" <td>30.414</td>\n",
" <td>30.0</td>\n",
" <td>30.414</td>\n",
" <td>31.623</td>\n",
" <td>33.541</td>\n",
" <td>36.056</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>87.321</td>\n",
" <td>82.765</td>\n",
" <td>78.262</td>\n",
" <td>73.824</td>\n",
" <td>69.462</td>\n",
" <td>65.192</td>\n",
" <td>61.033</td>\n",
" <td>57.009</td>\n",
" <td>53.151</td>\n",
" <td>49.497</td>\n",
" <td>...</td>\n",
" <td>43.012</td>\n",
" <td>40.311</td>\n",
" <td>38.079</td>\n",
" <td>36.401</td>\n",
" <td>35.355</td>\n",
" <td>35.0</td>\n",
" <td>35.355</td>\n",
" <td>36.401</td>\n",
" <td>38.079</td>\n",
" <td>40.311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>89.443</td>\n",
" <td>85.000</td>\n",
" <td>80.623</td>\n",
" <td>76.322</td>\n",
" <td>72.111</td>\n",
" <td>68.007</td>\n",
" <td>64.031</td>\n",
" <td>60.208</td>\n",
" <td>56.569</td>\n",
" <td>53.151</td>\n",
" <td>...</td>\n",
" <td>47.170</td>\n",
" <td>44.721</td>\n",
" <td>42.720</td>\n",
" <td>41.231</td>\n",
" <td>40.311</td>\n",
" <td>40.0</td>\n",
" <td>40.311</td>\n",
" <td>41.231</td>\n",
" <td>42.720</td>\n",
" <td>44.721</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>91.788</td>\n",
" <td>87.464</td>\n",
" <td>83.217</td>\n",
" <td>79.057</td>\n",
" <td>75.000</td>\n",
" <td>71.063</td>\n",
" <td>67.268</td>\n",
" <td>63.640</td>\n",
" <td>60.208</td>\n",
" <td>57.009</td>\n",
" <td>...</td>\n",
" <td>51.478</td>\n",
" <td>49.244</td>\n",
" <td>47.434</td>\n",
" <td>46.098</td>\n",
" <td>45.277</td>\n",
" <td>45.0</td>\n",
" <td>45.277</td>\n",
" <td>46.098</td>\n",
" <td>47.434</td>\n",
" <td>49.244</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>94.340</td>\n",
" <td>90.139</td>\n",
" <td>86.023</td>\n",
" <td>82.006</td>\n",
" <td>78.102</td>\n",
" <td>74.330</td>\n",
" <td>70.711</td>\n",
" <td>67.268</td>\n",
" <td>64.031</td>\n",
" <td>61.033</td>\n",
" <td>...</td>\n",
" <td>55.902</td>\n",
" <td>53.852</td>\n",
" <td>52.202</td>\n",
" <td>50.990</td>\n",
" <td>50.249</td>\n",
" <td>50.0</td>\n",
" <td>50.249</td>\n",
" <td>50.990</td>\n",
" <td>52.202</td>\n",
" <td>53.852</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>97.082</td>\n",
" <td>93.005</td>\n",
" <td>89.022</td>\n",
" <td>85.147</td>\n",
" <td>81.394</td>\n",
" <td>77.782</td>\n",
" <td>74.330</td>\n",
" <td>71.063</td>\n",
" <td>68.007</td>\n",
" <td>65.192</td>\n",
" <td>...</td>\n",
" <td>60.415</td>\n",
" <td>58.523</td>\n",
" <td>57.009</td>\n",
" <td>55.902</td>\n",
" <td>55.227</td>\n",
" <td>55.0</td>\n",
" <td>55.227</td>\n",
" <td>55.902</td>\n",
" <td>57.009</td>\n",
" <td>58.523</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>100.000</td>\n",
" <td>96.047</td>\n",
" <td>92.195</td>\n",
" <td>88.459</td>\n",
" <td>84.853</td>\n",
" <td>81.394</td>\n",
" <td>78.102</td>\n",
" <td>75.000</td>\n",
" <td>72.111</td>\n",
" <td>69.462</td>\n",
" <td>...</td>\n",
" <td>65.000</td>\n",
" <td>63.246</td>\n",
" <td>61.847</td>\n",
" <td>60.828</td>\n",
" <td>60.208</td>\n",
" <td>60.0</td>\n",
" <td>60.208</td>\n",
" <td>60.828</td>\n",
" <td>61.847</td>\n",
" <td>63.246</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>103.078</td>\n",
" <td>99.247</td>\n",
" <td>95.525</td>\n",
" <td>91.924</td>\n",
" <td>88.459</td>\n",
" <td>85.147</td>\n",
" <td>82.006</td>\n",
" <td>79.057</td>\n",
" <td>76.322</td>\n",
" <td>73.824</td>\n",
" <td>...</td>\n",
" <td>69.642</td>\n",
" <td>68.007</td>\n",
" <td>66.708</td>\n",
" <td>65.765</td>\n",
" <td>65.192</td>\n",
" <td>65.0</td>\n",
" <td>65.192</td>\n",
" <td>65.765</td>\n",
" <td>66.708</td>\n",
" <td>68.007</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>106.301</td>\n",
" <td>102.591</td>\n",
" <td>98.995</td>\n",
" <td>95.525</td>\n",
" <td>92.195</td>\n",
" <td>89.022</td>\n",
" <td>86.023</td>\n",
" <td>83.217</td>\n",
" <td>80.623</td>\n",
" <td>78.262</td>\n",
" <td>...</td>\n",
" <td>74.330</td>\n",
" <td>72.801</td>\n",
" <td>71.589</td>\n",
" <td>70.711</td>\n",
" <td>70.178</td>\n",
" <td>70.0</td>\n",
" <td>70.178</td>\n",
" <td>70.711</td>\n",
" <td>71.589</td>\n",
" <td>72.801</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>109.659</td>\n",
" <td>106.066</td>\n",
" <td>102.591</td>\n",
" <td>99.247</td>\n",
" <td>96.047</td>\n",
" <td>93.005</td>\n",
" <td>90.139</td>\n",
" <td>87.464</td>\n",
" <td>85.000</td>\n",
" <td>82.765</td>\n",
" <td>...</td>\n",
" <td>79.057</td>\n",
" <td>77.621</td>\n",
" <td>76.485</td>\n",
" <td>75.664</td>\n",
" <td>75.166</td>\n",
" <td>75.0</td>\n",
" <td>75.166</td>\n",
" <td>75.664</td>\n",
" <td>76.485</td>\n",
" <td>77.621</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>113.137</td>\n",
" <td>109.659</td>\n",
" <td>106.301</td>\n",
" <td>103.078</td>\n",
" <td>100.000</td>\n",
" <td>97.082</td>\n",
" <td>94.340</td>\n",
" <td>91.788</td>\n",
" <td>89.443</td>\n",
" <td>87.321</td>\n",
" <td>...</td>\n",
" <td>83.815</td>\n",
" <td>82.462</td>\n",
" <td>81.394</td>\n",
" <td>80.623</td>\n",
" <td>80.156</td>\n",
" <td>80.0</td>\n",
" <td>80.156</td>\n",
" <td>80.623</td>\n",
" <td>81.394</td>\n",
" <td>82.462</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>21 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" 0 1 2 3 4 5 6 7 \\\n",
"0 82.462 77.621 72.801 68.007 63.246 58.523 53.852 49.244 \n",
"1 81.394 76.485 71.589 66.708 61.847 57.009 52.202 47.434 \n",
"2 80.623 75.664 70.711 65.765 60.828 55.902 50.990 46.098 \n",
"3 80.156 75.166 70.178 65.192 60.208 55.227 50.249 45.277 \n",
"4 80.000 75.000 70.000 65.000 60.000 55.000 50.000 45.000 \n",
"5 80.156 75.166 70.178 65.192 60.208 55.227 50.249 45.277 \n",
"6 80.623 75.664 70.711 65.765 60.828 55.902 50.990 46.098 \n",
"7 81.394 76.485 71.589 66.708 61.847 57.009 52.202 47.434 \n",
"8 82.462 77.621 72.801 68.007 63.246 58.523 53.852 49.244 \n",
"9 83.815 79.057 74.330 69.642 65.000 60.415 55.902 51.478 \n",
"10 85.440 80.777 76.158 71.589 67.082 62.650 58.310 54.083 \n",
"11 87.321 82.765 78.262 73.824 69.462 65.192 61.033 57.009 \n",
"12 89.443 85.000 80.623 76.322 72.111 68.007 64.031 60.208 \n",
"13 91.788 87.464 83.217 79.057 75.000 71.063 67.268 63.640 \n",
"14 94.340 90.139 86.023 82.006 78.102 74.330 70.711 67.268 \n",
"15 97.082 93.005 89.022 85.147 81.394 77.782 74.330 71.063 \n",
"16 100.000 96.047 92.195 88.459 84.853 81.394 78.102 75.000 \n",
"17 103.078 99.247 95.525 91.924 88.459 85.147 82.006 79.057 \n",
"18 106.301 102.591 98.995 95.525 92.195 89.022 86.023 83.217 \n",
"19 109.659 106.066 102.591 99.247 96.047 93.005 90.139 87.464 \n",
"20 113.137 109.659 106.301 103.078 100.000 97.082 94.340 91.788 \n",
"\n",
" 8 9 ... 11 12 13 14 15 16 17 \\\n",
"0 44.721 40.311 ... 32.016 28.284 25.000 22.361 20.616 20.0 20.616 \n",
"1 42.720 38.079 ... 29.155 25.000 21.213 18.028 15.811 15.0 15.811 \n",
"2 41.231 36.401 ... 26.926 22.361 18.028 14.142 11.180 10.0 11.180 \n",
"3 40.311 35.355 ... 25.495 20.616 15.811 11.180 7.071 5.0 7.071 \n",
"4 40.000 35.000 ... 25.000 20.000 15.000 10.000 5.000 0.0 5.000 \n",
"5 40.311 35.355 ... 25.495 20.616 15.811 11.180 7.071 5.0 7.071 \n",
"6 41.231 36.401 ... 26.926 22.361 18.028 14.142 11.180 10.0 11.180 \n",
"7 42.720 38.079 ... 29.155 25.000 21.213 18.028 15.811 15.0 15.811 \n",
"8 44.721 40.311 ... 32.016 28.284 25.000 22.361 20.616 20.0 20.616 \n",
"9 47.170 43.012 ... 35.355 32.016 29.155 26.926 25.495 25.0 25.495 \n",
"10 50.000 46.098 ... 39.051 36.056 33.541 31.623 30.414 30.0 30.414 \n",
"11 53.151 49.497 ... 43.012 40.311 38.079 36.401 35.355 35.0 35.355 \n",
"12 56.569 53.151 ... 47.170 44.721 42.720 41.231 40.311 40.0 40.311 \n",
"13 60.208 57.009 ... 51.478 49.244 47.434 46.098 45.277 45.0 45.277 \n",
"14 64.031 61.033 ... 55.902 53.852 52.202 50.990 50.249 50.0 50.249 \n",
"15 68.007 65.192 ... 60.415 58.523 57.009 55.902 55.227 55.0 55.227 \n",
"16 72.111 69.462 ... 65.000 63.246 61.847 60.828 60.208 60.0 60.208 \n",
"17 76.322 73.824 ... 69.642 68.007 66.708 65.765 65.192 65.0 65.192 \n",
"18 80.623 78.262 ... 74.330 72.801 71.589 70.711 70.178 70.0 70.178 \n",
"19 85.000 82.765 ... 79.057 77.621 76.485 75.664 75.166 75.0 75.166 \n",
"20 89.443 87.321 ... 83.815 82.462 81.394 80.623 80.156 80.0 80.156 \n",
"\n",
" 18 19 20 \n",
"0 22.361 25.000 28.284 \n",
"1 18.028 21.213 25.000 \n",
"2 14.142 18.028 22.361 \n",
"3 11.180 15.811 20.616 \n",
"4 10.000 15.000 20.000 \n",
"5 11.180 15.811 20.616 \n",
"6 14.142 18.028 22.361 \n",
"7 18.028 21.213 25.000 \n",
"8 22.361 25.000 28.284 \n",
"9 26.926 29.155 32.016 \n",
"10 31.623 33.541 36.056 \n",
"11 36.401 38.079 40.311 \n",
"12 41.231 42.720 44.721 \n",
"13 46.098 47.434 49.244 \n",
"14 50.990 52.202 53.852 \n",
"15 55.902 57.009 58.523 \n",
"16 60.828 61.847 63.246 \n",
"17 65.765 66.708 68.007 \n",
"18 70.711 71.589 72.801 \n",
"19 75.664 76.485 77.621 \n",
"20 80.623 81.394 82.462 \n",
"\n",
"[21 rows x 21 columns]"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame(Z).round(3)"
]
},
{
"cell_type": "code",
"execution_count": 102,
"id": "1d40dde1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60,\n",
" 65, 70, 75, 80, 85, 90, 95, 100], dtype=int64),\n",
" array([ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60,\n",
" 65, 70, 75, 80, 85, 90, 95, 100], dtype=int64))"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_unique,Y_unique"
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "b0bd46bd",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\DELL\\AppData\\Local\\Temp\\ipykernel_15896\\3245490763.py:3: DeprecationWarning: `set_matplotlib_formats` is deprecated since IPython 7.23, directly use `matplotlib_inline.backend_inline.set_matplotlib_formats()`\n",
" set_matplotlib_formats('svg')\n"
]
},
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"329.03125pt\" height=\"312.077344pt\" viewBox=\"0 0 329.03125 312.077344\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
" <metadata>\n",
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
" <cc:Work>\n",
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
" <dc:date>2024-02-23T10:45:12.831036</dc:date>\n",
" <dc:format>image/svg+xml</dc:format>\n",
" <dc:creator>\n",
" <cc:Agent>\n",
" <dc:title>Matplotlib v3.7.1, https://matplotlib.org/</dc:title>\n",
" </cc:Agent>\n",
" </dc:creator>\n",
" </cc:Work>\n",
" </rdf:RDF>\n",
" </metadata>\n",
" <defs>\n",
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
" </defs>\n",
" <g id=\"figure_1\">\n",
" <g id=\"patch_1\">\n",
" <path d=\"M -0 312.077344 \n",
"L 329.03125 312.077344 \n",
"L 329.03125 0 \n",
"L -0 0 \n",
"z\n",
"\" style=\"fill: #ffffff\"/>\n",
" </g>\n",
" <g id=\"axes_1\">\n",
" <g id=\"patch_2\">\n",
" <path d=\"M 33.2875 288.199219 \n",
"L 312.2875 288.199219 \n",
"L 312.2875 10.999219 \n",
"L 33.2875 10.999219 \n",
"z\n",
"\" style=\"fill: #ffffff\"/>\n",
" </g>\n",
" <g id=\"matplotlib.axis_1\">\n",
" <g id=\"xtick_1\">\n",
" <g id=\"line2d_1\">\n",
" <defs>\n",
" <path id=\"ma508b7e828\" d=\"M 0 0 \n",
"L 0 3.5 \n",
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </defs>\n",
" <g>\n",
" <use xlink:href=\"#ma508b7e828\" x=\"33.2875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_1\">\n",
" <!-- 0 -->\n",
" <g transform=\"translate(30.10625 302.797656) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
"Q 1547 4250 1301 3770 \n",
"Q 1056 3291 1056 2328 \n",
"Q 1056 1369 1301 889 \n",
"Q 1547 409 2034 409 \n",
"Q 2525 409 2770 889 \n",
"Q 3016 1369 3016 2328 \n",
"Q 3016 3291 2770 3770 \n",
"Q 2525 4250 2034 4250 \n",
"z\n",
"M 2034 4750 \n",
"Q 2819 4750 3233 4129 \n",
"Q 3647 3509 3647 2328 \n",
"Q 3647 1150 3233 529 \n",
"Q 2819 -91 2034 -91 \n",
"Q 1250 -91 836 529 \n",
"Q 422 1150 422 2328 \n",
"Q 422 3509 836 4129 \n",
"Q 1250 4750 2034 4750 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_2\">\n",
" <g id=\"line2d_2\">\n",
" <g>\n",
" <use xlink:href=\"#ma508b7e828\" x=\"89.0875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_2\">\n",
" <!-- 20 -->\n",
" <g transform=\"translate(82.725 302.797656) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
"L 3431 531 \n",
"L 3431 0 \n",
"L 469 0 \n",
"L 469 531 \n",
"Q 828 903 1448 1529 \n",
"Q 2069 2156 2228 2338 \n",
"Q 2531 2678 2651 2914 \n",
"Q 2772 3150 2772 3378 \n",
"Q 2772 3750 2511 3984 \n",
"Q 2250 4219 1831 4219 \n",
"Q 1534 4219 1204 4116 \n",
"Q 875 4013 500 3803 \n",
"L 500 4441 \n",
"Q 881 4594 1212 4672 \n",
"Q 1544 4750 1819 4750 \n",
"Q 2544 4750 2975 4387 \n",
"Q 3406 4025 3406 3419 \n",
"Q 3406 3131 3298 2873 \n",
"Q 3191 2616 2906 2266 \n",
"Q 2828 2175 2409 1742 \n",
"Q 1991 1309 1228 531 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_3\">\n",
" <g id=\"line2d_3\">\n",
" <g>\n",
" <use xlink:href=\"#ma508b7e828\" x=\"144.8875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_3\">\n",
" <!-- 40 -->\n",
" <g transform=\"translate(138.525 302.797656) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
"L 825 1625 \n",
"L 2419 1625 \n",
"L 2419 4116 \n",
"z\n",
"M 2253 4666 \n",
"L 3047 4666 \n",
"L 3047 1625 \n",
"L 3713 1625 \n",
"L 3713 1100 \n",
"L 3047 1100 \n",
"L 3047 0 \n",
"L 2419 0 \n",
"L 2419 1100 \n",
"L 313 1100 \n",
"L 313 1709 \n",
"L 2253 4666 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_4\">\n",
" <g id=\"line2d_4\">\n",
" <g>\n",
" <use xlink:href=\"#ma508b7e828\" x=\"200.6875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_4\">\n",
" <!-- 60 -->\n",
" <g transform=\"translate(194.325 302.797656) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
"Q 1688 2584 1439 2293 \n",
"Q 1191 2003 1191 1497 \n",
"Q 1191 994 1439 701 \n",
"Q 1688 409 2113 409 \n",
"Q 2538 409 2786 701 \n",
"Q 3034 994 3034 1497 \n",
"Q 3034 2003 2786 2293 \n",
"Q 2538 2584 2113 2584 \n",
"z\n",
"M 3366 4563 \n",
"L 3366 3988 \n",
"Q 3128 4100 2886 4159 \n",
"Q 2644 4219 2406 4219 \n",
"Q 1781 4219 1451 3797 \n",
"Q 1122 3375 1075 2522 \n",
"Q 1259 2794 1537 2939 \n",
"Q 1816 3084 2150 3084 \n",
"Q 2853 3084 3261 2657 \n",
"Q 3669 2231 3669 1497 \n",
"Q 3669 778 3244 343 \n",
"Q 2819 -91 2113 -91 \n",
"Q 1303 -91 875 529 \n",
"Q 447 1150 447 2328 \n",
"Q 447 3434 972 4092 \n",
"Q 1497 4750 2381 4750 \n",
"Q 2619 4750 2861 4703 \n",
"Q 3103 4656 3366 4563 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_5\">\n",
" <g id=\"line2d_5\">\n",
" <g>\n",
" <use xlink:href=\"#ma508b7e828\" x=\"256.4875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_5\">\n",
" <!-- 80 -->\n",
" <g transform=\"translate(250.125 302.797656) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-38\" d=\"M 2034 2216 \n",
"Q 1584 2216 1326 1975 \n",
"Q 1069 1734 1069 1313 \n",
"Q 1069 891 1326 650 \n",
"Q 1584 409 2034 409 \n",
"Q 2484 409 2743 651 \n",
"Q 3003 894 3003 1313 \n",
"Q 3003 1734 2745 1975 \n",
"Q 2488 2216 2034 2216 \n",
"z\n",
"M 1403 2484 \n",
"Q 997 2584 770 2862 \n",
"Q 544 3141 544 3541 \n",
"Q 544 4100 942 4425 \n",
"Q 1341 4750 2034 4750 \n",
"Q 2731 4750 3128 4425 \n",
"Q 3525 4100 3525 3541 \n",
"Q 3525 3141 3298 2862 \n",
"Q 3072 2584 2669 2484 \n",
"Q 3125 2378 3379 2068 \n",
"Q 3634 1759 3634 1313 \n",
"Q 3634 634 3220 271 \n",
"Q 2806 -91 2034 -91 \n",
"Q 1263 -91 848 271 \n",
"Q 434 634 434 1313 \n",
"Q 434 1759 690 2068 \n",
"Q 947 2378 1403 2484 \n",
"z\n",
"M 1172 3481 \n",
"Q 1172 3119 1398 2916 \n",
"Q 1625 2713 2034 2713 \n",
"Q 2441 2713 2670 2916 \n",
"Q 2900 3119 2900 3481 \n",
"Q 2900 3844 2670 4047 \n",
"Q 2441 4250 2034 4250 \n",
"Q 1625 4250 1398 4047 \n",
"Q 1172 3844 1172 3481 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_6\">\n",
" <g id=\"line2d_6\">\n",
" <g>\n",
" <use xlink:href=\"#ma508b7e828\" x=\"312.2875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_6\">\n",
" <!-- 100 -->\n",
" <g transform=\"translate(302.74375 302.797656) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
"L 1825 531 \n",
"L 1825 4091 \n",
"L 703 3866 \n",
"L 703 4441 \n",
"L 1819 4666 \n",
"L 2450 4666 \n",
"L 2450 531 \n",
"L 3481 531 \n",
"L 3481 0 \n",
"L 794 0 \n",
"L 794 531 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"matplotlib.axis_2\">\n",
" <g id=\"ytick_1\">\n",
" <g id=\"line2d_7\">\n",
" <defs>\n",
" <path id=\"m62e59dc7f6\" d=\"M 0 0 \n",
"L -3.5 0 \n",
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </defs>\n",
" <g>\n",
" <use xlink:href=\"#m62e59dc7f6\" x=\"33.2875\" y=\"288.199219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_7\">\n",
" <!-- 0 -->\n",
" <g transform=\"translate(19.925 291.998438) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_2\">\n",
" <g id=\"line2d_8\">\n",
" <g>\n",
" <use xlink:href=\"#m62e59dc7f6\" x=\"33.2875\" y=\"232.759219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_8\">\n",
" <!-- 20 -->\n",
" <g transform=\"translate(13.5625 236.558438) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-32\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_3\">\n",
" <g id=\"line2d_9\">\n",
" <g>\n",
" <use xlink:href=\"#m62e59dc7f6\" x=\"33.2875\" y=\"177.319219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_9\">\n",
" <!-- 40 -->\n",
" <g transform=\"translate(13.5625 181.118438) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-34\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_4\">\n",
" <g id=\"line2d_10\">\n",
" <g>\n",
" <use xlink:href=\"#m62e59dc7f6\" x=\"33.2875\" y=\"121.879219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_10\">\n",
" <!-- 60 -->\n",
" <g transform=\"translate(13.5625 125.678438) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-36\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_5\">\n",
" <g id=\"line2d_11\">\n",
" <g>\n",
" <use xlink:href=\"#m62e59dc7f6\" x=\"33.2875\" y=\"66.439219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_11\">\n",
" <!-- 80 -->\n",
" <g transform=\"translate(13.5625 70.238438) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-38\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_6\">\n",
" <g id=\"line2d_12\">\n",
" <g>\n",
" <use xlink:href=\"#m62e59dc7f6\" x=\"33.2875\" y=\"10.999219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_12\">\n",
" <!-- 100 -->\n",
" <g transform=\"translate(7.2 14.798438) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"PathCollection_1\">\n",
" <path d=\"M 256.4875 232.759219 \n",
"L 256.4875 232.759219 \n",
"L 256.4875 232.759219 \n",
"L 256.4875 232.759219 \n",
"L 256.4875 232.759219 \n",
"z\n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #440154; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_2\">\n",
" <path d=\"M 256.4875 274.339219 \n",
"L 256.4875 274.339219 \n",
"L 242.5375 271.910861 \n",
"L 228.5875 263.539219 \n",
"L 225.50763 260.479219 \n",
"L 217.081626 246.619219 \n",
"L 214.6375 232.759219 \n",
"L 214.6375 232.759219 \n",
"L 214.6375 232.759219 \n",
"L 217.081626 218.899219 \n",
"L 225.50763 205.039219 \n",
"L 228.5875 201.979219 \n",
"L 242.5375 193.607576 \n",
"L 256.4875 191.179219 \n",
"L 256.4875 191.179219 \n",
"L 256.4875 191.179219 \n",
"L 270.4375 193.607576 \n",
"L 284.3875 201.979219 \n",
"L 287.46737 205.039219 \n",
"L 295.893374 218.899219 \n",
"L 298.3375 232.759219 \n",
"L 298.3375 232.759219 \n",
"L 298.3375 232.759219 \n",
"L 295.893374 246.619219 \n",
"L 287.46737 260.479219 \n",
"L 284.3875 263.539219 \n",
"L 270.4375 271.910861 \n",
"L 256.4875 274.339219 \n",
"L 256.4875 274.339219 \n",
"z\n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #472d7b; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_3\">\n",
" <path d=\"M 194.273088 288.199219 \n",
"L 186.7375 278.434151 \n",
"L 184.049309 274.339219 \n",
"L 177.607164 260.479219 \n",
"L 173.961117 246.619219 \n",
"L 172.7875 232.759219 \n",
"L 172.7875 232.759219 \n",
"L 172.7875 232.759219 \n",
"L 173.961117 218.899219 \n",
"L 177.607164 205.039219 \n",
"L 184.049309 191.179219 \n",
"L 186.7375 187.084287 \n",
"L 194.273088 177.319219 \n",
"L 200.6875 170.94619 \n",
"L 210.515978 163.459219 \n",
"L 214.6375 160.788371 \n",
"L 228.5875 154.387788 \n",
"L 242.5375 150.765264 \n",
"L 256.4875 149.599219 \n",
"L 256.4875 149.599219 \n",
"L 256.4875 149.599219 \n",
"L 270.4375 150.765264 \n",
"L 284.3875 154.387788 \n",
"L 298.3375 160.788371 \n",
"L 302.459022 163.459219 \n",
"L 312.2875 170.94619 \n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #3b528b; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_4\">\n",
" <path d=\"M 144.028094 288.199219 \n",
"L 138.140628 274.339219 \n",
"L 134.084054 260.479219 \n",
"L 131.715469 246.619219 \n",
"L 130.9375 232.759219 \n",
"L 130.9375 232.759219 \n",
"L 130.9375 232.759219 \n",
"L 131.715469 218.899219 \n",
"L 134.084054 205.039219 \n",
"L 138.140628 191.179219 \n",
"L 144.028094 177.319219 \n",
"L 144.8875 175.741974 \n",
"L 152.166998 163.459219 \n",
"L 158.8375 154.529212 \n",
"L 163.008546 149.599219 \n",
"L 172.7875 139.883355 \n",
"L 177.749506 135.739219 \n",
"L 186.7375 129.111752 \n",
"L 199.100013 121.879219 \n",
"L 200.6875 121.025357 \n",
"L 214.6375 115.175875 \n",
"L 228.5875 111.145472 \n",
"L 242.5375 108.792169 \n",
"L 256.4875 108.019219 \n",
"L 256.4875 108.019219 \n",
"L 256.4875 108.019219 \n",
"L 270.4375 108.792169 \n",
"L 284.3875 111.145472 \n",
"L 298.3375 115.175875 \n",
"L 312.2875 121.025357 \n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #2c728e; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_5\">\n",
" <path d=\"M 98.675588 288.199219 \n",
"L 94.412189 274.339219 \n",
"L 91.431298 260.479219 \n",
"L 89.669938 246.619219 \n",
"L 89.0875 232.759219 \n",
"L 89.0875 232.759219 \n",
"L 89.0875 232.759219 \n",
"L 89.669938 218.899219 \n",
"L 91.431298 205.039219 \n",
"L 94.412189 191.179219 \n",
"L 98.675588 177.319219 \n",
"L 103.0375 166.501453 \n",
"L 104.320854 163.459219 \n",
"L 111.554188 149.599219 \n",
"L 116.9875 140.995532 \n",
"L 120.567825 135.739219 \n",
"L 130.9375 122.780226 \n",
"L 131.734664 121.879219 \n",
"L 144.8875 108.811239 \n",
"L 145.794358 108.019219 \n",
"L 158.8375 97.716445 \n",
"L 164.127946 94.159219 \n",
"L 172.7875 88.760961 \n",
"L 186.7375 81.574293 \n",
"L 189.799489 80.299219 \n",
"L 200.6875 75.965448 \n",
"L 214.6375 71.729555 \n",
"L 228.5875 68.767895 \n",
"L 242.5375 67.017899 \n",
"L 256.4875 66.439219 \n",
"L 256.4875 66.439219 \n",
"L 256.4875 66.439219 \n",
"L 270.4375 67.017899 \n",
"L 284.3875 68.767895 \n",
"L 298.3375 71.729555 \n",
"L 312.2875 75.965448 \n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #21918c; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_6\">\n",
" <path d=\"M 54.823163 288.199219 \n",
"L 51.46933 274.339219 \n",
"L 49.106859 260.479219 \n",
"L 47.703089 246.619219 \n",
"L 47.2375 232.759219 \n",
"L 47.2375 232.759219 \n",
"L 47.2375 232.759219 \n",
"L 47.703089 218.899219 \n",
"L 49.106859 205.039219 \n",
"L 51.46933 191.179219 \n",
"L 54.823163 177.319219 \n",
"L 59.211088 163.459219 \n",
"L 61.1875 158.380145 \n",
"L 64.722556 149.599219 \n",
"L 71.441552 135.739219 \n",
"L 75.1375 129.213777 \n",
"L 79.516275 121.879219 \n",
"L 89.0875 108.019219 \n",
"L 89.0875 108.019219 \n",
"L 100.561009 94.159219 \n",
"L 103.0375 91.47004 \n",
"L 114.28086 80.299219 \n",
"L 116.9875 77.838705 \n",
"L 130.9375 66.439219 \n",
"L 130.9375 66.439219 \n",
"L 144.8875 56.929744 \n",
"L 152.269686 52.579219 \n",
"L 158.8375 48.907116 \n",
"L 172.7875 42.231468 \n",
"L 181.625445 38.719219 \n",
"L 186.7375 36.755558 \n",
"L 200.6875 32.395942 \n",
"L 214.6375 29.063747 \n",
"L 228.5875 26.716517 \n",
"L 242.5375 25.321804 \n",
"L 256.4875 24.859219 \n",
"L 256.4875 24.859219 \n",
"L 256.4875 24.859219 \n",
"L 270.4375 25.321804 \n",
"L 284.3875 26.716517 \n",
"L 298.3375 29.063747 \n",
"L 312.2875 32.395942 \n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #28ae80; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_7\">\n",
" <path d=\"M 33.2875 118.585551 \n",
"L 39.0559 108.019219 \n",
"L 47.2375 94.878424 \n",
"L 47.707915 94.159219 \n",
"L 57.76373 80.299219 \n",
"L 61.1875 76.029227 \n",
"L 69.384249 66.439219 \n",
"L 75.1375 60.275075 \n",
"L 82.883329 52.579219 \n",
"L 89.0875 46.863085 \n",
"L 98.739781 38.719219 \n",
"L 103.0375 35.317538 \n",
"L 116.9875 25.326599 \n",
"L 117.711375 24.859219 \n",
"L 130.9375 16.730403 \n",
"L 141.572445 10.999219 \n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #5ec962; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_8\">\n",
" <path d=\"M 33.2875 44.314514 \n",
"L 38.181076 38.719219 \n",
"L 47.2375 29.111513 \n",
"L 51.517406 24.859219 \n",
"L 61.1875 15.861223 \n",
"L 66.819128 10.999219 \n",
"\" clip-path=\"url(#p4e642c08b5)\" style=\"fill: none; stroke: #addc30; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_9\"/>\n",
" <g id=\"patch_3\">\n",
" <path d=\"M 33.2875 288.199219 \n",
"L 33.2875 10.999219 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" <g id=\"patch_4\">\n",
" <path d=\"M 312.2875 288.199219 \n",
"L 312.2875 10.999219 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" <g id=\"patch_5\">\n",
" <path d=\"M 33.2875 288.199219 \n",
"L 312.2875 288.199219 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" <g id=\"patch_6\">\n",
" <path d=\"M 33.2875 10.999219 \n",
"L 312.2875 10.999219 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <defs>\n",
" <clipPath id=\"p4e642c08b5\">\n",
" <rect x=\"33.2875\" y=\"10.999219\" width=\"279\" height=\"277.2\"/>\n",
" </clipPath>\n",
" </defs>\n",
"</svg>\n"
],
"text/plain": [
"<Figure size 500x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from IPython.display import set_matplotlib_formats\n",
"%matplotlib inline\n",
"set_matplotlib_formats('svg')\n",
"\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import rcParams\n",
"\n",
"\n",
"# Initialize plot objects\n",
"rcParams['figure.figsize'] = 5, 5 # sets plot size\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"\n",
"# Generate a contour plot\n",
"cp = ax.contour(X, Y, Z)"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "c9958840",
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"329.98125pt\" height=\"321.95625pt\" viewBox=\"0 0 329.98125 321.95625\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
" <metadata>\n",
" <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
" <cc:Work>\n",
" <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
" <dc:date>2024-02-23T10:45:26.047765</dc:date>\n",
" <dc:format>image/svg+xml</dc:format>\n",
" <dc:creator>\n",
" <cc:Agent>\n",
" <dc:title>Matplotlib v3.7.1, https://matplotlib.org/</dc:title>\n",
" </cc:Agent>\n",
" </dc:creator>\n",
" </cc:Work>\n",
" </rdf:RDF>\n",
" </metadata>\n",
" <defs>\n",
" <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
" </defs>\n",
" <g id=\"figure_1\">\n",
" <g id=\"patch_1\">\n",
" <path d=\"M 0 321.95625 \n",
"L 329.98125 321.95625 \n",
"L 329.98125 0 \n",
"L 0 0 \n",
"z\n",
"\" style=\"fill: #ffffff\"/>\n",
" </g>\n",
" <g id=\"axes_1\">\n",
" <g id=\"patch_2\">\n",
" <path d=\"M 43.78125 284.4 \n",
"L 322.78125 284.4 \n",
"L 322.78125 7.2 \n",
"L 43.78125 7.2 \n",
"z\n",
"\" style=\"fill: #ffffff\"/>\n",
" </g>\n",
" <g id=\"PathCollection_1\">\n",
" <path d=\"M 239.08125 276.848742 \n",
"L 253.03125 282.624194 \n",
"L 266.98125 284.4 \n",
"L 266.98125 284.4 \n",
"L 266.98125 284.4 \n",
"L 280.93125 282.624194 \n",
"L 294.88125 276.848742 \n",
"L 303.518279 270.54 \n",
"L 308.83125 265.261306 \n",
"L 315.180958 256.68 \n",
"L 320.993913 242.82 \n",
"L 322.78125 228.96 \n",
"L 322.78125 228.96 \n",
"L 322.78125 228.96 \n",
"L 320.993913 215.1 \n",
"L 315.180958 201.24 \n",
"L 308.83125 192.658694 \n",
"L 303.518279 187.38 \n",
"L 294.88125 181.071258 \n",
"L 280.93125 175.295806 \n",
"L 266.98125 173.52 \n",
"L 266.98125 173.52 \n",
"L 266.98125 173.52 \n",
"L 253.03125 175.295806 \n",
"L 239.08125 181.071258 \n",
"L 230.444221 187.38 \n",
"L 225.13125 192.658694 \n",
"L 218.781542 201.24 \n",
"L 212.968587 215.1 \n",
"L 211.18125 228.96 \n",
"L 211.18125 228.96 \n",
"L 211.18125 228.96 \n",
"L 212.968587 242.82 \n",
"L 218.781542 256.68 \n",
"L 225.13125 265.261306 \n",
"L 230.444221 270.54 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #fee7dc\"/>\n",
" </g>\n",
" <g id=\"PathCollection_2\">\n",
" <path d=\"M 169.33125 282.467364 \n",
"L 170.351623 284.4 \n",
"L 183.28125 284.4 \n",
"L 197.23125 284.4 \n",
"L 211.18125 284.4 \n",
"L 225.13125 284.4 \n",
"L 239.08125 284.4 \n",
"L 253.03125 284.4 \n",
"L 266.98125 284.4 \n",
"L 253.03125 282.624194 \n",
"L 239.08125 276.848742 \n",
"L 230.444221 270.54 \n",
"L 225.13125 265.261306 \n",
"L 218.781542 256.68 \n",
"L 212.968587 242.82 \n",
"L 211.18125 228.96 \n",
"L 211.18125 228.96 \n",
"L 211.18125 228.96 \n",
"L 212.968587 215.1 \n",
"L 218.781542 201.24 \n",
"L 225.13125 192.658694 \n",
"L 230.444221 187.38 \n",
"L 239.08125 181.071258 \n",
"L 253.03125 175.295806 \n",
"L 266.98125 173.52 \n",
"L 266.98125 173.52 \n",
"L 266.98125 173.52 \n",
"L 280.93125 175.295806 \n",
"L 294.88125 181.071258 \n",
"L 303.518279 187.38 \n",
"L 308.83125 192.658694 \n",
"L 315.180958 201.24 \n",
"L 320.993913 215.1 \n",
"L 322.78125 228.96 \n",
"L 322.78125 215.1 \n",
"L 322.78125 201.24 \n",
"L 322.78125 187.38 \n",
"L 322.78125 173.52 \n",
"L 322.78125 159.66 \n",
"L 322.78125 145.8 \n",
"L 322.78125 132.95379 \n",
"L 320.836064 131.94 \n",
"L 308.83125 126.202865 \n",
"L 294.88125 121.612226 \n",
"L 280.93125 118.950562 \n",
"L 266.98125 118.08 \n",
"L 266.98125 118.08 \n",
"L 266.98125 118.08 \n",
"L 253.03125 118.950562 \n",
"L 239.08125 121.612226 \n",
"L 225.13125 126.202865 \n",
"L 213.126436 131.94 \n",
"L 211.18125 132.95379 \n",
"L 197.23125 142.479686 \n",
"L 193.309927 145.8 \n",
"L 183.28125 155.763976 \n",
"L 179.939376 159.66 \n",
"L 170.351623 173.52 \n",
"L 169.33125 175.452636 \n",
"L 163.556861 187.38 \n",
"L 158.936412 201.24 \n",
"L 156.257465 215.1 \n",
"L 155.38125 228.96 \n",
"L 155.38125 228.96 \n",
"L 155.38125 228.96 \n",
"L 156.257465 242.82 \n",
"L 158.936412 256.68 \n",
"L 163.556861 270.54 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #fcbba1\"/>\n",
" <path d=\"M 280.93125 284.4 \n",
"L 294.88125 284.4 \n",
"L 308.83125 284.4 \n",
"L 322.78125 284.4 \n",
"L 322.78125 270.54 \n",
"L 322.78125 256.68 \n",
"L 322.78125 242.82 \n",
"L 322.78125 228.96 \n",
"L 320.993913 242.82 \n",
"L 315.180958 256.68 \n",
"L 308.83125 265.261306 \n",
"L 303.518279 270.54 \n",
"L 294.88125 276.848742 \n",
"L 280.93125 282.624194 \n",
"L 266.98125 284.4 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #fcbba1\"/>\n",
" </g>\n",
" <g id=\"PathCollection_3\">\n",
" <path d=\"M 113.53125 284.4 \n",
"L 127.48125 284.4 \n",
"L 141.43125 284.4 \n",
"L 155.38125 284.4 \n",
"L 169.33125 284.4 \n",
"L 170.351623 284.4 \n",
"L 169.33125 282.467364 \n",
"L 163.556861 270.54 \n",
"L 158.936412 256.68 \n",
"L 156.257465 242.82 \n",
"L 155.38125 228.96 \n",
"L 155.38125 228.96 \n",
"L 155.38125 228.96 \n",
"L 156.257465 215.1 \n",
"L 158.936412 201.24 \n",
"L 163.556861 187.38 \n",
"L 169.33125 175.452636 \n",
"L 170.351623 173.52 \n",
"L 179.939376 159.66 \n",
"L 183.28125 155.763976 \n",
"L 193.309927 145.8 \n",
"L 197.23125 142.479686 \n",
"L 211.18125 132.95379 \n",
"L 213.126436 131.94 \n",
"L 225.13125 126.202865 \n",
"L 239.08125 121.612226 \n",
"L 253.03125 118.950562 \n",
"L 266.98125 118.08 \n",
"L 266.98125 118.08 \n",
"L 266.98125 118.08 \n",
"L 280.93125 118.950562 \n",
"L 294.88125 121.612226 \n",
"L 308.83125 126.202865 \n",
"L 320.836064 131.94 \n",
"L 322.78125 132.95379 \n",
"L 322.78125 131.94 \n",
"L 322.78125 118.08 \n",
"L 322.78125 104.22 \n",
"L 322.78125 90.36 \n",
"L 322.78125 76.5 \n",
"L 322.78125 72.16623 \n",
"L 308.83125 67.930337 \n",
"L 294.88125 64.968676 \n",
"L 280.93125 63.21868 \n",
"L 266.98125 62.64 \n",
"L 266.98125 62.64 \n",
"L 266.98125 62.64 \n",
"L 253.03125 63.21868 \n",
"L 239.08125 64.968676 \n",
"L 225.13125 67.930337 \n",
"L 211.18125 72.16623 \n",
"L 200.293239 76.5 \n",
"L 197.23125 77.775074 \n",
"L 183.28125 84.961742 \n",
"L 174.621696 90.36 \n",
"L 169.33125 93.917227 \n",
"L 156.288108 104.22 \n",
"L 155.38125 105.012021 \n",
"L 142.228414 118.08 \n",
"L 141.43125 118.981007 \n",
"L 131.061575 131.94 \n",
"L 127.48125 137.196314 \n",
"L 122.047938 145.8 \n",
"L 114.814604 159.66 \n",
"L 113.53125 162.702234 \n",
"L 109.169338 173.52 \n",
"L 104.905939 187.38 \n",
"L 101.925048 201.24 \n",
"L 100.163688 215.1 \n",
"L 99.58125 228.96 \n",
"L 99.58125 228.96 \n",
"L 99.58125 228.96 \n",
"L 100.163688 242.82 \n",
"L 101.925048 256.68 \n",
"L 104.905939 270.54 \n",
"L 109.169338 284.4 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #fc8565\"/>\n",
" </g>\n",
" <g id=\"PathCollection_4\">\n",
" <path d=\"M 57.73125 284.4 \n",
"L 71.68125 284.4 \n",
"L 85.63125 284.4 \n",
"L 99.58125 284.4 \n",
"L 109.169338 284.4 \n",
"L 104.905939 270.54 \n",
"L 101.925048 256.68 \n",
"L 100.163688 242.82 \n",
"L 99.58125 228.96 \n",
"L 99.58125 228.96 \n",
"L 99.58125 228.96 \n",
"L 100.163688 215.1 \n",
"L 101.925048 201.24 \n",
"L 104.905939 187.38 \n",
"L 109.169338 173.52 \n",
"L 113.53125 162.702234 \n",
"L 114.814604 159.66 \n",
"L 122.047938 145.8 \n",
"L 127.48125 137.196314 \n",
"L 131.061575 131.94 \n",
"L 141.43125 118.981007 \n",
"L 142.228414 118.08 \n",
"L 155.38125 105.012021 \n",
"L 156.288108 104.22 \n",
"L 169.33125 93.917227 \n",
"L 174.621696 90.36 \n",
"L 183.28125 84.961742 \n",
"L 197.23125 77.775074 \n",
"L 200.293239 76.5 \n",
"L 211.18125 72.16623 \n",
"L 225.13125 67.930337 \n",
"L 239.08125 64.968676 \n",
"L 253.03125 63.21868 \n",
"L 266.98125 62.64 \n",
"L 266.98125 62.64 \n",
"L 266.98125 62.64 \n",
"L 280.93125 63.21868 \n",
"L 294.88125 64.968676 \n",
"L 308.83125 67.930337 \n",
"L 322.78125 72.16623 \n",
"L 322.78125 62.64 \n",
"L 322.78125 48.78 \n",
"L 322.78125 34.92 \n",
"L 322.78125 21.06 \n",
"L 322.78125 14.24879 \n",
"L 308.83125 11.136242 \n",
"L 294.88125 8.940107 \n",
"L 280.93125 7.633603 \n",
"L 266.98125 7.2 \n",
"L 266.98125 7.2 \n",
"L 266.98125 7.2 \n",
"L 253.03125 7.633603 \n",
"L 239.08125 8.940107 \n",
"L 225.13125 11.136242 \n",
"L 211.18125 14.24879 \n",
"L 197.23125 18.313073 \n",
"L 189.584966 21.06 \n",
"L 183.28125 23.392547 \n",
"L 169.33125 29.570918 \n",
"L 159.061007 34.92 \n",
"L 155.38125 36.926311 \n",
"L 141.43125 45.637714 \n",
"L 136.970426 48.78 \n",
"L 127.48125 55.902785 \n",
"L 119.439532 62.64 \n",
"L 113.53125 67.988936 \n",
"L 104.96492 76.5 \n",
"L 99.58125 82.370164 \n",
"L 92.800287 90.36 \n",
"L 85.63125 99.787955 \n",
"L 82.468559 104.22 \n",
"L 73.700589 118.08 \n",
"L 71.68125 121.736017 \n",
"L 66.297434 131.94 \n",
"L 60.078943 145.8 \n",
"L 57.73125 152.063047 \n",
"L 54.966486 159.66 \n",
"L 50.875812 173.52 \n",
"L 47.743052 187.38 \n",
"L 45.532656 201.24 \n",
"L 44.217669 215.1 \n",
"L 43.78125 228.96 \n",
"L 43.78125 228.96 \n",
"L 43.78125 228.96 \n",
"L 44.217669 242.82 \n",
"L 45.532656 256.68 \n",
"L 47.743052 270.54 \n",
"L 50.875812 284.4 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #f34a36\"/>\n",
" </g>\n",
" <g id=\"PathCollection_5\">\n",
" <path d=\"M 47.743052 270.54 \n",
"L 45.532656 256.68 \n",
"L 44.217669 242.82 \n",
"L 43.78125 228.96 \n",
"L 43.78125 242.82 \n",
"L 43.78125 256.68 \n",
"L 43.78125 270.54 \n",
"L 43.78125 284.4 \n",
"L 50.875812 284.4 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #ca181d\"/>\n",
" <path d=\"M 44.217669 215.1 \n",
"L 45.532656 201.24 \n",
"L 47.743052 187.38 \n",
"L 50.875812 173.52 \n",
"L 54.966486 159.66 \n",
"L 57.73125 152.063047 \n",
"L 60.078943 145.8 \n",
"L 66.297434 131.94 \n",
"L 71.68125 121.736017 \n",
"L 73.700589 118.08 \n",
"L 82.468559 104.22 \n",
"L 85.63125 99.787955 \n",
"L 92.800287 90.36 \n",
"L 99.58125 82.370164 \n",
"L 104.96492 76.5 \n",
"L 113.53125 67.988936 \n",
"L 119.439532 62.64 \n",
"L 127.48125 55.902785 \n",
"L 136.970426 48.78 \n",
"L 141.43125 45.637714 \n",
"L 155.38125 36.926311 \n",
"L 159.061007 34.92 \n",
"L 169.33125 29.570918 \n",
"L 183.28125 23.392547 \n",
"L 189.584966 21.06 \n",
"L 197.23125 18.313073 \n",
"L 211.18125 14.24879 \n",
"L 225.13125 11.136242 \n",
"L 239.08125 8.940107 \n",
"L 253.03125 7.633603 \n",
"L 266.98125 7.2 \n",
"L 253.03125 7.2 \n",
"L 239.08125 7.2 \n",
"L 225.13125 7.2 \n",
"L 211.18125 7.2 \n",
"L 197.23125 7.2 \n",
"L 183.28125 7.2 \n",
"L 169.33125 7.2 \n",
"L 155.38125 7.2 \n",
"L 141.43125 7.2 \n",
"L 127.48125 7.2 \n",
"L 113.53125 7.2 \n",
"L 99.58125 7.2 \n",
"L 99.58125 7.2 \n",
"L 85.63125 18.335983 \n",
"L 82.490931 21.06 \n",
"L 71.68125 31.046761 \n",
"L 67.78286 34.92 \n",
"L 57.73125 45.659941 \n",
"L 54.989545 48.78 \n",
"L 43.78125 62.64 \n",
"L 43.78125 62.64 \n",
"L 43.78125 76.5 \n",
"L 43.78125 90.36 \n",
"L 43.78125 104.22 \n",
"L 43.78125 118.08 \n",
"L 43.78125 131.94 \n",
"L 43.78125 145.8 \n",
"L 43.78125 159.66 \n",
"L 43.78125 173.52 \n",
"L 43.78125 187.38 \n",
"L 43.78125 201.24 \n",
"L 43.78125 215.1 \n",
"L 43.78125 228.96 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #ca181d\"/>\n",
" <path d=\"M 280.93125 7.633603 \n",
"L 294.88125 8.940107 \n",
"L 308.83125 11.136242 \n",
"L 322.78125 14.24879 \n",
"L 322.78125 7.2 \n",
"L 308.83125 7.2 \n",
"L 294.88125 7.2 \n",
"L 280.93125 7.2 \n",
"L 266.98125 7.2 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #ca181d\"/>\n",
" </g>\n",
" <g id=\"PathCollection_6\">\n",
" <path d=\"M 54.989545 48.78 \n",
"L 57.73125 45.659941 \n",
"L 67.78286 34.92 \n",
"L 71.68125 31.046761 \n",
"L 82.490931 21.06 \n",
"L 85.63125 18.335983 \n",
"L 99.58125 7.2 \n",
"L 85.63125 7.2 \n",
"L 71.68125 7.2 \n",
"L 57.73125 7.2 \n",
"L 43.78125 7.2 \n",
"L 43.78125 21.06 \n",
"L 43.78125 34.92 \n",
"L 43.78125 48.78 \n",
"L 43.78125 62.64 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: #900a12\"/>\n",
" </g>\n",
" <g id=\"matplotlib.axis_1\">\n",
" <g id=\"xtick_1\">\n",
" <g id=\"line2d_1\">\n",
" <defs>\n",
" <path id=\"m48dc49ce09\" d=\"M 0 0 \n",
"L 0 3.5 \n",
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </defs>\n",
" <g>\n",
" <use xlink:href=\"#m48dc49ce09\" x=\"43.78125\" y=\"284.4\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_1\">\n",
" <!-- 0.0 -->\n",
" <g transform=\"translate(35.829688 298.998438) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
"Q 1547 4250 1301 3770 \n",
"Q 1056 3291 1056 2328 \n",
"Q 1056 1369 1301 889 \n",
"Q 1547 409 2034 409 \n",
"Q 2525 409 2770 889 \n",
"Q 3016 1369 3016 2328 \n",
"Q 3016 3291 2770 3770 \n",
"Q 2525 4250 2034 4250 \n",
"z\n",
"M 2034 4750 \n",
"Q 2819 4750 3233 4129 \n",
"Q 3647 3509 3647 2328 \n",
"Q 3647 1150 3233 529 \n",
"Q 2819 -91 2034 -91 \n",
"Q 1250 -91 836 529 \n",
"Q 422 1150 422 2328 \n",
"Q 422 3509 836 4129 \n",
"Q 1250 4750 2034 4750 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
"L 1344 794 \n",
"L 1344 0 \n",
"L 684 0 \n",
"L 684 794 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_2\">\n",
" <g id=\"line2d_2\">\n",
" <g>\n",
" <use xlink:href=\"#m48dc49ce09\" x=\"45.17625\" y=\"284.4\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_2\">\n",
" <!-- 0.5 -->\n",
" <g transform=\"translate(37.224688 298.998438) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
"L 3169 4666 \n",
"L 3169 4134 \n",
"L 1269 4134 \n",
"L 1269 2991 \n",
"Q 1406 3038 1543 3061 \n",
"Q 1681 3084 1819 3084 \n",
"Q 2600 3084 3056 2656 \n",
"Q 3513 2228 3513 1497 \n",
"Q 3513 744 3044 326 \n",
"Q 2575 -91 1722 -91 \n",
"Q 1428 -91 1123 -41 \n",
"Q 819 9 494 109 \n",
"L 494 744 \n",
"Q 775 591 1075 516 \n",
"Q 1375 441 1709 441 \n",
"Q 2250 441 2565 725 \n",
"Q 2881 1009 2881 1497 \n",
"Q 2881 1984 2565 2268 \n",
"Q 2250 2553 1709 2553 \n",
"Q 1456 2553 1204 2497 \n",
"Q 953 2441 691 2322 \n",
"L 691 4666 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"xtick_3\">\n",
" <g id=\"line2d_3\">\n",
" <g>\n",
" <use xlink:href=\"#m48dc49ce09\" x=\"46.57125\" y=\"284.4\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_3\">\n",
" <!-- 1.0 -->\n",
" <g transform=\"translate(38.619688 298.998438) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
"L 1825 531 \n",
"L 1825 4091 \n",
"L 703 3866 \n",
"L 703 4441 \n",
"L 1819 4666 \n",
"L 2450 4666 \n",
"L 2450 531 \n",
"L 3481 531 \n",
"L 3481 0 \n",
"L 794 0 \n",
"L 794 531 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_4\">\n",
" <!-- X-axis -->\n",
" <g transform=\"translate(168.285156 312.676562) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-58\" d=\"M 403 4666 \n",
"L 1081 4666 \n",
"L 2241 2931 \n",
"L 3406 4666 \n",
"L 4084 4666 \n",
"L 2584 2425 \n",
"L 4184 0 \n",
"L 3506 0 \n",
"L 2194 1984 \n",
"L 872 0 \n",
"L 191 0 \n",
"L 1856 2491 \n",
"L 403 4666 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"DejaVuSans-2d\" d=\"M 313 2009 \n",
"L 1997 2009 \n",
"L 1997 1497 \n",
"L 313 1497 \n",
"L 313 2009 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
"Q 1497 1759 1228 1600 \n",
"Q 959 1441 959 1056 \n",
"Q 959 750 1161 570 \n",
"Q 1363 391 1709 391 \n",
"Q 2188 391 2477 730 \n",
"Q 2766 1069 2766 1631 \n",
"L 2766 1759 \n",
"L 2194 1759 \n",
"z\n",
"M 3341 1997 \n",
"L 3341 0 \n",
"L 2766 0 \n",
"L 2766 531 \n",
"Q 2569 213 2275 61 \n",
"Q 1981 -91 1556 -91 \n",
"Q 1019 -91 701 211 \n",
"Q 384 513 384 1019 \n",
"Q 384 1609 779 1909 \n",
"Q 1175 2209 1959 2209 \n",
"L 2766 2209 \n",
"L 2766 2266 \n",
"Q 2766 2663 2505 2880 \n",
"Q 2244 3097 1772 3097 \n",
"Q 1472 3097 1187 3025 \n",
"Q 903 2953 641 2809 \n",
"L 641 3341 \n",
"Q 956 3463 1253 3523 \n",
"Q 1550 3584 1831 3584 \n",
"Q 2591 3584 2966 3190 \n",
"Q 3341 2797 3341 1997 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"DejaVuSans-78\" d=\"M 3513 3500 \n",
"L 2247 1797 \n",
"L 3578 0 \n",
"L 2900 0 \n",
"L 1881 1375 \n",
"L 863 0 \n",
"L 184 0 \n",
"L 1544 1831 \n",
"L 300 3500 \n",
"L 978 3500 \n",
"L 1906 2253 \n",
"L 2834 3500 \n",
"L 3513 3500 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
"L 1178 3500 \n",
"L 1178 0 \n",
"L 603 0 \n",
"L 603 3500 \n",
"z\n",
"M 603 4863 \n",
"L 1178 4863 \n",
"L 1178 4134 \n",
"L 603 4134 \n",
"L 603 4863 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
"L 2834 2853 \n",
"Q 2591 2978 2328 3040 \n",
"Q 2066 3103 1784 3103 \n",
"Q 1356 3103 1142 2972 \n",
"Q 928 2841 928 2578 \n",
"Q 928 2378 1081 2264 \n",
"Q 1234 2150 1697 2047 \n",
"L 1894 2003 \n",
"Q 2506 1872 2764 1633 \n",
"Q 3022 1394 3022 966 \n",
"Q 3022 478 2636 193 \n",
"Q 2250 -91 1575 -91 \n",
"Q 1294 -91 989 -36 \n",
"Q 684 19 347 128 \n",
"L 347 722 \n",
"Q 666 556 975 473 \n",
"Q 1284 391 1588 391 \n",
"Q 1994 391 2212 530 \n",
"Q 2431 669 2431 922 \n",
"Q 2431 1156 2273 1281 \n",
"Q 2116 1406 1581 1522 \n",
"L 1381 1569 \n",
"Q 847 1681 609 1914 \n",
"Q 372 2147 372 2553 \n",
"Q 372 3047 722 3315 \n",
"Q 1072 3584 1716 3584 \n",
"Q 2034 3584 2315 3537 \n",
"Q 2597 3491 2834 3397 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-58\"/>\n",
" <use xlink:href=\"#DejaVuSans-2d\" x=\"63.505859\"/>\n",
" <use xlink:href=\"#DejaVuSans-61\" x=\"99.589844\"/>\n",
" <use xlink:href=\"#DejaVuSans-78\" x=\"160.869141\"/>\n",
" <use xlink:href=\"#DejaVuSans-69\" x=\"220.048828\"/>\n",
" <use xlink:href=\"#DejaVuSans-73\" x=\"247.832031\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"matplotlib.axis_2\">\n",
" <g id=\"ytick_1\">\n",
" <g id=\"line2d_4\">\n",
" <defs>\n",
" <path id=\"m307708e374\" d=\"M 0 0 \n",
"L -3.5 0 \n",
"\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </defs>\n",
" <g>\n",
" <use xlink:href=\"#m307708e374\" x=\"43.78125\" y=\"284.4\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_5\">\n",
" <!-- 0.0 -->\n",
" <g transform=\"translate(20.878125 288.199219) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_2\">\n",
" <g id=\"line2d_5\">\n",
" <g>\n",
" <use xlink:href=\"#m307708e374\" x=\"43.78125\" y=\"283.014\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_6\">\n",
" <!-- 0.5 -->\n",
" <g transform=\"translate(20.878125 286.813219) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-30\"/>\n",
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"ytick_3\">\n",
" <g id=\"line2d_6\">\n",
" <g>\n",
" <use xlink:href=\"#m307708e374\" x=\"43.78125\" y=\"281.628\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_7\">\n",
" <!-- 1.0 -->\n",
" <g transform=\"translate(20.878125 285.427219) scale(0.1 -0.1)\">\n",
" <use xlink:href=\"#DejaVuSans-31\"/>\n",
" <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
" <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"text_8\">\n",
" <!-- Y-axis -->\n",
" <g transform=\"translate(14.798438 160.08125) rotate(-90) scale(0.1 -0.1)\">\n",
" <defs>\n",
" <path id=\"DejaVuSans-59\" d=\"M -13 4666 \n",
"L 666 4666 \n",
"L 1959 2747 \n",
"L 3244 4666 \n",
"L 3922 4666 \n",
"L 2272 2222 \n",
"L 2272 0 \n",
"L 1638 0 \n",
"L 1638 2222 \n",
"L -13 4666 \n",
"z\n",
"\" transform=\"scale(0.015625)\"/>\n",
" </defs>\n",
" <use xlink:href=\"#DejaVuSans-59\"/>\n",
" <use xlink:href=\"#DejaVuSans-2d\" x=\"49.208984\"/>\n",
" <use xlink:href=\"#DejaVuSans-61\" x=\"85.292969\"/>\n",
" <use xlink:href=\"#DejaVuSans-78\" x=\"146.572266\"/>\n",
" <use xlink:href=\"#DejaVuSans-69\" x=\"205.751953\"/>\n",
" <use xlink:href=\"#DejaVuSans-73\" x=\"233.535156\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <g id=\"PathCollection_7\"/>\n",
" <g id=\"PathCollection_8\"/>\n",
" <g id=\"PathCollection_9\">\n",
" <path d=\"M 266.98125 228.96 \n",
"L 266.98125 228.96 \n",
"L 266.98125 228.96 \n",
"L 266.98125 228.96 \n",
"L 266.98125 228.96 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_10\">\n",
" <path d=\"M 266.98125 229.5144 \n",
"L 266.42325 228.96 \n",
"L 266.98125 228.4056 \n",
"L 267.53925 228.96 \n",
"L 266.98125 229.5144 \n",
"z\n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"PathCollection_11\">\n",
" <path d=\"M 266.98125 230.0688 \n",
"L 265.86525 228.96 \n",
"L 266.98125 227.8512 \n",
"L 268.09725 228.96 \n",
"L 266.98125 230.0688 \n",
"\" clip-path=\"url(#p7f06ba4812)\" style=\"fill: none; stroke: #000000; stroke-width: 1.5\"/>\n",
" </g>\n",
" <g id=\"patch_3\">\n",
" <path d=\"M 43.78125 284.4 \n",
"L 43.78125 7.2 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" <g id=\"patch_4\">\n",
" <path d=\"M 322.78125 284.4 \n",
"L 322.78125 7.2 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" <g id=\"patch_5\">\n",
" <path d=\"M 43.78125 284.4 \n",
"L 322.78125 284.4 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" <g id=\"patch_6\">\n",
" <path d=\"M 43.78125 7.2 \n",
"L 322.78125 7.2 \n",
"\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
" </g>\n",
" </g>\n",
" </g>\n",
" <defs>\n",
" <clipPath id=\"p7f06ba4812\">\n",
" <rect x=\"43.78125\" y=\"7.2\" width=\"279\" height=\"277.2\"/>\n",
" </clipPath>\n",
" </defs>\n",
"</svg>\n"
],
"text/plain": [
"<Figure size 500x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rcParams['figure.figsize'] = 5, 5 # sets plot size\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111)\n",
"\n",
"# Define levels in z-axis where we want lines to appear\n",
"levels = np.array([-0.4,-0.2,0,0.2,0.4])\n",
"\n",
"# Generate a color mapping of the levels we've specified\n",
"import matplotlib.cm as cm # matplotlib's color map library\n",
"cpf = ax.contourf(X,Y,Z, len(levels), cmap=cm.Reds)\n",
"\n",
"# Set all level lines to black\n",
"line_colors = ['black' for l in cpf.levels]\n",
"\n",
"# Make plot and customize axes\n",
"cp = ax.contour(X, Y, Z, levels=levels, colors=line_colors)\n",
"ax.clabel(cp, fontsize=10, colors=line_colors)\n",
"plt.xticks([0,0.5,1])\n",
"plt.yticks([0,0.5,1])\n",
"ax.set_xlabel('X-axis')\n",
"_ = ax.set_ylabel('Y-axis')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3113b52b",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment