In [2]:
import os
import charts_function_list

In [3]:
home,data,output = charts_function_list.folder_setup()

In [4]:
os.chdir(data)

In [5]:
skyscraper = pd.read_csv('US_skyscraper.csv') #pull in data
skyscraper['City_Recode'] = charts_function_list.numeric_code(skyscraper,'City') #recode City to numeric value

In [6]:
os.chdir(output)

In [ ]:
#function to re-code whether the bldg is complete or not
def completed(series,color1,color2):
    if series<=2017:
        return color1
    else:
        return color2

In [12]:
#define colors
color1 = '#d95f02'
color2 = '#1b9e77'
    
skyscraper['Completed_Color_Code']= skyscraper['Completed'].apply(completed,color1=color1,color2=color2)

In [17]:
#set transparency variable
a=.7

#add figure, axis
fig = figure(figsize=(17,11))
fig.suptitle('Year 2021 : The United States Anticipated 225 Tallest Buildings by City',fontsize=18)
ax = fig.add_subplot(111)


#text scatter with em dash

for item in range(len(skyscraper)):
    ax.text(skyscraper['City_Recode'][item],skyscraper['Height (ft)'][item],'\u2014',ha='center',alpha=a
            ,
            color=skyscraper['Completed_Color_Code'][item],fontsize=20)
#axis labels
ax.set_ylabel('Height in Ft',fontsize=18,labelpad=20)

#x-ticks    
ax.set_xticks([x for x in range(1,28)])
ax.set_xticklabels(skyscraper['City'].unique(),rotation=90,fontsize=14,alpha=a)



#limits
ax.set_xlim(0,28)
ax.set_ylim(600,1800)

#yticks
ax.set_yticklabels([int(x) for x in ax.get_yticks()],fontsize=14,alpha=a)

#credits
ax.text(1,-.2,'Source: skyscrapercenter.com',transform=ax.transAxes,ha='right')
ax.text(1,-.22,'igotcharts, 2017',transform=ax.transAxes,ha='right')


ax.text(.7,.7,' \'\u2014\': completed',color=color1,
        transform=ax.transAxes,fontsize=18,ha='left',fontstyle='italic',alpha=.8)
ax.text(.7,.67,' \'\u2014\': not completed',color=color2,
        transform=ax.transAxes,fontsize=18,ha='left',fontstyle='italic',alpha=.8)

os.chdir(output)



plt.savefig('tallest_us_2021', 
            bbox_inches = 'tight', dpi = 300, pad_inches = .5,edgecolor = '#ffffff',facecolor = '#ffffff')



In [ ]: