Files
pyplot-health-analysis/2_urinalis.ipynb
AlfandiMario 78a26bc2d0 init
2025-03-04 11:40:35 +07:00

105 lines
20 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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GjJkSKlt1q9fr48++kjJycmW1QUAAK4+b7zxhvz8/PT000871b48OY+z+PQ9AIDbHTp0SM8884w+++wz2Ww2p9ZJSEjQ//7v/+q9995TUlKSFi5cqK+//lqvvPKKh6sFKr6PPvpId955Z6lzPmRmZmrw4MH6+9//rvDwcIurAwAAV4vExET99a9/1dy5cy87+toqbh8pFR4eLl9fXx07dqzI8mPHjikqKqrEdaKiolxqDwCo2BITE3X8+HG1b9/esSw/P1/r1q3TzJkzde7cOfn6+hZZ56WXXtLgwYP16KOPSpJatWql7OxsPfbYY3rhhRfk48PfUVA1HThwQCtXrtTChQtLbZOWlqb9+/erT58+jmV2u12S5Ofnpz179ig6OtrjtQIAgIrthx9+0PHjx9WwYUPHsvz8fI0dO1YzZszQ/v37i61TnpzHWW7/DT8gIEAdOnQoMlGt3W7XqlWr1KVLlxLX6dKlS5H2krRixYpS2wMAKraePXtqx44dSk5Odnx17NhRDz30kJKTk4sFUpJ09uzZYsFTYTsPfCYHcNWYM2eOIiMj1bt371LbNGvWrNgx17dvX916661KTk5WgwYNLKwYAABUVIMHD9b27duL/M5Qr149jRs3TsuXLy9xnfLkPM5y+0gpSRozZozi4+PVsWNH3XDDDZoxY4ays7P1yCOPSJL++Mc/qn79+nrttdckSc8884y6deumt956S71799aCBQu0detWffDBB54oDwDgYdWrV1dsbGyRZdWqVVPt2rUdyy89F/Tp00fTp09Xu3btFBcXp7179+qll15Snz59SgyxgKrAbrdrzpw5io+Pl59f0V/bLj6GbDZbsWOuZs2aklRsOQAAqNyysrK0d+9ex//37dun5ORkhYWFqWHDhqpdu3aR9v7+/oqKilLTpk0dy3r27Kl7771XTz75pKSyc57y8kgoNWDAAGVkZOjll19Wenq62rZtq++++84xKdbBgweL/DX8xhtv1Lx58/Tiiy9q4sSJuu6667R48WJ+iQKASuzSc8GLL74owzD04osv6siRI4qIiFCfPn00depUL1YJeNfKlSt18OBBDR06tNhzlx5DAAAAkrR161bdeuutjv+PGTNGkhQfH6+5c+c6tY20tDSdOHHC8f+ycp7yMkzuiQAAAAAAAIDF+PMaAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQAAAAAAAMsRSgEAAAAAAMByhFIAAAAAAACwHKEUAAAAAAAALEcoBQBABRATEyM/Pz/9+c9/9nYpV6Sy9MNZVa2/7ubu14/vR8l4XQAAFRWhFAAAFcCFCxeUn58vu93u7VKuiDf7MXjwYBmGodWrV1u2z8ryffMWZ1+/Dz74QNddd538/f1lGIa6d+9+Rduraqx+XVavXi3DMDR48GBL9gcAuHoRSgEAijEMo8hXcHCw2rRpo+nTp1eoi725c+dq8uTJWrx48RVva/fu3cX6bRiG9u/ff8Xbrkj279/v6FtCQoJjeUJCwlXd56SkJH322Wdq27atevTo4VheWftblhUrVqhbt26qXbu2atWqpQ4dOmjKlCnKyMjwdmku279/v0aMGKG9e/fqwoUL3i6nmPnz5+umm25SaGioatWqpW7dumnhwoXeLstl7nw/7dGjh9q1a6fPPvtMSUlJV14cAKDS8vN2AQCAii8nJ0fbt2/X2LFjdfLkSU2dOtXbJUkquIhau3at4uPj1a9fP2+Xc0UqSzDirX688cYbMk1Tjz32mKX7rYjft/nz5+vBBx8ssiwpKUlJSUlq2bKl7r//fi9VVpwzr19iYqJM05Qkbdq0SdHR0fL39y/39tzppZde0quvvlpk2bp163T69Gndd999ltZyOc68Lu5+P33sscf0+OOP6/XXX9cXX3xxxdsDAFROjJQCAJTq3XffVUZGhlJTU9W1a1dJ0kcffeTlqjzjuuuuU0ZGhjIyMtwyUgDWKfye+fj4VKggwFsKQ5K4uDht27ZNhw4d0pIlS9SrVy8vV1Y+WVlZjsdxcXEKDw9XjRo1vFhRgaSkJEdAf8stt2jr1q06cOCAPvjgA9WuXdvL1XnfvffeKx8fHy1ZsuSqHKEHALAGoRQAoFQhISEKDw9Xs2bNNHDgQElSZmZmkTZJSUnq3bu3atSooeDgYMXFxWnRokXFtjVkyBDHXDBLly5Vq1atFBgYqHr16um7776TJB0+fFjPPvusYmNjFRoaqqCgIMXGxmr69OmOkRIX3461du1aSdLHH3/sWDZkyJBy9dXX11fh4eFlXvA609+L+zpz5kxFRUUpKipKr732WpF269evL3a74OTJk0vc78KFC9W5c2fVrFlToaGhat26tcaNG1euvrrCme+bs/1w9nVx1TfffKO8vDy1adNGderUuaJteau/zh5Hzti7d6+kgjm22rZtq2uuuUZ9+/bVd999p969ezvade/e3XHMTJs2TREREapVq5bGjh1b7DZdV+r78MMP1b59ewUFBSkyMlJ333231q9f73je1dfv4mO6sP3Fc0q5chw5U5+z/v73v8s0TVWrVk2LFi1Shw4d1LBhQw0fPlyfffZZiX250ve/xMRERx///e9/O7afkpLiWL5582anXxdn30/nzp3rWHb48GHH+r/88otj+YIFC4psu06dOmrdurXy8vL07bffuvz6AgCqBkIpAECZfv31V8eF0w033OBYvnXrVt1yyy365ptvdObMGeXk5GjLli2677779PHHH5e4rbS0NPXv318pKSnKy8vT0aNHlZ6eLqlgnp+33npLO3fuVGZmpnJzc7Vz506NHTtW7733nuc7WgZX+/vTTz/p6aef1rFjx3Ts2DFNnDjRccHoitWrV+v+++/X5s2bdfr0aWVmZmrHjh1688033dEtp1zu++Yqd70uhQoDhQ4dOpR7G5eysr/lOY4up27dupKkWbNmacuWLUWeCwoKKtY+ISFBzz//vE6cOKFTp05p+vTpeuONN8pV33PPPafhw4dr27Ztys3NVUZGhr7++mt9+OGHLvfDE9xZX+HPXY8ePYqNjIqKiipxnSt9/2vfvr1j2xfPkbZmzRpJUkREhDp16uRyX8py7733KjAwUJKKjCT96quvJBX8XPXp06fYeoXH5A8//OD2mgAAlQOhFACgVI888ogMw1Dt2rW1bNky3XTTTXr//fcdzz/zzDM6e/as2rVrp61bt2rv3r2Kj4+XJI0bN055eXnFtnn48GH16NFDW7du1b59+/Tpp586LqKbNWumv/3tb0pMTNTBgwd14MABxxxBc+fOlSQ1bNjQcZvdjTfeKEkaOHCgY9nMmTM99nq42t+jR49qzpw52rBhgwICAiQVjOop1LlzZ0fdDRo0KHW/X331lUzTVIsWLbR9+3bt379f3377raVzA13u++ZsPwqV9bq4avfu3ZKk6Ojocm/jUlb2tzzH0eX86U9/kiSl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Pd3pWjweSrnLY4895njcqlUr1a1bVz179lRaWpqio6O9WBkAANYZOHCg43GrVq3UunVrRUdHKyEhQT179vRiZQAAuN/IkSOVkpKi9evXF1nO9SHgeU2bNlVycrJOnz6tf/7zn4qPj9fatWsdwZQ7ePz2vaioqGKzrx87dkyhoaEKCgpSeHi4fH19S2wTFRVV6nbj4uIkSXv37nV/0QAAuFlZ58PyuvbaaxUeHs75EABwVXDlfPjkk09q2bJlWrNmja655prLbpfrQ8B5zh6HAQEBiomJUYcOHfTaa6+pTZs2+utf/+rYRl5enk6dOlVsO5fLci7l8VCqS5cuWrVqVZFlK1ascNyHGBAQoA4dOhRpY7fbtWrVKkebkiQnJ0uS6tat6/6iAQBws7LOh+V1+PBhnTx5kvMhAOCq4Mz50DRNPfnkk1q0aJFWr16tJk2alLldrg8B55X391K73a5z585Jkjp06CB/f/8i29mzZ48OHjzo0u+3Lt++l5WVVSR93rdvn5KTkxUWFqaGDRtqwoQJOnLkiP7xj39IkkaMGKGZM2fqueee09ChQ7V69Wp98cUX+vrrrx3bGDNmjOLj49WxY0fdcMMNmjFjhrKzs/XII49IktLS0jRv3jzdddddql27trZv367Ro0era9euat26tatdAADginnifFjWNrOysjRlyhT1799fUVFRSktL03PPPaeYmBj16tXLus4DAPA7T5wPR44cqXnz5mnJkiWqXr26Y36aGjVqKCgoiOtD4BKeOA4nTJigO++8Uw0bNlRmZqbmzZunhIQELV++XFLB8Ths2DCNGTNGYWFhCg0N1VNPPaUuXbo4/cl7kiTTRWvWrDElFfuKj483TdM04+PjzW7duhVbp23btmZAQIB57bXXmnPmzCm23Xfffdds2LChGRAQYN5www3mpk2bHM8dPHjQ7Nq1qxkWFmYGBgaaMTEx5rhx48zTp0+7Wj4AAG7hifNhWds8e/asefvtt5sRERGmv7+/2ahRI3P48OFmenq65zsMAEAJPHE+LGl7khztuD4EivLEcTh06FCzUaNGZkBAgBkREWH27NnT/P7774u0ycnJMZ944gmzVq1aZnBwsHnvvfeaR48edal2wzRN0/kICwAAAAAAALhyHp9TCgAAAAAAALgUoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAyxFKAQAAAAAAwHKEUgAAAAAAALAcoRQAAAAAAAAsRygFAAAAAAAAy/0/jZlVEZCICdkAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1200x260 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from matplotlib.patches import FancyBboxPatch, Rectangle\n",
"from matplotlib.colors import LinearSegmentedColormap\n",
"\n",
"# Color scheme\n",
"green = '#8DC58D'\n",
"yellow = '#FBBC78'\n",
"red = '#F77F7F'\n",
"gray = '#DDDDDD'\n",
"light_blue = '#D9E8F5'\n",
"light_gray = '#F5F5F5'\n",
"\n",
"SEGMENT_HEIGHT = 0.1\n",
"Y_MARKER = 0.6 * SEGMENT_HEIGHT\n",
"Y_LABEL = 0.2 * SEGMENT_HEIGHT\n",
"\n",
"# Data\n",
"categories = [\"pH\", \n",
" \"Berat Jenis Urin (Urine Specific Gravity)\"]\n",
"values = [8.0, 1.010]\n",
"ranges = [(0, 14, [4.8, 7.4]), (1.005, 1.030, [1.015, 1.025])]\n",
"colors = [[yellow, green, red], # pH\n",
" [yellow, green, red]] # Urin]\n",
"\n",
"fig, axes = plt.subplots(len(categories), 1, figsize=(12, 2.6))\n",
"\n",
"for i, ax in enumerate(axes):\n",
" min_val, max_val, thresholds = ranges[i]\n",
" value = values[i]\n",
" \n",
" # Create segments\n",
" # y_gap = 0.01 # {{ Removed y_gap definition }}\n",
" ax.set_ylim(0, 0.1) # {{ Updated y-axis limits to remove y_gap }}\n",
" all_points = [min_val] + thresholds + [max_val]\n",
" for j in range(len(all_points)-1):\n",
" start = all_points[j]\n",
" end = all_points[j+1]\n",
" segment_width = end - start\n",
"\n",
" rect = Rectangle((start, 0), segment_width, SEGMENT_HEIGHT, # {{ Updated y-coordinate and height to remove y_gap }}\n",
" facecolor=colors[i][j % len(colors[i])], linewidth=0)\n",
" ax.add_patch(rect)\n",
" \n",
" # Plot value marker\n",
" ax.scatter([value], [Y_MARKER], color=\"white\", marker=\"o\", s=100, zorder=3, edgecolor='gray')\n",
" ax.text(value, Y_LABEL, f\"{value:.1f}\", ha=\"center\", fontsize=10, color=\"black\", weight=\"bold\", \n",
" fontfamily='monospace')\n",
" \n",
" # Axis formatting - properly align ticks with segment boundaries\n",
" ax.set_xlim(min_val, max_val)\n",
" ax.set_yticks([])\n",
" ax.set_xticks(all_points) # Set ticks at exact boundary points\n",
" ax.set_title(categories[i], fontsize=12, weight=\"bold\", fontfamily='monospace')\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False)\n",
" ax.spines['left'].set_visible(False)\n",
"\n",
"plt.tight_layout()\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "ai-inacbg",
"language": "python",
"name": "ai-inacbg"
},
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}