import pandas as pd df = pd.read_csv("worldFirearmsMurdersAndOwnership.csv") xColumn = 'Average firearms per 100 people' yColumn = 'Homicide by firearm rate per 100,000 pop' x = df[xColumn] y = df[yColumn] import matplotlib.pyplot as plt fig1 = plt.figure() ax1 = plt.subplot() plt.scatter(x,y,) ax1.set_ylabel(yColumn) ax1.set_xlabel(xColumn) plt.grid(True) import numpy as np for ii in range(0,len(df)): cond1 = np.isnan(y.iloc[ii]) cond2 = np.isnan(x.iloc[ii]) if ~cond1 and ~cond2: plt.text(x.iloc[ii],y.iloc[ii],df['Country/Territory'].iloc[ii],fontsize=8) plt.show() lethality = df['Number of homicides by firearm'] / df['Average total all civilian firearms'] population = 100 * df['Average total all civilian firearms'] / df['Average firearms per 100 people'] x = population + 1 y = lethality + 1 xColumn = 'population' yColumn = 'Number of homicides by firearm' fig2 = plt.figure() ax2 = plt.subplot() plt.scatter(x,y,) ax2.set_ylabel(yColumn) ax2.set_xlabel(xColumn) plt.grid(True) for ii in range(0,len(df)): cond1 = np.isnan(y.iloc[ii]) cond2 = np.isnan(x.iloc[ii]) if ~cond1 and ~cond2: plt.text(x.iloc[ii],y.iloc[ii],df['Country/Territory'].iloc[ii],fontsize=8) plt.show() population = 100 * df['Average total all civilian firearms'] / df['Average firearms per 100 people'] x = population xColumn = 'population' yColumn = 'Number of homicides by firearm' y = df[yColumn] + 1 fig3 = plt.figure() ax3 = plt.subplot() plt.scatter(x,y,) ax3.set_ylabel(yColumn) ax3.set_xlabel(xColumn) ax3.set_yscale('log') ax3.set_xscale('log') plt.grid(True) for ii in range(0,len(df)): cond1 = np.isnan(y.iloc[ii]) cond2 = np.isnan(x.iloc[ii]) if ~cond1 and ~cond2: plt.text(x.iloc[ii],y.iloc[ii],df['Country/Territory'].iloc[ii],fontsize=8) plt.show()