Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ADS Programming Languages\n",
"\n",
"Based on a notebook by [Juan Nunez-Iglesias](https://gist.github.com/jni/3339985a016572f178d3c2f18e27ec0d); which was adapted from code written by Thomas P. Robitaille and Chris Beaumont.\n",
"\n",
"The following is released under the [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported](http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_US) License.\n",
"\n",
"Main changes are making better use of Pandas to save results as a CSV, and using standard plotting tools."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import os\n",
"\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"from datetime import datetime, date"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"plt.style.use('seaborn-whitegrid')\n",
"mpl.rc('font', size=14)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: need to generate an ADS API key and save in ``$HOME/.ads/dev_key`` in order for this to work."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# For development, use the sandbox so as to not hit query limits\n",
"# import ads.sandbox as ads\n",
"\n",
"# When ready to execute, use the full machinery\n",
"import ads"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def query_counts(name, query, year, acknowledgements=False):\n",
" if acknowledgements:\n",
" query = 'ack:' + query\n",
" modifiers = ' '.join(['year:%i'])\n",
" full_query = ' '.join([query, modifiers])\n",
" filter_query = ['database:astronomy',\n",
" 'property:refereed']\n",
" papers = ads.SearchQuery(q=full_query % year,\n",
" fq=filter_query)\n",
" papers.execute()\n",
" count = int(papers.response.numFound)\n",
" total_papers = ads.SearchQuery(q=modifiers % year)\n",
" total_papers.execute()\n",
" total_count = int(total_papers.response.numFound)\n",
" now = datetime.now().timetuple()\n",
" if year == now.tm_year:\n",
" days_in_year = date(year, 12, 31).timetuple().tm_yday\n",
" count *= days_in_year / now.tm_yday\n",
" total_count *= days_in_year / now.tm_yday\n",
" return dict(name=name, query=query, year=year, count=count, total_count=total_count)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"languages = {\n",
" 'IDL': ['IDL'], \n",
" 'Python': ['Python'], \n",
" 'Matlab': ['MATLAB', 'Matlab'], \n",
" 'Fortran': ['Fortran', 'FORTRAN'], \n",
" 'Java': ['Java'],\n",
" 'C': ['C programming language', 'C language',\n",
" 'C code', 'C library', 'C module'],\n",
" 'R': ['R programming language', 'R language',\n",
" 'R code', 'R library', 'R module'],\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style>\n",
" .dataframe thead tr:only-child th {\n",
" text-align: right;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>name</th>\n",
" <th>total_count</th>\n",
" <th>year</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>148.0</td>\n",
" <td>IDL</td>\n",
" <td>223951.0</td>\n",
" <td>2000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>147.0</td>\n",
" <td>IDL</td>\n",
" <td>241097.0</td>\n",
" <td>2001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>195.0</td>\n",
" <td>IDL</td>\n",
" <td>255949.0</td>\n",
" <td>2002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>236.0</td>\n",
" <td>IDL</td>\n",
" <td>274804.0</td>\n",
" <td>2003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>278.0</td>\n",
" <td>IDL</td>\n",
" <td>283661.0</td>\n",
" <td>2004</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count name total_count year\n",
"0 148.0 IDL 223951.0 2000\n",
"1 147.0 IDL 241097.0 2001\n",
"2 195.0 IDL 255949.0 2002\n",
"3 236.0 IDL 274804.0 2003\n",
"4 278.0 IDL 283661.0 2004"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"filename = 'ADS_results.csv'\n",
"\n",
"if not os.path.exists(filename):\n",
" results = pd.DataFrame([query_counts(name, query, year)\n",
" for name, queries in languages.items()\n",
" for query in queries\n",
" for year in range(2000, 2018)])\n",
" results.to_csv(filename, index=False)\n",
" \n",
"results = pd.read_csv(filename)\n",
"results.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"results = results.groupby(['name', 'year']).sum().reset_index()\n",
"results['pct'] = 100 * results['count'] / results['total_count']"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\noijdNR/AZw5DWloaVVVV1NfXd5r+0KFDjBw5EqPR6A1bsmSJz3VX30tX723/fQBMnjyZ9evXe+8T\nExO9162f3x9WWkgkJ4IUfYmkj2htbR4rzq1C8uabbxIcHOwTFxkZSWlpKVdccQXp6enMmjWLK6+8\nko0bN7Jv374O7/ZHZ5UBt9uN2+3udv7j4uJISkrqNP7YCoA/gVSp2kYYWz+7dU6AP7qK68730hn+\nvi+Xy4XL5erys6WTUslAQ4q+RNLPSEpKQq1WU1dXR2pqKgD19fXcc8893HnnnWzZsoWIiAif8e9X\nX3212wLU+v7du3dz5plnAp4u/8LCQkaOHNljdmi1WhobG733rasV2nPw4EGmT58OwJ49exg6dGiH\nis6xec/Pz6exsdE7B+KZZ56hqqqKMWPGdPm9dNULkZyczI4dO3zCdu3a1aPfh0TSH5AT+SSSfkZo\naCiXXXYZDz30EFu3buXQoUPcc8895ObmkpSURHh4OKWlpfzwww8UFRWxdu1avvzyS78z3/1hNBr5\nxS9+wcMPP8xPP/1EdnY2//M//8OwYcO8lYCeID09nXfffZfc3Fx+/PFHXnvttQ5pHnnkEXbv3s13\n333HmjVruP7667t857x584iJieGBBx7g0KFDbN68mTfeeIM5c+Yc93tprUxkZ2fT1NTk896rr76a\nAwcO8Oyzz3LkyBHee+891q1bxzXXXNND34ZE0j+QLX2JpB9y33338cQTT3Dbbbdht9vJzMzk73//\nOzqdjosuuojt27dz6623oigK6enp3HvvvTz//PPdFv57772XJ554gpUrV2K325k9ezavvvoqOp2u\nx2y44447uPfee7n00ktJTk7mtttuY9WqVT5prr76am666SacTif/9V//ddwd8jQaDS+88AIPP/ww\nl156KdHR0dx2222cd955uFyuLr+X6OhoLr74Ym6//Xbuvfden/cOGzaMtWvX8uSTT/K3v/2NYcOG\n8fvf/57LLrusx74PiaQ/oAg5KCWRSCQSyaBAdu9LJBKJRDJIkKIvkUgkEskgQYq+RCKRSCSDBCn6\nEolEIpEMEqToSyQSiUQySJCiL5FIJBLJIEGKvkQikUgkgwQp+hKJRCKRDBKk6EskEolEMkj4/z/s\nkvZH+I/8AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1171a0668>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(figsize=(8, 5))\n",
"\n",
"for name, group in results.groupby('name'):\n",
" if name in ['R', 'C', 'Java']:\n",
" continue\n",
" group.plot.line(x='year', y='pct', ax=ax, label=name, linewidth=4)\n",
"\n",
"ax.set(xlabel='Year of Publication',\n",
" ylabel='Percent of Publications',\n",
" ylim=(0.001, 0.3))\n",
"\n",
"fig.savefig('languages.png')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (ads)",
"language": "python",
"name": "ads"
},
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment