{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "65527e0d",
   "metadata": {},
   "source": [
    "# 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a7d6b10c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "df=pd.read_csv(\"housing.csv\")\n",
    "\n",
    "plt.scatter(df[\"median_income\"],df[\"median_house_value\"])\n",
    "plt.xlabel(\"income\")\n",
    "plt.ylabel(\"house_value\")\n",
    "\n",
    "ocean_proximity_counts = df['ocean_proximity'].value_counts()\n",
    "plt.bar(ocean_proximity_counts.index, ocean_proximity_counts.values)\n",
    "plt.xlabel('Ocean Proximity')\n",
    "plt.ylabel('Count')\n",
    "plt.title('Bar Plot: Ocean Proximity')\n",
    "plt.show()\n",
    "\n",
    "plt.hist(df['median_income'], bins=10)\n",
    "plt.xlabel('Median Income')\n",
    "plt.ylabel('Frequency')\n",
    "plt.title('Histogram: Median Income')\n",
    "plt.show()\n",
    "\n",
    "corr_matrix = df.corr()\n",
    "plt.figure(figsize=(10, 8))\n",
    "sns.heatmap(corr_matrix, annot=True, cmap='coolwarm')\n",
    "plt.title('Heatmap: Correlation Matrix')\n",
    "plt.show()\n",
    "\n",
    "longitude = df['longitude']\n",
    "latitude = df['latitude']\n",
    "\n",
    "plt.figure(figsize=(10, 8))\n",
    "plt.scatter(longitude, latitude, s=10, c='b', alpha=0.5)\n",
    "plt.xlabel('Longitude')\n",
    "plt.ylabel('Latitude')\n",
    "plt.title('Geographical Plot')\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f3d692ef",
   "metadata": {},
   "source": [
    "# 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d7652baa",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "data=pd.read_csv(\"district wise rainfall normal.csv\")\n",
    "\n",
    "plt.figure(figsize=(20, 9))\n",
    "colors = plt.cm.viridis(data.index / len(data))\n",
    "plt.bar(data['STATE_UT_NAME'], data['ANNUAL'], color=colors)\n",
    "plt.xlabel('State/UT')\n",
    "plt.ylabel('Annual Rainfall (mm)')\n",
    "plt.title('Annual Rainfall in India by State/UT')\n",
    "plt.xticks(rotation=45)\n",
    "plt.show()\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(10, 6))\n",
    "data[['Jan-Feb', 'Mar-May', 'Jun-Sep', 'Oct-Dec']].plot(kind='area', stacked=True, ax=ax)\n",
    "ax.set_title('Seasonal Rainfall')\n",
    "ax.set_xlabel('Year')\n",
    "ax.set_ylabel('Rainfall (mm)')\n",
    "plt.show()\n",
    "\n",
    "\n",
    "state_index = 0\n",
    "rainfall = data.iloc[state_index, 2:14]\n",
    "months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n",
    "\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(months, rainfall, color=plt.cm.RdYlBu_r(range(len(rainfall))))\n",
    "plt.xlabel('Month')\n",
    "plt.ylabel('Rainfall (mm)')\n",
    "plt.title(f'Monthly Rainfall in {data.iloc[state_index, 0]}')\n",
    "plt.show()\n",
    "\n",
    "\n",
    "plt.figure(figsize=(10, 6))\n",
    "sns.pointplot(data=data, x='STATE_UT_NAME', y='ANNUAL', color='purple')\n",
    "plt.xticks(rotation=90)\n",
    "plt.xlabel('State/UT')\n",
    "plt.ylabel('Annual Rainfall (mm)')\n",
    "plt.title('Annual Rainfall in Different States/UTs of India')\n",
    "plt.show()\n",
    "\n",
    "df=data.iloc[:,2:-4]\n",
    "plt.figure(figsize=(10, 8))\n",
    "sns.heatmap(df.corr(),cmap='PuOr', annot=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe14a9b6",
   "metadata": {},
   "source": [
    "# 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a9b6b670",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "df=pd.read_csv(\"cars.csv\")\n",
    "df.dropna()\n",
    "\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.bar(df[\"Brand\"],df[\"Price\"])\n",
    "plt.xlabel(\"car name\")\n",
    "plt.ylabel(\"price\")\n",
    "\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.barh(df[\"Brand\"],df[\"Price\"])\n",
    "plt.xlabel(\"price\")\n",
    "plt.ylabel(\"model\")\n",
    "\n",
    "grouped_data = df.groupby(['Brand', 'Engine Type']).size().unstack()\n",
    "fig, ax = plt.subplots()\n",
    "grouped_data.plot(kind='bar', stacked=True, ax=ax)\n",
    "ax.set_title('Stacked Bar Chart - Number of Cars by Engine Type')\n",
    "ax.set_xlabel('Brand')\n",
    "ax.set_ylabel('Count')\n",
    "plt.legend(title='Engine Type')\n",
    "plt.show()\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(12, 6))  # Increase the figsize to (width, height)\n",
    "grouped_data.plot(kind='bar', ax=ax)\n",
    "ax.set_title('Grouped Bar Chart - Number of Cars by Engine Type')\n",
    "ax.set_xlabel('Brand')\n",
    "ax.set_ylabel('Count')\n",
    "plt.legend(title='Engine Type')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "26932131",
   "metadata": {},
   "source": [
    "# 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c03d0288",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "df=pd.read_csv(\"housing.csv\")\n",
    "\n",
    "sns.displot(df[\"median_income\"])\n",
    "\n",
    "df[\"median_income\"].skew()\n",
    "log_income=np.log(df[\"median_income\"])\n",
    "\n",
    "sns.displot(log_income)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "092d1de9",
   "metadata": {},
   "source": [
    "# 5 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b79253c9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.dates as mdates\n",
    "\n",
    "df=pd.read_csv('sales_train.csv')\n",
    "df=df.loc[:108000]\n",
    "\n",
    "df['date']=pd.to_datetime(df['date'],format='%d.%m.%Y')\n",
    "\n",
    "d_sale=df.groupby('date')['item_cnt_day'].sum()\n",
    "\n",
    "fig,ax=plt.subplots()\n",
    "ax.plot(d_sale.index,d_sale.values)\n",
    "ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))\n",
    "ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))\n",
    "plt.xlabel('Date')\n",
    "plt.ylabel(\"Sales\")\n",
    "plt.title(\"Daily sales over time\")\n",
    "plt.show()\n",
    "\n",
    "fig,ax=plt.subplots()\n",
    "ax.fill_between(d_sale.index,d_sale.values)\n",
    "ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))\n",
    "ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))\n",
    "plt.xlabel('Date')\n",
    "plt.ylabel(\"Sales\")\n",
    "plt.title(\"Daily sales over time\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e81ac9c6",
   "metadata": {},
   "source": [
    "# 6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7fce4e7c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.decomposition import PCA\n",
    "\n",
    "df=load_iris()\n",
    "X=df.data\n",
    "y=df.target\n",
    "\n",
    "fig,ax=plt.subplots(4,4,figsize=(10,10))\n",
    "for i in range(4):\n",
    "    for j in range(4):\n",
    "        if i==j:\n",
    "            ax[i,j].hist(X[:,i],bins=10)\n",
    "        else:\n",
    "            ax[i,j].scatter(X[:,i],X[:,j],c=y,alpha=0.5)\n",
    "        if i==3:\n",
    "            ax[i,j].set_xlabel(df.feature_names[j])\n",
    "        if j==0:\n",
    "            ax[i,j].set_ylabel(df.feature_names[i])\n",
    "plt.show()\n",
    "\n",
    "\n",
    "pca=PCA(n_components=2)\n",
    "X_pca=pca.fit_transform(X)\n",
    "plt.scatter(X_pca[:,0],X_pca[:,1],c=y,alpha=0.5)\n",
    "plt.xlabel('PCA 1')\n",
    "plt.ylabel('PCA 2')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "55092808",
   "metadata": {},
   "source": [
    "# 7 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e98d017c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import geopandas as gpd\n",
    "\n",
    "gdf=gpd.read_file('tl_2010_us_state10.dbf')\n",
    "\n",
    "gdf=gdf.to_crs('EPSG:3857')\n",
    "\n",
    "gdf.plot(figsize=(30,30))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5280412",
   "metadata": {},
   "source": [
    "# 8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ebb9e317",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "x=np.array([1,2,3,4,5,6,7,8,9,10])\n",
    "y=np.array([1.2,2.4,2.6,4.2,4.4,5.5,6.8,8.1,8.5,10.1])\n",
    "\n",
    "lr=LinearRegression()\n",
    "lr.fit(x.reshape(-1,1),y)\n",
    "\n",
    "x_fit=np.linspace(min(x),max(x),100)\n",
    "y_fit=lr.predict(x_fit.reshape(-1,1))\n",
    "y_ci=lr.predict(x_fit.reshape(-1,1))\n",
    "y_ci_lw,y_ci_up=lr.predict(x_fit.reshape(-1,1)),lr.predict(x_fit.reshape(-1,1))\n",
    "\n",
    "for i in range(len(x_fit)):\n",
    "    prd=lr.predict(x_fit[i].reshape(-1,1))[0]\n",
    "    t_val=1.96\n",
    "    std_err=np.sqrt(np.sum((y-lr.predict(x.reshape(-1,1)))**2)/(len(x)-2))/np.sqrt(len(x))\n",
    "    intr=t_val*std_err\n",
    "    y_ci_lw[i]=prd-intr\n",
    "    y_ci_up[i]=prd+intr\n",
    "    \n",
    "plt.scatter(x,y,color='blue',label='Data')\n",
    "plt.plot(x_fit,y_fit,color='red',label='Trend Line')\n",
    "plt.fill_between(x_fit,y_ci_lw,y_ci_up,color='gray')\n",
    "plt.legend()\n",
    "plt.title(\"Trend with 95% Confidence Band\")\n",
    "plt.xlabel('X')\n",
    "plt.ylabel('Y')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "db7a3e5d",
   "metadata": {},
   "source": [
    "# 9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "98b6f72b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "df=pd.read_csv('StudentsPerformance.csv')\n",
    "\n",
    "plt.scatter(x='parental level of education', y='math score', data=df)\n",
    "plt.xticks(rotation=90);\n",
    "\n",
    "sns.stripplot(x='parental level of education', y='math score', data=df)\n",
    "plt.xticks(rotation=90);\n",
    "\n",
    "sns.stripplot(x='parental level of education', y='math score', data=df, alpha=0.5)\n",
    "plt.xticks(rotation=90);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "277eb9c3",
   "metadata": {},
   "source": [
    "# 10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "decdb4d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "df=pd.read_csv('StudentsPerformance.csv')\n",
    "\n",
    "plt.scatter(x='parental level of education', y='math score', data=df)\n",
    "plt.xticks(rotation=90);\n",
    "\n",
    "sns.stripplot(x='parental level of education', y='math score', data=df)\n",
    "plt.xticks(rotation=90);\n",
    "\n",
    "sns.stripplot(x='parental level of education', y='math score', data=df, alpha=0.5)\n",
    "plt.xticks(rotation=90);\n",
    "\n",
    "sns.stripplot(x='parental level of education', y='math score', data=df, palette='magma')\n",
    "plt.xticks(rotation=90);\n",
    "\n",
    "sns.stripplot(x='parental level of education', y='math score', data=df, palette='viridis')\n",
    "plt.xticks(rotation=90);"
   ]
  }
 ],
 "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.9.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
