{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sanitizing Data\n", "\n", "Often data is messy. In our case we have two problems with the data.\n", "\n", " - values are missing\n", " - not in a format easy to do machine learning on.\n", " \n", "Machine Learning algorithms and in general all statistics algorithms like arrays." ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [], "source": [ "import json\n", "from collections import defaultdict\n", "import re\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import requests\n", "\n", "def convert_dict_to_pandas_frame(data, dict_frames):\n", " data_columns = defaultdict(list)\n", " for d in data.values():\n", " for key in dict_frames:\n", " subkey = d\n", " subkeys = dict_frames[key].split('.')\n", " for k in subkeys:\n", " if re.match(r'\\d+', k) and subkey is not None:\n", " index = int(k)\n", " if index >= len(subkey):\n", " subkey = None\n", " else:\n", " subkey = subkey[index]\n", " else:\n", " if subkey is not None:\n", " subkey = subkey.get(k)\n", " data_columns[key].append(subkey)\n", " df = pd.DataFrame.from_dict(data_columns)\n", " return df.set_index('material_id')" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of materials 6928\n" ] } ], "source": [ "## data will not be available locally so we need to download it\n", "# data = json.load(open('../data/mpdata.json'))\n", "data = requests.get('https://gitlab.com/costrouc/mse-machinelearning-notebooks/raw/master/data/mpdata.json').json()\n", "print('Number of materials', len(data))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we look at one of the materials we can see that the data is not in the best format." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'energy': -4.0645998,\n", " 'energy_per_atom': -4.0645998,\n", " 'volume': 11.852765009390795,\n", " 'formation_energy_per_atom': 0.03469247000000042,\n", " 'nsites': 1,\n", " 'unit_cell_formula': {'Cu': 1.0},\n", " 'pretty_formula': 'Cu',\n", " 'is_hubbard': False,\n", " 'elements': ['Cu'],\n", " 'nelements': 1,\n", " 'e_above_hull': 0.03469247000000042,\n", " 'hubbards': {},\n", " 'is_compatible': True,\n", " 'spacegroup': {'source': 'spglib',\n", " 'symbol': 'Im-3m',\n", " 'number': 229,\n", " 'point_group': 'm-3m',\n", " 'crystal_system': 'cubic',\n", " 'hall': '-I 4 2 3'},\n", " 'task_ids': ['mp-998890',\n", " 'mp-998895',\n", " 'mp-998898',\n", " 'mp-998906',\n", " 'mp-1056211',\n", " 'mp-1056219',\n", " 'mp-1056226',\n", " 'mp-1056233'],\n", " 'band_gap': 0.0,\n", " 'density': 8.902615866613178,\n", " 'icsd_id': None,\n", " 'icsd_ids': [183263],\n", " 'cif': \"# generated using pymatgen\\ndata_Cu\\n_symmetry_space_group_name_H-M 'P 1'\\n_cell_length_a 2.48779079\\n_cell_length_b 2.48779079\\n_cell_length_c 2.48779079\\n_cell_angle_alpha 109.47122063\\n_cell_angle_beta 109.47122063\\n_cell_angle_gamma 109.47122063\\n_symmetry_Int_Tables_number 1\\n_chemical_formula_structural Cu\\n_chemical_formula_sum Cu1\\n_cell_volume 11.85276501\\n_cell_formula_units_Z 1\\nloop_\\n _symmetry_equiv_pos_site_id\\n _symmetry_equiv_pos_as_xyz\\n 1 'x, y, z'\\nloop_\\n _atom_site_type_symbol\\n _atom_site_label\\n _atom_site_symmetry_multiplicity\\n _atom_site_fract_x\\n _atom_site_fract_y\\n _atom_site_fract_z\\n _atom_site_occupancy\\n Cu Cu1 1 0.000000 0.000000 0.000000 1\\n\",\n", " 'total_magnetization': -7e-07,\n", " 'material_id': 'mp-998890',\n", " 'oxide_type': 'None',\n", " 'tags': ['Copper', 'High pressure experimental phase'],\n", " 'elasticity': {'G_Reuss': -17.960241741427517,\n", " 'G_VRH': 19.06895589595666,\n", " 'G_Voigt': 56.098153533340835,\n", " 'G_Voigt_Reuss_Hill': 19.06895589595666,\n", " 'K_Reuss': 145.87229552135727,\n", " 'K_VRH': 145.87229552135733,\n", " 'K_Voigt': 145.87229552135736,\n", " 'K_Voigt_Reuss_Hill': 145.87229552135733,\n", " 'elastic_anisotropy': -20.617315830427692,\n", " 'elastic_tensor': [[137.0, 150.0, 150.0, -0.0, 0.0, 0.0],\n", " [150.0, 137.0, 150.0, 0.0, -0.0, -0.0],\n", " [150.0, 150.0, 137.0, -0.0, 0.0, -0.0],\n", " [-0.0, 0.0, -0.0, 98.0, 0.0, 0.0],\n", " [0.0, -0.0, 0.0, 0.0, 98.0, 0.0],\n", " [0.0, -0.0, -0.0, 0.0, 0.0, 98.0]],\n", " 'homogeneous_poisson': 0.43736737340081105,\n", " 'poisson_ratio': 0.43736737340081105,\n", " 'universal_anisotropy': -20.617315830427692,\n", " 'elastic_tensor_original': [[137.23435775103798,\n", " 150.17225544048853,\n", " 150.20736652133866,\n", " 0.0,\n", " 0.00570621333333458,\n", " -0.0016961700000014818],\n", " [150.17956449887507,\n", " 137.23059429293244,\n", " 150.20736652133866,\n", " 0.0011605700000007649,\n", " 0.00553183666666768,\n", " -0.001712109999999591],\n", " [150.17956449887507,\n", " 150.17225544048853,\n", " 137.26733472684245,\n", " 0.0,\n", " 0.0056197499999995045,\n", " -0.0018734200000007824],\n", " [0.0, 0.0, 0.0, 97.81118299333336, 0.0, 0.0],\n", " [0.0, 0.0, 0.0, 0.0, 97.81105978333335, 0.0],\n", " [0.0, 0.0, 0.0, 0.0, 0.0, 97.81082478666669]],\n", " 'nsites': 1,\n", " 'compliance_tensor': [[-50.7, 26.5, 26.5, -0.0, -0.0, 0.0],\n", " [26.5, -50.7, 26.5, 0.0, -0.0, -0.0],\n", " [26.5, 26.5, -50.7, -0.0, 0.0, -0.0],\n", " [-0.0, 0.0, -0.0, 10.2, 0.0, 0.0],\n", " [-0.0, -0.0, 0.0, 0.0, 10.2, 0.0],\n", " [0.0, -0.0, -0.0, 0.0, 0.0, 10.2]]},\n", " 'full_formula': 'Cu1'}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "first_key = next(iter(data))\n", "data[first_key]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Always aim to convert your data to a tabular form first" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [], "source": [ "key_map = {\n", " 'material_id': 'material_id',\n", " 'energy': 'energy',\n", " 'volume': 'volume',\n", " 'nsites': 'nsites',\n", " 'energy_per_atom': 'energy_per_atom',\n", " 'pretty_formula': 'pretty_formula',\n", " 'spacegroup': 'spacegroup.number',\n", " 'band_gap': 'band_gap',\n", " 'density': 'density',\n", " 'total_magnetization': 'total_magnetization',\n", " # Elacticity\n", " 'poisson_ratio': 'elasticity.poisson_ratio',\n", " 'bulk_modulus_voigt': 'elasticity.K_Voigt',\n", " 'bulk_modulus_reuss': 'elasticity.K_Reuss',\n", " 'bulk_modulus_vrh': 'elasticity.K_VRH',\n", " 'shear_modulus_voigt': 'elasticity.G_Voigt',\n", " 'shear_modulus_vrh': 'elasticity.G_VRH'\n", "}\n", "\n", "df = convert_dict_to_pandas_frame(data, key_map)" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 6928 entries, mp-998890 to mp-30883\n", "Data columns (total 15 columns):\n", "energy 6928 non-null float64\n", "volume 6928 non-null float64\n", "nsites 6928 non-null int64\n", "energy_per_atom 6928 non-null float64\n", "pretty_formula 6928 non-null object\n", "spacegroup 6928 non-null int64\n", "band_gap 6928 non-null float64\n", "density 6928 non-null float64\n", "total_magnetization 6928 non-null float64\n", "poisson_ratio 896 non-null float64\n", "bulk_modulus_voigt 896 non-null float64\n", "bulk_modulus_reuss 896 non-null float64\n", "bulk_modulus_vrh 896 non-null float64\n", "shear_modulus_voigt 896 non-null float64\n", "shear_modulus_vrh 896 non-null float64\n", "dtypes: float64(12), int64(2), object(1)\n", "memory usage: 866.0+ KB\n" ] } ], "source": [ "df.info()" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
energyvolumensitesenergy_per_atompretty_formulaspacegroupband_gapdensitytotal_magnetizationpoisson_ratiobulk_modulus_voigtbulk_modulus_reussbulk_modulus_vrhshear_modulus_voigtshear_modulus_vrh
material_id
mvc-15868-102.229807182.56240020-5.111490ZnCoO3620.00006.2702504.401870NaNNaNNaNNaNNaNNaN
mp-714908-278.665566451.64541642-6.634894Fe10O1120.50455.4005732.000009NaNNaNNaNNaNNaNNaN
mp-2327-58.231276518.17163234-1.712685TiZn16630.00007.0143250.0000330.34179379.29482778.59976478.94729529.01469727.925264
mvc-12563-183.252030324.83637628-6.544715Mn2ZnO4590.29724.89278032.000000NaNNaNNaNNaNNaNNaN
mp-1038987-19.747382310.75306312-1.645615CaMg5380.00001.727083-0.000737NaNNaNNaNNaNNaNNaN
\n", "
" ], "text/plain": [ " energy volume nsites energy_per_atom pretty_formula \\\n", "material_id \n", "mvc-15868 -102.229807 182.562400 20 -5.111490 ZnCoO3 \n", "mp-714908 -278.665566 451.645416 42 -6.634894 Fe10O11 \n", "mp-2327 -58.231276 518.171632 34 -1.712685 TiZn16 \n", "mvc-12563 -183.252030 324.836376 28 -6.544715 Mn2ZnO4 \n", "mp-1038987 -19.747382 310.753063 12 -1.645615 CaMg5 \n", "\n", " spacegroup band_gap density total_magnetization \\\n", "material_id \n", "mvc-15868 62 0.0000 6.270250 4.401870 \n", "mp-714908 2 0.5045 5.400573 2.000009 \n", "mp-2327 63 0.0000 7.014325 0.000033 \n", "mvc-12563 59 0.2972 4.892780 32.000000 \n", "mp-1038987 38 0.0000 1.727083 -0.000737 \n", "\n", " poisson_ratio bulk_modulus_voigt bulk_modulus_reuss \\\n", "material_id \n", "mvc-15868 NaN NaN NaN \n", "mp-714908 NaN NaN NaN \n", "mp-2327 0.341793 79.294827 78.599764 \n", "mvc-12563 NaN NaN NaN \n", "mp-1038987 NaN NaN NaN \n", "\n", " bulk_modulus_vrh shear_modulus_voigt shear_modulus_vrh \n", "material_id \n", "mvc-15868 NaN NaN NaN \n", "mp-714908 NaN NaN NaN \n", "mp-2327 78.947295 29.014697 27.925264 \n", "mvc-12563 NaN NaN NaN \n", "mp-1038987 NaN NaN NaN " ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.sample(5)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [], "source": [ "# write the data to a csv file\n", "df.to_csv('../data/mpdata.csv')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Lets Explore the Data\n", "\n", "Exploring the data is important." ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6928" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# how many materials are we looking at?\n", "len(df)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1 680\n", "14 584\n", "2 452\n", "12 314\n", "62 291\n", "8 251\n", "15 208\n", "63 205\n", "166 160\n", "225 158\n", "221 155\n", "194 146\n", "123 117\n", "227 110\n", "61 102\n", "74 99\n", "5 96\n", "139 88\n", "19 86\n", "4 83\n", "160 81\n", "33 72\n", "6 72\n", "186 71\n", "11 69\n", "Name: spacegroup, dtype: int64" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# look at most common spacegroups\n", "df['spacegroup'].value_counts()[:25]" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "how many are metals? 2270 / 6928\n", "material with highest band gap 17.8914 He\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# band gaps\n", "print('how many are metals?', len(df[df['band_gap'] == 0.0]), '/', len(df))\n", "print('material with highest band gap', df['band_gap'].max(), df.loc[df['band_gap'].idxmax()]['pretty_formula'])\n", "\n", "condition = (df['band_gap'] > 0.0) & (df['band_gap'] < 10)\n", "df[condition]['band_gap'].plot.hist(bins=100)" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# cohesive energies\n", "df['energy'].plot.hist(bins=100)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [], "source": [ "conditions = (df['shear_modulus_vrh'] > 0) & (df['shear_modulus_vrh'] < 500) & \\\n", " (df['bulk_modulus_vrh'] > 0) & (df['bulk_modulus_vrh'] < 500) & \\\n", " (df['poisson_ratio'] > 0) & (df['poisson_ratio'] < 0.5)" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# shear modulus vrh of metals vs nonmetals\n", "\n", "is_metal = df['band_gap'] == 0.0\n", "is_not_metal = df['band_gap'] > 0.0\n", "bins = 10**np.linspace(0, 2.7, 25) # 10^2.7 ~ 500\n", "ax = df[conditions & is_not_metal]['shear_modulus_vrh'].plot.hist(bins=bins, alpha=0.5, density=True)\n", "ax = df[conditions & is_metal]['shear_modulus_vrh'].plot.hist(ax=ax, bins=bins, color='red', alpha=0.5, density=True)\n", "ax.set_xscale('log')" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEACAYAAACpoOGTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAD6VJREFUeJzt3XusZWV9xvHvI0i4tBWVU0oZpgcroSW2jXQ0NsRexDboKFBLUWNbSidOjdZLbVIHYor/mAyJFbFpqaNYRmsVilSwYK1SL2nSggOaoFDiBAcdBBkVxQsRwV//2GuY4/jOzNpnzt5rn3O+n+Rk1nr3Wmv/4M2ZZ951eVeqCkmS9va4oQuQJM0mA0KS1GRASJKaDAhJUpMBIUlqMiAkSU0GhCSpyYCQJDUZEJKkJgNCktR06NAFHIxjjjmm5ufnhy5DkpaVW2655etVNXeg7ZZ1QMzPz7Nt27ahy5CkZSXJ3X228xSTJKnJgJAkNRkQkqQmA0KS1GRASJKaDAhJUpMBIUlqMiAkSU3L+kE5SeOb33T9WNvv2Lx+QpVo1jmCkCQ1GRCSpCYDQpLUZEBIkpoMCElSkwEhSWoyICRJTQaEJKnJgJAkNRkQkqQmA0KS1GRASJKaDAhJUpMBIUlqmth030neDbwAuL+qnta1PQm4EpgHdgDnVtUDSQJcCjwf+D7wp1V166Rqk1aKcafulsYxyRHEFcAZe7VtAm6sqpOAG7t1gOcBJ3U/G4HLJliXJKmHiQVEVX0a+OZezWcBW7vlrcDZC9rfUyP/Cxyd5LhJ1SZJOrBpX4M4tqru7ZbvA47tlo8HvrJgu51dmyRpIINdpK6qAmrc/ZJsTLItybZdu3ZNoDJJEkw/IL62+9RR9+f9Xfs9wAkLtlvTtf2EqtpSVeuqat3c3NxEi5Wk1WzaAXEdcF63fB5w7YL2P8nIs4BvLzgVJUkawCRvc30/8NvAMUl2AhcBm4GrkmwA7gbO7Ta/gdEtrtsZ3eZ6/qTqkiT1M7GAqKqX7uOj0xvbFvCqSdUiSRqfT1JLkpoMCElSkwEhSWoyICRJTQaEJKnJgJAkNRkQkqQmA0KS1GRASJKaDAhJUpMBIUlqMiAkSU0GhCSpyYCQJDUZEJKkpom9D0LS6jW/6fqx99mxef0EKtHBcAQhSWpyBCFpvxYzGtDK4AhCktRkQEiSmgwISVKTASFJajIgJElNBoQkqcmAkCQ1GRCSpCYDQpLUZEBIkpoMCElS0yABkeQvk3whyeeTvD/J4UlOTHJTku1Jrkxy2BC1SZJGph4QSY4HXgOsq6qnAYcALwEuBi6pqqcCDwAbpl2bJGmPoU4xHQockeRQ4EjgXuA5wNXd51uBsweqTZLEANN9V9U9Sd4CfBl4CPhP4BbgW1X1SLfZTuD41v5JNgIbAdauXTv5gqUpcVptzZohTjE9ETgLOBH4eeAo4Iy++1fVlqpaV1Xr5ubmJlSlJGmIU0zPBb5UVbuq6ofANcBpwNHdKSeANcA9A9QmSeoMERBfBp6V5MgkAU4Hbgc+AZzTbXMecO0AtUmSOlMPiKq6idHF6FuB27oatgBvAF6fZDvwZODyadcmSdpjkHdSV9VFwEV7Nd8FPHOAciRJDT5JLUlqMiAkSU0GhCSpyYCQJDUZEJKkJgNCktRkQEiSmgwISVKTASFJajIgJElNBoQkqcmAkCQ19QqIJL8y6UIkSbOl7wjiH5LcnOSVSZ4w0YokSTOhV0BU1bOBlwEnALck+ZckvzvRyiRJg+p9DaKqvgi8kdGLfX4LeHuS/0vyokkVJ0kaTt9rEL+a5BLgDuA5wAur6pe75UsmWJ8kaSB93yj3d8C7gAur6qHdjVX11SRvnEhlkqRB9Q2I9cBDVfUoQJLHAYdX1fer6r0Tq06SNJi+1yA+DhyxYP3Irk2StEL1DYjDq+q7u1e65SMnU5IkaRb0DYjvJTl190qSXwce2s/2kqRlru81iNcB/5rkq0CAnwNePLGqJEmD6xUQVfWZJL8EnNw13VlVP5xcWZKkofUdQQA8A5jv9jk1CVX1nolUJUkaXK+ASPJe4BeBzwGPds0FGBCStEL1HUGsA06pqppkMZKk2dH3LqbPM7owLUlaJfqOII4Bbk9yM/CD3Y1VdeZivjTJ0Yym7ngao1NVfwbcCVzJ6DrHDuDcqnpgMceXJB28vgHxpiX+3kuB/6iqc5IcxuihuwuBG6tqc5JNwCZGM8dKkgbQ930Qn2L0r/rHd8ufAW5dzBd2Lxz6TeDy7tgPV9W3gLOArd1mW4GzF3N8SdLS6Dvd98uBq4F3dE3HAx9a5HeeCOwC/inJZ5O8K8lRwLFVdW+3zX3AsYs8viRpCfS9SP0q4DTgQXjs5UE/u8jvPBQ4Fbisqp4OfI/R6aTHdHdLNe+YSrIxybYk23bt2rXIEiRJB9I3IH5QVQ/vXklyKPv4C7yHncDOqrqpW7+aUWB8Lclx3fGPA+5v7VxVW6pqXVWtm5ubW2QJkqQD6XuR+lNJLgSO6N5F/Urgw4v5wqq6L8lXkpxcVXcCpwO3dz/nAZu7P69dzPGlWTC/6fqhS5AOWt+A2ARsAG4D/hy4gdFtqov1auB93R1MdwHnMxrNXJVkA3A3cO5BHF+SdJD6Ttb3I+Cd3c9Bq6rPMXo6e2+nL8XxJUkHr+9cTF+icc2hqp6y5BVJkmbCOHMx7XY48IfAk5a+HEnSrOj7oNw3FvzcU1VvA9ZPuDZJ0oD6nmI6dcHq4xiNKMZ5l4QkaZnp+5f83y5YfoRuMr0lr0aSNDP63sX0O5MuRJI0W/qeYnr9/j6vqrcuTTmSpFkxzl1MzwCu69ZfCNwMfHESRUmShtc3INYAp1bVdwCSvAm4vqr+aFKFSZKG1XeyvmOBhxesP4zTcUvSitZ3BPEe4OYk/9atn82el/tIklagvncxvTnJR4Bnd03nV9VnJ1eWJGlofU8xwei90Q9W1aXAziQnTqgmSdIM6PvK0YuANwAXdE2PB/55UkVJkobXdwTx+8CZjF4PSlV9FfjpSRUlSRpe34B4eOF7opMcNbmSJEmzoG9AXJXkHcDRSV4OfJwlenmQJGk29b2L6S3du6gfBE4G/qaqPjbRyiRJgzpgQCQ5BPh4N2GfoSBJq8QBTzFV1aPAj5I8YQr1SJJmRN8nqb8L3JbkY3R3MgFU1WsmUpUkaXB9A+Ka7keStErsNyCSrK2qL1eV8y5J0ipzoGsQH9q9kOSDE65FkjRDDhQQWbD8lEkWIkmaLQe6BlH7WJakJTW/6fqxtt+xef2EKtFuBwqIX0vyIKORxBHdMt16VdXPTLQ6SdJg9hsQVXXItAqRJM2Wcd4HIUlaRQYLiCSHJPlskn/v1k9MclOS7UmuTHLYULVJkoYdQbwWuGPB+sXAJVX1VOABYMMgVUmSgIECIskaYD3wrm49wHOAq7tNtgJnD1GbJGlkqBHE24C/Bn7UrT8Z+FZVPdKt7wSOH6IwSdLI1AMiyQuA+6vqlkXuvzHJtiTbdu3atcTVSZJ2G2IEcRpwZpIdwAcYnVq6lNHb6nbfdrsGuKe1c1Vtqap1VbVubm5uGvVK0qo09YCoqguqak1VzQMvAf6rql4GfAI4p9vsPODaadcmSdpjlp6DeAPw+iTbGV2TuHzgeiRpVev7PoiJqKpPAp/slu8CnjlkPZKkPWZpBCFJmiEGhCSpyYCQJDUZEJKkJgNCktRkQEiSmgwISVKTASFJahr0QTlpuZjfdP3QJUhT5whCktRkQEiSmgwISVKT1yAkrRqLuZa0Y/P6CVSyPDiCkCQ1OYLQsua/CKXJcQQhSWoyICRJTQaEJKnJgJAkNRkQkqQmA0KS1GRASJKaDAhJUpMBIUlqMiAkSU1OtaGZ4ot5pNnhCEKS1GRASJKaph4QSU5I8okktyf5QpLXdu1PSvKxJF/s/nzitGuTJO0xxAjiEeCvquoU4FnAq5KcAmwCbqyqk4Abu3VJ0kCmHhBVdW9V3dotfwe4AzgeOAvY2m22FTh72rVJkvYY9BpEknng6cBNwLFVdW/30X3AsQOVJUliwNtck/wU8EHgdVX1YJLHPquqSlL72G8jsBFg7dq10yhVK4y30kr9DDKCSPJ4RuHwvqq6pmv+WpLjus+PA+5v7VtVW6pqXVWtm5ubm07BkrQKDXEXU4DLgTuq6q0LProOOK9bPg+4dtq1SZL2GOIU02nAHwO3Jflc13YhsBm4KskG4G7g3AFqkyR1ph4QVfXfQPbx8enTrEXS8uW1pMnzSWpJUpOT9Wli/BeetLw5gpAkNRkQkqQmA0KS1GRASJKaDAhJUpN3MakX70iSVh9HEJKkJgNCktRkQEiSmgwISVKTASFJajIgJElNBoQkqcmAkCQ1+aDchI37gNmOzesn/h2L/R5Jq4sjCElSkyOIVcqpMyQdiCMISVKTASFJajIgJElNXoMYwzTO23ttQNKscAQhSWpyBCFJ+zGNZ5lmlSMISVKTASFJalq1p5i8GCxpElbS1DeOICRJTTMVEEnOSHJnku1JNg1djyStZjMTEEkOAf4eeB5wCvDSJKcMW5UkrV6zdA3imcD2qroLIMkHgLOA2wetSpImbFavW8zMCAI4HvjKgvWdXZskaQCzNILoJclGYGO3+t0kdy74+AnAtxu7tdqPAb6+9BWObV81T/t44+zXZ9sDbTNOX+2r3T5c/H4H24eL+cw+XML9cvGif8cAfqFXNVU1Ez/AbwAfXbB+AXDBmMfY0rcd2Db0f/P+ap728cbZr8+2B9pmnL6yD2evDxfzmX043T5civ+mWTrF9BngpCQnJjkMeAlw3ZjH+PCY7bNgqWtb7PHG2a/PtgfaZty+sg+Xdr+D7cPFfGYfLu1+i/0d6y1d0syEJM8H3gYcAry7qt48we/aVlXrJnV8TZ59uPzZh7Ntpq5BVNUNwA1T+rotU/oeTY59uPzZhzNspkYQkqTZMUvXICRJM8SAkCQ1GRCSpCYDopPkqCRbk7wzycuGrkfjS/KUJJcnuXroWjS+JGd3v39XJvm9oevRCg+IJO9Ocn+Sz+/V3po19kXA1VX1cuDMqRerpnH6sKruqqoNw1SqljH770Pd798rgBcPUa9+3IoOCOAK4IyFDfuZNXYNe+aCenSKNWr/rqB/H2r2XMH4/ffG7nMNbEUHRFV9GvjmXs2PzRpbVQ8Du2eN3ckoJGCF/39ZTsbsQ82YcfovIxcDH6mqW6ddq37SavyLcF+zxl4D/EGSy5jtKQG0jz5M8uQk/wg8PckFw5SmHvb1O/hq4LnAOUleMURh+nEz9ST1kKrqe8D5Q9ehxauqbzA6f61lqKreDrx96Dq0x2ocQdwDnLBgfU3XpuXDPlze7L9lYjUGxFLMGqth2YfLm/23TKzogEjyfuB/gJOT7EyyoaoeAf4C+ChwB3BVVX1hyDq1b/bh8mb/LW9O1idJalrRIwhJ0uIZEJKkJgNCktRkQEiSmgwISVKTASFJajIgJElNBoQkqcmAkCQ1/T8ejToprcTVoQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bins = 10**np.linspace(0, 2.7, 25) # 10^2.7 ~ 500\n", "ax = df[conditions]['shear_modulus_vrh'].plot.hist(bins=bins)\n", "ax.set_xscale('log')" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bins = 10**np.linspace(0, 2.7, 25)\n", "ax = df[conditions]['bulk_modulus_vrh'].plot.hist(bins=bins)\n", "ax.set_xscale('log')" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df[conditions].plot(kind='scatter', x='shear_modulus_vrh', y='bulk_modulus_vrh', c='poisson_ratio')\n", "ax.set_xscale('log')\n", "ax.set_yscale('log')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compare with publication [from materials project](https://www.nature.com/articles/sdata20159).\n", "\n", "![Elastic Constant Image](../images/elasticity_calculations.png)\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }