204 lines
324 KiB
Plaintext
Raw Permalink Normal View History

2024-11-30 00:04:49 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Начало лабораторной\n",
"\n",
"Выгрузка данных из csv фйла в датафрейм"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Index(['Date', 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')\n"
]
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"df = pd.read_csv(\".//static//csv//Yamana_Gold_Inc._AUY.csv\")\n",
"print(df.columns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Диаграмма №1 - Гистограмма с дополнительной осью\n",
"## Диаграмма числа продаж акций за год за весь период времени: Данная диаграмма отображает зависимость обьёма продаж от окончательных цен акций за каждый период"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABAsAAAHDCAYAAABCuZPJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACqmUlEQVR4nOzdd3xN9x/H8ddNSIwMK4gdW4zas4paVTVqtXRQLVpao1sXpUo33XSgLa1RVFtVFK0qtYtGzdh7hQRBcn5/fH/3JpEhN+tkvJ+Px5Fzzzn5ns+9bu4993O/3+/HYVmWhYiIiIiIiIjI/3nYHYCIiIiIiIiIZC5KFoiIiIiIiIhIHEoWiIiIiIiIiEgcShaIiIiIiIiISBxKFoiIiIiIiIhIHEoWiIiIiIiIiEgcShaIiIiIiIiISBxKFoiIiIiIiIhIHEoWiIhkgIiICA4dOsS5c+dS1U50dDSnT5/m8uXLAJw7d44LFy6kRYgiIiIiIi5KFoiIpJM5c+bQunVrfH198fHxoUyZMrz55pupavPgwYMEBATw0UcfAVCnTh369OmTFuGKSAb66aef2LJli+v2ggUL+Pfff+0LSJLUr18/ypUrd9Pj9u/fj8PhYNq0aekek4hIelOyQCQNTZs2DYfDkehy+PBhu0OUDPL888/Tq1cvfH19+eyzz1i6dCnLli1j8ODBqWq3ePHiLF26lF69egEwY8YMxo0blxYhi0gG2rZtG8OGDWP37t2sXbuWRx99lIsXLyb5O2vWrMHDw4ORI0cmuP+NN97A4XDw888/p0fIWcaqVavo1asXJUuWxMvLC39/fxo1asSYMWM4ceKE3eGJiGQZuewOQCQ7GjNmDEFBQfG2FypUyIZoJKP9/vvvvPHGG4wfP57nn38+TdvOkycPbdq0cd1u1qxZmrYvIhnjkUce4csvv6Ry5coAdOvWjcaNGyf5O02aNGHQoEG888473H///VSvXt2178CBA4wZM4aePXvSsWPHdI09M3vllVcYO3Ys5cuXp1+/fpQvX54rV66wceNG3nnnHaZPn87evXvtDlNEJEtQskAkHXTo0IH69evbHYbY5O2336Zp06ZpnigQkewjICCA7du3s337dvLly0e1atWS9XsTJkzghx9+YNCgQaxatQqHwwHAE088Qe7cuZk0aVJ6hp2pzZo1i7Fjx9KrVy++/vprvLy84ux/7733eO+992yKTkQk69EwBBEbOIcr7N+/37UtOjqaWrVqJTjW8b///qNXr14EBASQN29eqlSpwosvvgjA6NGjkxz64HA4WLlypautOXPmUK9ePfLmzUuRIkW4//77OXLkSJzz9evXL8F2Klas6DqmXLly3HXXXSxZsoTatWuTJ08egoODmTdvXpy2zp49y9NPP03NmjXx8fHBz8+PDh068M8//8Q5buXKla7zxB7HC3DkyBE8PT1xOBzMnTs3Xpy1a9eO9xiPHz8eh8OBj49PnO1Tp07l9ttvp2jRonh7exMcHMwnn3wS7/cTs3z5cpo3b07+/PkpUKAAXbp0YceOHXGOWbt2LTVq1ODee++lUKFC5M2blwYNGrBgwQLXMVu2bIn3+Ma+b4k5cuQI/fv3p1ixYnh7e1O9enW+/PLLOMek5LFM7n278fnm6+tLw4YN49y3xDh/N7bw8HCKFy8e73ma1O+fPn06zvYNGzYk+HcTHR3NxIkTqV69Onny5KFYsWIMGjQo3iSTzufyjR5//PF48abm+TN69GiCg4NdfweNGzeO97itWrWKnj17UqZMGby9vSldujQjRoxwTWjplND46W+++QYPDw8mTJgQ5zgfHx/27dtH+/btyZ8/PyVKlGDMmDFYluU6zjnO+u23304y/tiPx81ed1q2bAnEPB9v/P/t2LEjDoeD0aNHx9m+YsUKmjdvTsGCBeO09/jjjycaG8DVq1d55ZVXqFevHv7+/uTPn5/mzZuzYsWKOMclNKb84sWL1KtXj6CgII4dO3bTx6RGjRqu++fUsmXLeNvWr1/vij825/329vamXr16VKtWjbfeeivO45YYf39/Jk2axOrVq/n8888BmD9/Pj/++CMTJkwgMDDQlbAsXLgwefPmpV69egm+vjgf1zlz5hAcHEzevHlp0qQJ27ZtA2Dy5MlUrFiRPHny0LJlyzjvWeDe89XHx4cjR47QtWtXfHx8CAgI4OmnnyYqKirOscmNPSGvvPIKRYoU4YsvvoiXKHA+djc+3wA+/vhjqlevjre3NyVKlGDIkCGcP3/+puc7f/48/fr1w9/fnwIFCtC3b99k/R7cfNjijXFu3ryZDh064Ofnh4+PD61bt2bt2rU3PY/zeZzQ8s0337iO27dvHz179qRQoULky5ePxo0bJzqcJbHrjhufu+48P9x9LxeRjKGeBSKZxNdff+26QItt69atNG/enNy5czNw4EDKlSvH3r17+fHHHxk3bhzdunWL8yF+xIgRVKtWjYEDB7q2Ob+xmjZtGg899BANGjRg/PjxnDhxwnXRuXnzZgoUKOD6HW9vb9eFqJOvr2+c27t37+aee+7h0UcfpW/fvkydOpWePXuyePFi2rZtC5gLkAULFtCzZ0+CgoI4ceIEkydPpkWLFoSEhFCiRIk4bebJk4epU6fG+XZs+vTpeHl5ceXKlXiPT65cufj333/ZvHkzderUcW2fNm0aefLkiXf8J598QvXq1encuTO5cuXixx9/ZPDgwURHRzNkyJB4x8e2bNkyOnToQPny5Rk9ejSXL1/mgw8+oFmzZmzatMn14e3MmTNMmTIFHx8fhg4dSkBAAN988w3dunVjxowZ9O7dm7Jly/L1118DsGPHDl5//fUkzw1w4sQJGjdu7LrADwgI4JdffuHhhx/mwoULDB8+PMWPZXLvm5Mz9tOnT/Pxxx/Ts2dPtm/fTpUqVW56P2J755130m0M8aBBg1zP+aFDhxIaGsqHH37I5s2bWb16Nblz53a7zdQ8fyIiIrj77rspV64cly9fZtq0aXTv3p01a9bQsGFDwCTzLl26xGOPPUbhwoVZt24dH3zwAYcPH2bOnDmJtr1kyRL69+/P448/Hq9HS1RUFHfccQeNGzfmzTffZPHixYwaNYrr168zZswYtx8DJ+dzAMyHgilTpvDee+9RpEgRAIoVK5bo7/7xxx8sWrQo3vbQ0FA6duxIYGAgr7zyCgEBAQA88MADN43nwoULfP755/Tu3ZsBAwZw8eJFvvjiC9q3b8+6desS/CACcO3aNbp3787BgwdZvXo1gYGBNz1Xcj333HPJOu78+fOMHz8+2e06hxo899xztG7dmmHDhtG0aVMGDRoEwKRJk+jcuTP33XcfV69e5bvvvqNnz5789NNP8YYorFq1ioULF7qev+PHj+euu+7i2Wef5eOPP2bw4MGcO3eON998k/79+7N8+XLX77rzfI2KiqJ9+/Y0atSIt99+m2XLlvHOO+9QoUIFHnvsMddx7sQe265du9i1axePPPKIWx8sR48ezauvvkqbNm147LHH2LlzJ5988gnr169P8nXCsiy6dOnCn3/+yaOPPkq1atWYP38+ffv2Tfa5If6wxfDw8DiPB8C///5L8+bN8fPz49lnnyV37txMnjyZli1b8vvvv9OoUaObnqd3797ceeedcbY5h7GdOHGCpk2bcunSJYYOHUrhwoWZPn06nTt3Zu7cudx9990JtvnJJ5+4HuuE5tFw5/nh7nu5iGQQS0TSzNSpUy3AWr9+fbKOCw0NtSzLsq5cuWKVKVPG6tChgwVYU6dOdR172223Wb6+vtaBAwfitBEdHZ1g22XLlrX69u0bb/vVq1etokWLWjVq1LAuX77s2v7TTz9ZgPXKK6+4tvXt29fKnz9/kvehbNmyFmB9//33rm1hYWFWYGCgVadOHde2K1euWFFRUXF+NzQ01PL29rbGjBnj2rZixQoLsHr37m0VLlzYioyMdO2rVKmS1adPHwuw5syZEy/OTp06WY8//rhr+6pVq6y8efNaXbt2jXc/Ll26FO++tG/f3ipfvnyS99eyLKt27dpW0aJFrTNnzri2/fPPP5a
"text/plain": [
"<Figure size 1200x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Преобразуем колонку 'Date' в формат datetime\n",
"df['Date'] = pd.to_datetime(df['Date'])\n",
"\n",
"# Добавляем колонку с годом\n",
"df['Year'] = df['Date'].dt.year\n",
"\n",
"# Группируем данные по годам и суммируем объёмы и цены закрытия\n",
"annual_data = df.groupby('Year').agg({'Volume': 'sum', 'Close': 'mean'}).reset_index()\n",
"\n",
"# Создаём график\n",
"fig, ax1 = plt.subplots(figsize=(12, 5))\n",
"\n",
"# Строим гистограмму объёмов\n",
"ax1.bar(annual_data['Year'], annual_data['Volume'], color='b', alpha=0.6, label='Объёмы продаж')\n",
"ax1.set_ylabel('Объём продаж', color='b')\n",
"ax1.tick_params(axis='y', labelcolor='b')\n",
"\n",
"# Создаём вторую ось для отображения цены закрытия\n",
"ax2 = ax1.twinx()\n",
"ax2.plot(annual_data['Year'], annual_data['Close'], color='r', marker='o', label='Цена закрытия')\n",
"ax2.set_ylabel('Цена закрытия', color='r')\n",
"ax2.tick_params(axis='y', labelcolor='r')\n",
"\n",
"# Добавляем заголовок и легенды\n",
"plt.title('Гистограмма объёмов и цена закрытия акций Yamana Gold по годам')\n",
"ax1.legend(loc='upper left')\n",
"ax2.legend(loc='upper right')\n",
"\n",
"# Отображаем график\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Диаграмма №2 - Круговая диаграмма\n",
"## Диаграмма среднего объёма продаж акций за год за весь период времени: Данная диаграмма отображает соотношение между годами среднего объёма продаж"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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hw4dqnSfp1/X/vvz3+fu+Tw/NBoNkydPrnDboEGD0Gg0DBs27JznKoRwD9JjK0Q9sWTJElq3bk3Pnj2rfZ+4uDh++uknHn30UfR6PR9//DGDBw9m27ZtjqIoKyuLHj16OIqa8PBwVqxYwfjx4yksLKz0AwPAJ598gr+/PwDPPPPMRZ/fmaxWK88991y12h49epQvvviiWm0VReGmm25i3bp1jB8/ni5durBy5UqeeOIJ0tLSmDVrFgC5ubkYjUYefvhh+vXrx0MPPcSxY8f46KOP2Lp1K1u3bkWv1zNlyhRuvfVWAF577bVqZXjttdd4/vnnGTVqFPfffz/Z2dnMnj2b3r17s3v3boKDgx1tvb29WbZsGadOnSIiIgIov2Typ59+wtvbu1rHA+jSpQvTpk1z2vbtt99W2gNVnefMgQMHuPbaawkMDOTJJ5/E09OTzz77jL59+xIXF0f37t0r7Fev1/Pll186fr///vsrtJk7dy7+/v5MnToVf39/1q5dywsvvEBhYSFvvfUWAF5eXvz666/06NGDW265hTVr1qDX6yvsa/HixTz11FO899573HDDDWd9fLZv386mTZsYPXo0TZs2JTk5mU8++YS+ffty8OBBfH19K71famoqgwcPpn379vz88894eNTMW25BQQEzZ86sVtu//vrrnIX7mWbOnMlvv/3GhAkTeO+99/joo4944oknuOyyy9ixYwe//fYbt912G61atSIrK4vPPvuMPn36cPDgwQqXKc+cORMfHx+efvppjh49yuzZs/H09ESr1ZKfn8+MGTPYsmULc+fOpVWrVrzwwguO+37yySd06tSJm266CQ8PD5YsWcLEiROx2+3ExsY6Hefo0aPceuutjB8/nrFjx/L1118zbtw4unbtSqdOnQA4fvz4eWU/04oVK7DZbNx1113Vfhyr+1pSmczMTK677jqsVitPP/00fn5+fP755+ccJ32m//49Qfnz+IMPPnDaNnfuXO699166devGzJkzycrK4v3332fjxo0VXm+q8vLLLzuGfZwWEhICwJ9//smQIUNo3bo1M2bMoKysjNmzZ9OrVy927drl9MXkaU2bNnU8v4uLi3n44YcrtDmf54e3tzfff/89b731Fp6engCcPHmSNWvWnNfrpBDCDShCCLdnMBgUQLn55purfR9AAZQdO3Y4tp04cULx9vZWbrnlFse28ePHK9HR0UpOTo7T/UePHq0EBQUppaWlTtufffZZBXBq36lTJ6VPnz5O7fr06aN06tSpQq633npLAZSkpCTHthYtWihjx451/P7xxx8rer1eue6665QWLVo4ticlJSmAMmfOHMe2UaNGKZ07d1aaNWvmtI/K/PbbbwqgvPrqq07bb731VkWj0ShHjx5VFEVRXnzxRQVQ+vfvr1itVke7OXPmKIAye/bsCvuu6nzPlJycrOh0OuW1115z2r5//37Fw8PDafvp/V1++eXK22+/7dj+3XffKU2bNlWuvfbacx5PUcof26FDh1bYHhsbq/z3LaK6z5nhw4crXl5eyrFjxxzb0tPTlYCAAKV3794VjjVmzBjF39/faZufn1+Ff6//PtcURVEmTJig+Pr6Kkaj0Wl7YmKi0qhRI+Wuu+5SFOXffzNFUZTdu3crfn5+SmxsbIX9Vaay427evFkBlG+
"text/plain": [
"<Figure size 1200x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Убедитесь, что столбец 'Date' распознаётся как дата\n",
"df['Date'] = pd.to_datetime(df['Date'])\n",
"\n",
"# Группировка данных по годам и расчёт среднего объёма\n",
"annual_data = df.groupby('Year')['Volume'].mean()\n",
"\n",
"# Построение круговой диаграммы\n",
"plt.figure(figsize=(12, 10))\n",
"plt.pie(annual_data, labels=annual_data.index, autopct='%1.1f%%', startangle=140)\n",
"plt.title('Средний объём продаж акций Yamana Gold по годам')\n",
"plt.axis('equal') # Чтобы круговая диаграмма была кругом\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Диаграмма №3 - Гистограмма с скользящей шкалой\n",
"\n",
"## График динамики объемов торгов акций Yamana Gold Inc: Данный график отображает динамику объёмов торгов на акции компании, что помогает сделать вывод о том, когда у компании успешные времена, а когда нет. Например по этой диаграмме можно понять, что у компании в 2022 году был хороший объём пролаж"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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RVSmTBkNGTLEre+lO3LkiB599FH79qtSpYqefPJJ+/kpK2lpaZo4caLq1q2rQoUKKTo6Wu3bt9fvv/9unybzOSAlJUUdO3ZUyZIltX379lytf/o+kfkvY/nObr/JaNq0aapfv779d65fv75mzJjhNN1XX32lRo0aqWjRog7LfPvtt+3TuDrvujrnSq73XelqGwsNGzZU4cKFVbJkSd1///06fPiwwzQZ6/XXrl1bDRs21F9//WWPyR0bN25Ux44dVaJECRUpUkT16tXTxIkTndZl3759ateunYoUKaIKFSro1VdflWEYDvNKS0vThAkTVKdOHRUqVEhly5bV448/rnPnzjktN31/z+n8kX4MzliWJOn06dMuryuOHDmiPn36qGzZsgoPD1edOnX08ccfO0yT8ZhbvHhxNWnSRNdee606derkcp6ZZVWmXP2WDz30kEqXLu203hmv0y5evKiGDRuqSpUqOnbsmH3422+/raZNm6pUqVIqXLiwGjZsmGU5Tt9OOZ0P3TnH5nX7ILDwpBsFTvpFTXh4eK6+P2fOnDzX45o/f77i4+P15JNPqlSpUvrtt980adIk/fvvv5o/f77DtCEhIdq2bZv+/PNP3Xjjjfbhs2bNUqFChXJc1vnz5zV27Ngcp7tw4YI6dOig0NBQLVmyxH4hExcXp48++kgPPPCA+vbtq4sXL2rGjBlq166dfvvtN5c3BDIaOXKkRo0apdatW+vJJ5/Url27NG3aNG3atEnr1q1TaGiozpw5I0kaPny4qlevrlGjRikhIUFTpkxRs2bNtGnTJtWoUUPt27e3n1S//vprLVy4MMf1+vHHH9WhQwc1bNhQr7zyioKCgjRz5ky1atVKa9eu1c033+ww/cWLF/Xdd9/p7rvvtg+bOXOmChUqpISEBI/XLV3NmjX14osvyjAM7d27V++++646duyoQ4cO5bgO1157rdNvuGTJEn322WdO0+7evVv33XefnnjiCfXu3VszZ85U9+7dtWzZMrVp00aSdOLECTVt2lTx8fEaNGiQSpUqpdmzZ6tLly766quvHNY9o2nTptnLxfDhw53Gu1uuP/74Y7Vq1UqdOnXSxo0bVaJECad5/fbbb+rdu7eGDBmixx9/PNvts2/fPi1atEjdu3dXlSpVdOLECX3wwQdq0aKFtm/frgoVKrj8XlZlPq9SUlL04osvujXtnj179OGHH7o97yFDhmju3Ll68skntWzZMr388su6//771b59e50+fdqjfXXu3LlKSkrS//3f/+ns2bN688031aNHD7Vq1UqrV6/Wc889pz179mjSpEkaOnSowwX1rFmzFBkZqaefflqRkZH68ccf9fLLLysuLk5vvfWWw3LOnTun9u3b65577lGPHj301Vdf6bnnnlPdunXVoUMHSXk7zvzyyy86f/68hg4dquDgYLe35WOPPabZs2fr3nvv1TPPPKONGzdq7Nix2rFjR7bHlitXruiOO+7QoUOHNGjQIFWoUEFz5szRjz/+6NZyjx49qptvvlnnz59Xv379VLNmTR05ckRfffWV4uPjs316mv4KfYcOHfTYY48pJSVFa9eu1YYNG9SoUaMs13P16tVauXKlateunaf1z1gta/r06W4dvzK7ePGi2rZtq6pVq8owDH355Zd67LHHVLx4cXXr1k2
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Преобразуем колонку 'Date' в формат datetime\n",
"df['Date'] = pd.to_datetime(df['Date'])\n",
"\n",
"# Устанавливаем дату в качестве индекса\n",
"df.set_index('Date', inplace=True)\n",
"\n",
"# Рассчитываем годовую скользящую среднюю для объёмов продаж\n",
"df['Volume_SMA'] = df['Volume'].rolling(window=60).mean()\n",
"\n",
"# Создаём график объёмов продаж\n",
"plt.figure(figsize=(10, 10))\n",
"plt.plot(df.index, df['Volume'], label='Объём продаж', color='black', alpha=0.7)\n",
"plt.plot(df.index, df['Volume_SMA'], label='Скользящая средняя шкала', color='blue', linewidth=2)\n",
"\n",
"# Настройки графика\n",
"plt.title('Динамика объёмов продаж акций Yamana Gold с скользящей средней шкалой')\n",
"plt.xlabel('Дата')\n",
"plt.ylabel('Объём продаж')\n",
"plt.legend()\n",
"plt.grid()\n",
"plt.xticks(rotation=45) # Поворачиваем метки по оси X\n",
"plt.tight_layout() # Подгоняем график\n",
"\n",
"# Показать график\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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",
2024-11-30 09:25:09 +04:00
"version": "3.11.undefined"
2024-11-30 00:04:49 +04:00
}
},
"nbformat": 4,
"nbformat_minor": 2
}