{ "cells": [ { "cell_type": "code", "execution_count": 11, "id": "da0cc1f9", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from collections import Counter\n", "import seaborn as sns\n", "import matplotlib\n", "font = {'family' : 'Arial',\n", " 'weight' : 'normal',\n", " 'size' : 12}\n", "matplotlib.rc('font', **font)\n", "import altair as alt\n", "pd.set_option('display.max_rows', 500)\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 12, "id": "b87e11fb", "metadata": {}, "outputs": [], "source": [ "author = pd.read_csv('../data/ht_class/ht_cleaned_author_df.csv')\n", "paper = pd.read_csv('../data/ht_class/ht_cleaned_paper_df.csv')" ] }, { "cell_type": "markdown", "id": "c86de97a", "metadata": {}, "source": [ "### Number of publications by year" ] }, { "cell_type": "code", "execution_count": 13, "id": "877f7f98", "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", "
YearNumber of Publications
01990-01-0152
11991-01-0150
21992-01-0153
31993-01-0155
41994-01-0153
\n", "
" ], "text/plain": [ " Year Number of Publications\n", "0 1990-01-01 52\n", "1 1991-01-01 50\n", "2 1992-01-01 53\n", "3 1993-01-01 55\n", "4 1994-01-01 53" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pub_num_df = paper.groupby(\n", " 'Year').size().reset_index(name = 'Number of Publications')\n", "pub_num_df['Year'] = pd.to_datetime(\n", " pub_num_df['Year'], format=\"%Y\"\n", ")\n", "pub_num_df.head()" ] }, { "cell_type": "code", "execution_count": 14, "id": "2508935e", "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", "
YearNumber of Publications
272017-01-01114
282018-01-01127
292019-01-01129
302020-01-01157
312021-01-01170
\n", "
" ], "text/plain": [ " Year Number of Publications\n", "27 2017-01-01 114\n", "28 2018-01-01 127\n", "29 2019-01-01 129\n", "30 2020-01-01 157\n", "31 2021-01-01 170" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pub_num_df.tail()" ] }, { "cell_type": "markdown", "id": "bae056e1", "metadata": {}, "source": [ "### Number of unique authors" ] }, { "cell_type": "code", "execution_count": 15, "id": "2c94bd33", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "110" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# how many rows miss openalex author id\n", "author[author['OpenAlex Author ID'].isnull()].shape[0]" ] }, { "cell_type": "code", "execution_count": 16, "id": "1eb832d6", "metadata": {}, "outputs": [], "source": [ "author_with_author_id = author[\n", " author['OpenAlex Author ID'].notnull()]" ] }, { "cell_type": "code", "execution_count": 17, "id": "72e1818e", "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", "
YearNumber of Unique Authors
01990-01-01118
11991-01-01126
21992-01-01121
31993-01-01117
41994-01-01130
\n", "
" ], "text/plain": [ " Year Number of Unique Authors\n", "0 1990-01-01 118\n", "1 1991-01-01 126\n", "2 1992-01-01 121\n", "3 1993-01-01 117\n", "4 1994-01-01 130" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "unique_author_num_df = author_with_author_id.groupby(\n", " 'Year')['OpenAlex Author ID'].nunique().reset_index(\n", " name = 'Number of Unique Authors')\n", "unique_author_num_df['Year'] = pd.to_datetime(\n", " unique_author_num_df['Year'], format=\"%Y\",\n", ")\n", "unique_author_num_df.head()" ] }, { "cell_type": "code", "execution_count": 18, "id": "004e5d73", "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", "
YearNumber of Unique Authors
272017-01-01455
282018-01-01494
292019-01-01551
302020-01-01640
312021-01-01670
\n", "
" ], "text/plain": [ " Year Number of Unique Authors\n", "27 2017-01-01 455\n", "28 2018-01-01 494\n", "29 2019-01-01 551\n", "30 2020-01-01 640\n", "31 2021-01-01 670" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "unique_author_num_df.tail()" ] }, { "cell_type": "code", "execution_count": 19, "id": "63f9aede", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "467.79661016949154" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "((670 - 118)/118)*100" ] }, { "cell_type": "markdown", "id": "27788fa4", "metadata": {}, "source": [ "### Non-VIS VS VIS citations" ] }, { "cell_type": "code", "execution_count": 20, "id": "5c4a95fb", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# VIS PAPERS' OPENALEX IDS\n", "ids = paper['OpenAlex ID'].tolist()\n", "len(list(set(ids))) == paper.shape[0]" ] }, { "cell_type": "code", "execution_count": 21, "id": "d1b3ed04", "metadata": {}, "outputs": [], "source": [ "# Yes, I should not use the unique paper df\n", "ref = pd.read_csv('../data/processed/openalex_reference_paper_df.csv')\n", "ref = ref[ref['OpenAlex ID'].notnull()]" ] }, { "cell_type": "code", "execution_count": 22, "id": "0452502d", "metadata": {}, "outputs": [], "source": [ "cit = pd.read_csv('../data/processed/openalex_citation_paper_df.csv')\n", "cit = cit[cit['Citation Paper OpenAlex ID'].notnull()]" ] }, { "cell_type": "code", "execution_count": 23, "id": "b959806d", "metadata": {}, "outputs": [], "source": [ "ref['VIS'] = ref['OpenAlex ID'].apply(\n", " lambda x: 'Yes' if x in ids else 'No'\n", ")" ] }, { "cell_type": "code", "execution_count": 24, "id": "e2cdf5fa", "metadata": {}, "outputs": [], "source": [ "cit['VIS'] = cit['Citation Paper OpenAlex ID'].apply(\n", " lambda x: 'Yes' if x in ids else 'No'\n", ")" ] }, { "cell_type": "code", "execution_count": 25, "id": "2dfd8a64", "metadata": {}, "outputs": [], "source": [ "tuples = []\n", "for group in cit.groupby('OpenAlex Year'):\n", " year = group[0]\n", " total = group[1].shape[0]\n", " for subgroup in group[1].groupby('VIS'):\n", " type_of_paper = subgroup[0] # true or false\n", " count = subgroup[1].shape[0]\n", " ratio = count / total\n", " tuples.append((year, type_of_paper, count, ratio))" ] }, { "cell_type": "code", "execution_count": 26, "id": "1b298589", "metadata": {}, "outputs": [], "source": [ "cit_df = pd.DataFrame(list(tuples), columns=['year', 'type', 'count', 'ratio']) " ] }, { "cell_type": "code", "execution_count": 27, "id": "3dffe128", "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", " \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", "
yeartypecountratioYear
31990.0Non-VIS60.7500001990-01-01
41990.0VIS20.2500001990-01-01
51991.0Non-VIS560.7368421991-01-01
61991.0VIS200.2631581991-01-01
71992.0Non-VIS1130.7106921992-01-01
81992.0VIS460.2893081992-01-01
91993.0Non-VIS2020.8015871993-01-01
101993.0VIS500.1984131993-01-01
111994.0Non-VIS2850.7894741994-01-01
121994.0VIS760.2105261994-01-01
131995.0Non-VIS4540.8092691995-01-01
141995.0VIS1070.1907311995-01-01
151996.0Non-VIS4850.8220341996-01-01
161996.0VIS1050.1779661996-01-01
171997.0Non-VIS7660.8290041997-01-01
181997.0VIS1580.1709961997-01-01
191998.0Non-VIS8090.7884991998-01-01
201998.0VIS2170.2115011998-01-01
211999.0Non-VIS10790.8396891999-01-01
221999.0VIS2060.1603111999-01-01
232000.0Non-VIS13550.8479352000-01-01
242000.0VIS2430.1520652000-01-01
252001.0Non-VIS16640.8917472001-01-01
262001.0VIS2020.1082532001-01-01
272002.0Non-VIS21590.8895762002-01-01
282002.0VIS2680.1104242002-01-01
292003.0Non-VIS27460.8988542003-01-01
302003.0VIS3090.1011462003-01-01
312004.0Non-VIS33540.8920212004-01-01
322004.0VIS4060.1079792004-01-01
\n", "
" ], "text/plain": [ " year type count ratio Year\n", "3 1990.0 Non-VIS 6 0.750000 1990-01-01\n", "4 1990.0 VIS 2 0.250000 1990-01-01\n", "5 1991.0 Non-VIS 56 0.736842 1991-01-01\n", "6 1991.0 VIS 20 0.263158 1991-01-01\n", "7 1992.0 Non-VIS 113 0.710692 1992-01-01\n", "8 1992.0 VIS 46 0.289308 1992-01-01\n", "9 1993.0 Non-VIS 202 0.801587 1993-01-01\n", "10 1993.0 VIS 50 0.198413 1993-01-01\n", "11 1994.0 Non-VIS 285 0.789474 1994-01-01\n", "12 1994.0 VIS 76 0.210526 1994-01-01\n", "13 1995.0 Non-VIS 454 0.809269 1995-01-01\n", "14 1995.0 VIS 107 0.190731 1995-01-01\n", "15 1996.0 Non-VIS 485 0.822034 1996-01-01\n", "16 1996.0 VIS 105 0.177966 1996-01-01\n", "17 1997.0 Non-VIS 766 0.829004 1997-01-01\n", "18 1997.0 VIS 158 0.170996 1997-01-01\n", "19 1998.0 Non-VIS 809 0.788499 1998-01-01\n", "20 1998.0 VIS 217 0.211501 1998-01-01\n", "21 1999.0 Non-VIS 1079 0.839689 1999-01-01\n", "22 1999.0 VIS 206 0.160311 1999-01-01\n", "23 2000.0 Non-VIS 1355 0.847935 2000-01-01\n", "24 2000.0 VIS 243 0.152065 2000-01-01\n", "25 2001.0 Non-VIS 1664 0.891747 2001-01-01\n", "26 2001.0 VIS 202 0.108253 2001-01-01\n", "27 2002.0 Non-VIS 2159 0.889576 2002-01-01\n", "28 2002.0 VIS 268 0.110424 2002-01-01\n", "29 2003.0 Non-VIS 2746 0.898854 2003-01-01\n", "30 2003.0 VIS 309 0.101146 2003-01-01\n", "31 2004.0 Non-VIS 3354 0.892021 2004-01-01\n", "32 2004.0 VIS 406 0.107979 2004-01-01" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cit_df = cit_df[(cit_df.year >= 1990) & (cit_df.year <= 2021)]\n", "cit_df['Year'] = pd.to_datetime(cit_df['year'], format='%Y')\n", "cit_df.replace({'Yes': 'VIS', 'No': 'Non-VIS'}, inplace=True)\n", "cit_df.head(30)" ] }, { "cell_type": "code", "execution_count": 28, "id": "79af1c1f", "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", "
yeartypecountratioYear
452011.0Non-VIS60910.8889382011-01-01
462011.0VIS7610.1110622011-01-01
652021.0Non-VIS113090.8437032021-01-01
662021.0VIS20950.1562972021-01-01
\n", "
" ], "text/plain": [ " year type count ratio Year\n", "45 2011.0 Non-VIS 6091 0.888938 2011-01-01\n", "46 2011.0 VIS 761 0.111062 2011-01-01\n", "65 2021.0 Non-VIS 11309 0.843703 2021-01-01\n", "66 2021.0 VIS 2095 0.156297 2021-01-01" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cit_df[cit_df.year.isin([2021, 2011])]" ] }, { "cell_type": "markdown", "id": "a1495e00", "metadata": {}, "source": [ "### Average number of authors" ] }, { "cell_type": "code", "execution_count": 29, "id": "89b8c7e0", "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", "
YearNumber of Authors
2220124.310345
2320134.128713
2420144.609023
2520154.519685
2620164.686957
2720174.728070
2820184.629921
2920195.255814
3020205.050955
3120214.970588
\n", "
" ], "text/plain": [ " Year Number of Authors\n", "22 2012 4.310345\n", "23 2013 4.128713\n", "24 2014 4.609023\n", "25 2015 4.519685\n", "26 2016 4.686957\n", "27 2017 4.728070\n", "28 2018 4.629921\n", "29 2019 5.255814\n", "30 2020 5.050955\n", "31 2021 4.970588" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "author_num_df = paper.groupby(\n", " 'Year')['Number of Authors'].mean().to_frame().reset_index()\n", "author_num_df.tail(10)" ] }, { "cell_type": "code", "execution_count": 30, "id": "d941030c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "g = sns.lineplot(x='Year', \n", " y='Number of Authors', \n", " data = author_num_df)\n", "g.set_ylim(0,)\n", "g.set_ylabel('Average Number of Authors')\n", "plt.grid()" ] }, { "cell_type": "markdown", "id": "097d8acd", "metadata": {}, "source": [ "### Number of participating countries" ] }, { "cell_type": "code", "execution_count": 31, "id": "f0613595", "metadata": {}, "outputs": [], "source": [ "year_1990_paper = paper[paper.Year == 1990]\n", "year_1990_cross_country = year_1990_paper[\n", " year_1990_paper['Cross-country Collaboration']==True]\n", "year_1990_cross_country_dois = year_1990_cross_country.DOI.tolist()" ] }, { "cell_type": "code", "execution_count": 32, "id": "8c696d1f", "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", "
ConferenceYearTitleDOIFirstPageLastPagePaperTypeOpenAlex YearOpenAlex Publication DateOpenAlex ID...Number of AuthorsCross-type CollaborationCross-country CollaborationWith US AuthorsBoth Cross-type and Cross-country CollaborationIEEE TitleCitation Counts on Google ScholarAwardAward NameAward Track
1042Vis1990Methods for surface interrogation10.1109/VISUAL.1990.146381187.0193, 472C19901990-10-23W2103253409...3.0TrueTrueTrueTrueMethods for surface interrogation55FalseNaNNaN
2155Vis1990A journey into the fourth dimension10.1109/VISUAL.1990.146385219.0229, 476-477C19901990-10-23W2149054233...2.0FalseTrueTrueFalseA journey into the fourth dimension (visualiza...16FalseNaNNaN
\n", "

2 rows × 27 columns

\n", "
" ], "text/plain": [ " Conference Year Title \\\n", "1042 Vis 1990 Methods for surface interrogation \n", "2155 Vis 1990 A journey into the fourth dimension \n", "\n", " DOI FirstPage LastPage PaperType \\\n", "1042 10.1109/VISUAL.1990.146381 187.0 193, 472 C \n", "2155 10.1109/VISUAL.1990.146385 219.0 229, 476-477 C \n", "\n", " OpenAlex Year OpenAlex Publication Date OpenAlex ID ... \\\n", "1042 1990 1990-10-23 W2103253409 ... \n", "2155 1990 1990-10-23 W2149054233 ... \n", "\n", " Number of Authors Cross-type Collaboration Cross-country Collaboration \\\n", "1042 3.0 True True \n", "2155 2.0 False True \n", "\n", " With US Authors Both Cross-type and Cross-country Collaboration \\\n", "1042 True True \n", "2155 True False \n", "\n", " IEEE Title \\\n", "1042 Methods for surface interrogation \n", "2155 A journey into the fourth dimension (visualiza... \n", "\n", " Citation Counts on Google Scholar Award Award Name Award Track \n", "1042 55 False NaN NaN \n", "2155 16 False NaN NaN \n", "\n", "[2 rows x 27 columns]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "year_1990_cross_country" ] }, { "cell_type": "code", "execution_count": 33, "id": "219cc3eb", "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", "
YearDOITitleNumber of AuthorsAuthor PositionAuthor NameOpenAlex Author IDAffiliation NameAffiliation Country CodeAffiliation TypeBinary TypeCross-type CollaborationInternational Collaboration
3614199010.1109/VISUAL.1990.146381Methods for surface interrogation3.01.0H. Hagenhttps://openalex.org/A2237445521FB-Informatik, Universität KaiserslauternDEeducationeducationTrueTrue
3615199010.1109/VISUAL.1990.146381Methods for surface interrogation3.02.0T. Schreiberhttps://openalex.org/A2973511128FB-Informatik, Universität KaiserslauternDEeducationeducationTrueTrue
3616199010.1109/VISUAL.1990.146381Methods for surface interrogation3.03.0E. Gschwindhttps://openalex.org/A1980220218Mechanical Design Division, Hewlett-Packard GmbHUScompanynon-educationTrueTrue
7745199010.1109/VISUAL.1990.146385A journey into the fourth dimension2.01.0Y. Kehttps://openalex.org/A2684845787Department of Computational Science, Universit...CAeducationeducationFalseTrue
7746199010.1109/VISUAL.1990.146385A journey into the fourth dimension2.02.0E.S. Pandurangahttps://openalex.org/A2302757246Department of Computer Sciences, Johns Hopkins...USeducationeducationFalseTrue
\n", "
" ], "text/plain": [ " Year DOI Title \\\n", "3614 1990 10.1109/VISUAL.1990.146381 Methods for surface interrogation \n", "3615 1990 10.1109/VISUAL.1990.146381 Methods for surface interrogation \n", "3616 1990 10.1109/VISUAL.1990.146381 Methods for surface interrogation \n", "7745 1990 10.1109/VISUAL.1990.146385 A journey into the fourth dimension \n", "7746 1990 10.1109/VISUAL.1990.146385 A journey into the fourth dimension \n", "\n", " Number of Authors Author Position Author Name \\\n", "3614 3.0 1.0 H. Hagen \n", "3615 3.0 2.0 T. Schreiber \n", "3616 3.0 3.0 E. Gschwind \n", "7745 2.0 1.0 Y. Ke \n", "7746 2.0 2.0 E.S. Panduranga \n", "\n", " OpenAlex Author ID \\\n", "3614 https://openalex.org/A2237445521 \n", "3615 https://openalex.org/A2973511128 \n", "3616 https://openalex.org/A1980220218 \n", "7745 https://openalex.org/A2684845787 \n", "7746 https://openalex.org/A2302757246 \n", "\n", " Affiliation Name \\\n", "3614 FB-Informatik, Universität Kaiserslautern \n", "3615 FB-Informatik, Universität Kaiserslautern \n", "3616 Mechanical Design Division, Hewlett-Packard GmbH \n", "7745 Department of Computational Science, Universit... \n", "7746 Department of Computer Sciences, Johns Hopkins... \n", "\n", " Affiliation Country Code Affiliation Type Binary Type \\\n", "3614 DE education education \n", "3615 DE education education \n", "3616 US company non-education \n", "7745 CA education education \n", "7746 US education education \n", "\n", " Cross-type Collaboration International Collaboration \n", "3614 True True \n", "3615 True True \n", "3616 True True \n", "7745 False True \n", "7746 False True " ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "author[author.DOI.isin(year_1990_cross_country.DOI)]" ] }, { "cell_type": "markdown", "id": "c804332e", "metadata": {}, "source": [ "### Cross country collaboration" ] }, { "cell_type": "code", "execution_count": 34, "id": "56b08142", "metadata": {}, "outputs": [], "source": [ "def get_total_and_ratio_by_year(DF, BY, subgroup_par):\n", " tuples = []\n", " for group in DF.groupby(BY):\n", " year = group[0]\n", " total = group[1].shape[0]\n", " for subgroup in group[1].groupby(subgroup_par):\n", " subtype = 'Yes' if subgroup[0] else 'No'\n", " count = subgroup[1].shape[0]\n", " ratio = count / total\n", " tuples.append((year, subtype, count, ratio))\n", " dff = pd.DataFrame(\n", " list(tuples), columns=['year', 'type', 'count', 'ratio']) \n", " return dff" ] }, { "cell_type": "code", "execution_count": 35, "id": "4a55728f", "metadata": {}, "outputs": [], "source": [ "cross_country = get_total_and_ratio_by_year(\n", " paper, \n", " 'Year',\n", " 'Cross-country Collaboration'\n", ")" ] }, { "cell_type": "code", "execution_count": 36, "id": "576469ee", "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", "
yeartypecountratio
01990No500.961538
11990Yes20.038462
21991No490.980000
31991Yes10.020000
41992No470.886792
\n", "
" ], "text/plain": [ " year type count ratio\n", "0 1990 No 50 0.961538\n", "1 1990 Yes 2 0.038462\n", "2 1991 No 49 0.980000\n", "3 1991 Yes 1 0.020000\n", "4 1992 No 47 0.886792" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_country.head()" ] }, { "cell_type": "code", "execution_count": 37, "id": "24c13637", "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", "
yeartypecountratio
262003No910.892157
272003Yes110.107843
282004No790.814433
292004Yes180.185567
302005No980.823529
312005Yes210.176471
322006No900.796460
332006Yes230.203540
442012No740.637931
452012Yes420.362069
462013No750.742574
472013Yes260.257426
482014No850.639098
492014Yes480.360902
622021No940.552941
632021Yes760.447059
\n", "
" ], "text/plain": [ " year type count ratio\n", "26 2003 No 91 0.892157\n", "27 2003 Yes 11 0.107843\n", "28 2004 No 79 0.814433\n", "29 2004 Yes 18 0.185567\n", "30 2005 No 98 0.823529\n", "31 2005 Yes 21 0.176471\n", "32 2006 No 90 0.796460\n", "33 2006 Yes 23 0.203540\n", "44 2012 No 74 0.637931\n", "45 2012 Yes 42 0.362069\n", "46 2013 No 75 0.742574\n", "47 2013 Yes 26 0.257426\n", "48 2014 No 85 0.639098\n", "49 2014 Yes 48 0.360902\n", "62 2021 No 94 0.552941\n", "63 2021 Yes 76 0.447059" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_country[cross_country.year.isin([2004, 2005, 2006, 2003, 2013, 2012, 2014, 2021])]" ] }, { "cell_type": "markdown", "id": "7919afca", "metadata": {}, "source": [ "#### Author chord" ] }, { "cell_type": "code", "execution_count": 38, "id": "406cc349", "metadata": {}, "outputs": [], "source": [ "author_chord = pd.read_csv('../data/plots/author_chord/author_chord_df.csv')\n", "node1, node2 = author_chord.source, author_chord.target\n", "unique_cntry = list(set(node1.append(node2).tolist()))" ] }, { "cell_type": "code", "execution_count": 39, "id": "1b939b92", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1218" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "author_chord.value.sum()" ] }, { "cell_type": "code", "execution_count": 49, "id": "c345c76e", "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", "
sourcetargetvalue
0CNUS123
1DEUS112
2CAUS70
3USFR59
4USAT43
5GBUS33
6CNDE31
7DEAT29
8KRUS28
9USGB25
\n", "
" ], "text/plain": [ " source target value\n", "0 CN US 123\n", "1 DE US 112\n", "2 CA US 70\n", "3 US FR 59\n", "4 US AT 43\n", "5 GB US 33\n", "6 CN DE 31\n", "7 DE AT 29\n", "8 KR US 28\n", "9 US GB 25" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "author_chord.head(10)" ] }, { "cell_type": "code", "execution_count": 41, "id": "72f07485", "metadata": {}, "outputs": [], "source": [ "tuples = []\n", "for i in unique_cntry:\n", " dff = author_chord[(author_chord.source == i) | (author_chord.target == i)]\n", " total = dff.value.sum()\n", " tuples.append((i, total))" ] }, { "cell_type": "code", "execution_count": 42, "id": "11dce8cd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1197" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collab_df = pd.DataFrame(list(tuples), columns = ['country', 'value']).sort_values(\n", " by=['value'], ascending = False).reset_index(drop=True)\n", "collab_df.value.sum()\n", "most_active_cntry = collab_df.head(10).country.tolist()\n", "# Number of pairs where the most active countries appeared\n", "author_chord[(\n", " author_chord.source.isin(most_active_cntry)) | (\n", " author_chord.target.isin(most_active_cntry))].value.sum()\n", "# most_active_cntry" ] }, { "cell_type": "code", "execution_count": 43, "id": "e1affcf5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['US', 'DE', 'CN', 'AT', 'GB', 'FR', 'CA', 'NL', 'CH', 'AU']" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "most_active_cntry" ] }, { "cell_type": "code", "execution_count": 44, "id": "344840c6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9827586206896551" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1197/1218" ] }, { "cell_type": "code", "execution_count": 45, "id": "83ff6383", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "862" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Number of pairs made up by collaborations between most active countries\n", "author_chord[(\n", " author_chord.source.isin(most_active_cntry)) & (\n", " author_chord.target.isin(most_active_cntry))].value.sum()" ] }, { "cell_type": "code", "execution_count": 46, "id": "38ea4da7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7077175697865353" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "862/1218" ] }, { "cell_type": "markdown", "id": "f5cad371", "metadata": {}, "source": [ "### Cross-type collaboration" ] }, { "cell_type": "code", "execution_count": 47, "id": "03c91bed", "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", "
yeartypecountratio
01990No470.903846
11990Yes50.096154
21991No430.860000
31991Yes70.140000
41992No430.811321
\n", "
" ], "text/plain": [ " year type count ratio\n", "0 1990 No 47 0.903846\n", "1 1990 Yes 5 0.096154\n", "2 1991 No 43 0.860000\n", "3 1991 Yes 7 0.140000\n", "4 1992 No 43 0.811321" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_type = get_total_and_ratio_by_year(\n", " paper, \n", " 'Year',\n", " 'Cross-type Collaboration'\n", ")\n", "cross_type.head()" ] }, { "cell_type": "code", "execution_count": 48, "id": "fd56c478", "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", "
yeartypecountratio
322006No900.796460
332006Yes230.203540
342007No690.644860
352007Yes380.355140
562018No690.543307
572018Yes580.456693
622021No1160.682353
632021Yes540.317647
\n", "
" ], "text/plain": [ " year type count ratio\n", "32 2006 No 90 0.796460\n", "33 2006 Yes 23 0.203540\n", "34 2007 No 69 0.644860\n", "35 2007 Yes 38 0.355140\n", "56 2018 No 69 0.543307\n", "57 2018 Yes 58 0.456693\n", "62 2021 No 116 0.682353\n", "63 2021 Yes 54 0.317647" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_type[cross_type.year.isin([2006, 2007, 2018, 2021])]" ] }, { "cell_type": "code", "execution_count": null, "id": "652fe9e3", "metadata": {}, "outputs": [], "source": [] } ], "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.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }