diff --git a/.gitignore b/.gitignore index d820630..71e1c92 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,18 @@ /PATSTAT/first_round/first-filings-with-persons-raw.csv /PATSTAT/first_round/first-filings-with-IPC-raw.csv /PATSTAT/first_round/first-filings-raw.csv +/PATSTAT/raw_files_csv/01_patent_subset.csv +/PATSTAT/raw_files_csv/04_persons_2011_2022_inv_pairs.csv +/PATSTAT/raw_files_csv/03_persons_2011_2022_collected.csv +/PATSTAT/raw_files_csv/02_persons_2011_2022.csv +/PATSTAT/first_round/2IPCGreenInventoryList_2022WIPO.xlsx +/PATSTAT/DS/ds1.png +/PATSTAT/ds1.xlsx +/PATSTAT/DS/ds2.png +/PATSTAT/ds2.xlsx +/PATSTAT/ds3.xlsx +/PATSTAT/DS/ds3.png +/PATSTAT/first_round/IPC_green_codes.csv +/PATSTAT/first_round/IPC_green_codes.xlsx +/ZSI_previous_analyses/ReConnect China_preliminary_report.docx +/PATSTAT/first_round/tls_206_scope_v2.csv diff --git a/PATSTAT/first_round/plots/CN_applt_ctry.png b/PATSTAT/first_round/plots/CN_applt_ctry.png index 636f0d6..cca5ab4 100644 Binary files a/PATSTAT/first_round/plots/CN_applt_ctry.png and b/PATSTAT/first_round/plots/CN_applt_ctry.png differ diff --git a/PATSTAT/first_round/plots/applt_loc_ctry.png b/PATSTAT/first_round/plots/applt_loc_ctry.png index d157295..78d30ea 100644 Binary files a/PATSTAT/first_round/plots/applt_loc_ctry.png and b/PATSTAT/first_round/plots/applt_loc_ctry.png differ diff --git a/PATSTAT/first_round/plots/applt_table.xlsx b/PATSTAT/first_round/plots/applt_table.xlsx index f9bc211..8b7f9c2 100644 Binary files a/PATSTAT/first_round/plots/applt_table.xlsx and b/PATSTAT/first_round/plots/applt_table.xlsx differ diff --git a/PATSTAT/first_round/plots/auth_loc_ctry.png b/PATSTAT/first_round/plots/auth_loc_ctry.png index ceaec9f..3102ad8 100644 Binary files a/PATSTAT/first_round/plots/auth_loc_ctry.png and b/PATSTAT/first_round/plots/auth_loc_ctry.png differ diff --git a/PATSTAT/first_round/plots/green_trends.png b/PATSTAT/first_round/plots/green_trends.png new file mode 100644 index 0000000..aca6e77 Binary files /dev/null and b/PATSTAT/first_round/plots/green_trends.png differ diff --git a/PATSTAT/first_round/plots/invt_loc_ctry.png b/PATSTAT/first_round/plots/invt_loc_ctry.png index efcd501..05c327a 100644 Binary files a/PATSTAT/first_round/plots/invt_loc_ctry.png and b/PATSTAT/first_round/plots/invt_loc_ctry.png differ diff --git a/PATSTAT/first_round/plots/ipc_classes.png b/PATSTAT/first_round/plots/ipc_classes.png index 75fc114..d26cf63 100644 Binary files a/PATSTAT/first_round/plots/ipc_classes.png and b/PATSTAT/first_round/plots/ipc_classes.png differ diff --git a/PATSTAT/first_round/plots/overall_distr&trends.png b/PATSTAT/first_round/plots/overall_distr&trends.png index 3119b66..3ad2d20 100644 Binary files a/PATSTAT/first_round/plots/overall_distr&trends.png and b/PATSTAT/first_round/plots/overall_distr&trends.png differ diff --git a/PATSTAT/first_round/plots/top15_applt_person_ctry_type_China.png b/PATSTAT/first_round/plots/top15_applt_person_ctry_type_China.png index 677ac1e..4dd5e3d 100644 Binary files a/PATSTAT/first_round/plots/top15_applt_person_ctry_type_China.png and b/PATSTAT/first_round/plots/top15_applt_person_ctry_type_China.png differ diff --git a/PATSTAT/first_round/plots/top15_applt_person_ctry_type_EU.png b/PATSTAT/first_round/plots/top15_applt_person_ctry_type_EU.png index 0cb1490..3a36c1b 100644 Binary files a/PATSTAT/first_round/plots/top15_applt_person_ctry_type_EU.png and b/PATSTAT/first_round/plots/top15_applt_person_ctry_type_EU.png differ diff --git a/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_China.png b/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_China.png index 04ca0be..5e74e4b 100644 Binary files a/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_China.png and b/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_China.png differ diff --git a/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_EU.png b/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_EU.png index 28a55af..a288469 100644 Binary files a/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_EU.png and b/PATSTAT/first_round/plots/top15_applt_psn_sector_primary_EU.png differ diff --git a/PATSTAT/first_round/plots/yearly_outputs.png b/PATSTAT/first_round/plots/yearly_outputs.png index 0425cec..14d6a5b 100644 Binary files a/PATSTAT/first_round/plots/yearly_outputs.png and b/PATSTAT/first_round/plots/yearly_outputs.png differ diff --git a/PATSTAT/first_round/plots/yearly_rel_outputs.png b/PATSTAT/first_round/plots/yearly_rel_outputs.png index 1481eb3..3e25d1d 100644 Binary files a/PATSTAT/first_round/plots/yearly_rel_outputs.png and b/PATSTAT/first_round/plots/yearly_rel_outputs.png differ diff --git a/PATSTAT/patstat_analyses.ipynb b/PATSTAT/patstat_analyses.ipynb index b62e474..8c40f84 100644 --- a/PATSTAT/patstat_analyses.ipynb +++ b/PATSTAT/patstat_analyses.ipynb @@ -3,9 +3,6 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, "outputs": [ { "data": { @@ -39,14 +36,46 @@ "\n", "\n", "%matplotlib inline" - ] + ], + "metadata": { + "collapsed": false + } }, { "cell_type": "code", "execution_count": 2, "outputs": [], "source": [ - "os.makedirs('plot_html/PPT_plots',exist_ok=True)" + "tls_801 = pd.read_csv(r\"./EU_CH_scope/table_tls801.csv\", low_memory=False)\n", + "# tls_801.head()\n", + "scope_df = tls_801[((tls_801.eu_member==\"Y\")|\n", + " (tls_801.ctry_code == 'NO')|\n", + " (tls_801.ctry_code == 'CH')|\n", + " (tls_801.ctry_code == 'GB'))]\n", + "scope_countries = scope_df[\"ctry_code\"].unique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 44, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ctry_code iso_alpha3 st3_name organisation_flag continent eu_member \n", + "137 MA MAR Morocco Africa \\\n", + "\n", + " epo_member oecd_member discontinued \n", + "137 \n" + ] + } + ], + "source": [ + "print(tls_801[tls_801[\"ctry_code\"]==\"MA\"])" ], "metadata": { "collapsed": false @@ -57,7 +86,50 @@ "execution_count": 3, "outputs": [], "source": [ - "agg_ds = 'aggregated_data'" + "outdir=\"raw_files_csv\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n8641708 531710630 CN 201811380088 A 2018-11-20 \\\n5246513 489770910 CN 201711004155 A 2017-10-24 \n6383260 503205376 CN 201810447617 A 2018-05-11 \n1437288 417129813 GR 20120100519 A 2012-10-12 \n4304665 479561975 CN 201510807721 A 2015-11-19 \n8099995 524172492 CN 201911055629 A 2019-10-31 \n2496404 443580404 CN 201510312381 A 2015-06-08 \n2862771 448112136 CN 201510736913 A 2015-11-03 \n8746800 533540106 CN 202010109483 A 2020-02-22 \n12407625 580940603 CN 202210840515 A 2022-07-18 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n8641708 2018 201811380088 PI NaN \\\n5246513 2017 201711004155 PI NaN \n6383260 2018 201810447617 PI NaN \n1437288 2012 20120100519 PI NaN \n4304665 2015 201510807721 PI NaN \n8099995 2019 201911055629 PI NaN \n2496404 2015 2015103123811 PI NaN \n2862771 2015 2015107369134 PI NaN \n8746800 2020 202010109483 PI NaN \n12407625 2022 202210840515 PI NaN \n\n internat_appln_id ... earliest_pat_publn_id granted \n8641708 0 ... 531710631 N \\\n5246513 0 ... 489770911 N \n6383260 0 ... 503205377 N \n1437288 0 ... 417129814 Y \n4304665 0 ... 479561976 N \n8099995 0 ... 524172493 N \n2496404 0 ... 443580405 N \n2862771 0 ... 448112137 N \n8746800 0 ... 533540107 Y \n12407625 0 ... 580940604 N \n\n docdb_family_id inpadoc_family_id docdb_family_size \n8641708 70744210 531710630 1 \\\n5246513 61141626 489770910 1 \n6383260 64213024 503205376 1 \n1437288 50483672 417129813 1 \n4304665 58885008 479561975 1 \n8099995 68978631 524172492 1 \n2496404 53812114 443580404 1 \n2862771 54991770 448112136 1 \n8746800 71149074 533540106 1 \n12407625 83518531 580940603 1 \n\n nb_citing_docdb_fam nb_applicants nb_inventors is_prior is_pct \n8641708 0 1 1 1 0 \n5246513 0 1 5 1 0 \n6383260 0 1 3 1 0 \n1437288 0 1 1 1 0 \n4304665 0 1 1 1 0 \n8099995 0 1 3 1 0 \n2496404 3 2 3 1 0 \n2862771 2 1 5 1 0 \n8746800 0 1 5 1 0 \n12407625 0 1 6 1 0 \n\n[10 rows x 28 columns]", + "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventorsis_prioris_pct
8641708531710630CN201811380088A2018-11-202018201811380088PINaN0...531710631N70744210531710630101110
5246513489770910CN201711004155A2017-10-242017201711004155PINaN0...489770911N61141626489770910101510
6383260503205376CN201810447617A2018-05-112018201810447617PINaN0...503205377N64213024503205376101310
1437288417129813GR20120100519A2012-10-12201220120100519PINaN0...417129814Y50483672417129813101110
4304665479561975CN201510807721A2015-11-192015201510807721PINaN0...479561976N58885008479561975101110
8099995524172492CN201911055629A2019-10-312019201911055629PINaN0...524172493N68978631524172492101310
2496404443580404CN201510312381A2015-06-0820152015103123811PINaN0...443580405N53812114443580404132310
2862771448112136CN201510736913A2015-11-0320152015107369134PINaN0...448112137N54991770448112136121510
8746800533540106CN202010109483A2020-02-222020202010109483PINaN0...533540107Y71149074533540106101510
12407625580940603CN202210840515A2022-07-182022202210840515PINaN0...580940604N83518531580940603101610
\n

10 rows × 28 columns

\n
" + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln = pd.read_csv(f\"{outdir}/01_patent_subset.csv\", low_memory=False)\n", + "appln.sample(10)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [ + { + "data": { + "text/plain": "(54368949, 13184309)" + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_pers = pd.read_csv(f\"{outdir}/02_persons_2011_2022.csv\",low_memory=False)\n", + "len(appln_pers[\"appln_id\"]), len(appln[\"appln_id\"])" ], "metadata": { "collapsed": false @@ -66,10 +138,18 @@ { "cell_type": "code", "execution_count": 6, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": "(54368949, 12646904)" + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "cn = pd.read_csv(f\"{agg_ds}/01_counts_cty_yr_CN.csv\", header=None)\n", - "eur = pd.read_csv(f\"{agg_ds}/01_counts_cty_yr_eu_27_GB.csv\", header=None)" + "appln_pers[\"appln_id\"].isin(appln[\"appln_id\"]).sum(), appln[\"appln_id\"].isin(appln_pers[\"appln_id\"]).sum()" ], "metadata": { "collapsed": false @@ -81,8 +161,7 @@ "outputs": [ { "data": { - "text/plain": " 0 1 2\n0 2011 AT 2395\n1 2011 BE 646\n2 2011 BG 330\n3 2011 CY 1256\n4 2011 CZ 2246\n.. ... .. ...\n7 2018 CN 3242424\n8 2019 CN 3547407\n9 2020 CN 4367505\n10 2021 CN 4012952\n11 2022 CN 2613602\n\n[359 rows x 3 columns]", - "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
012
02011AT2395
12011BE646
22011BG330
32011CY1256
42011CZ2246
............
72018CN3242424
82019CN3547407
92020CN4367505
102021CN4012952
112022CN2613602
\n

359 rows × 3 columns

\n
" + "text/plain": "12415" }, "execution_count": 7, "metadata": {}, @@ -90,7 +169,20155 @@ } ], "source": [ - "pd.concat([eur,cn])" + "appln_ch_ids = appln_pers[appln_pers[\"person_ctry_code\"] == \"CN\"][\"appln_id\"].unique()\n", + "appln_eu_ids = appln_pers[appln_pers[\"person_ctry_code\"].isin(scope_countries)][\"appln_id\"].unique()\n", + "\n", + "appln_scope_ids = np.intersect1d(appln_ch_ids, appln_eu_ids, assume_unique=False)\n", + "appln_scope = appln_pers[((appln_pers[\"appln_id\"].isin(appln_scope_ids)) &\n", + " (appln_pers[\"person_ctry_code\"].isin(list(scope_countries) + [\"CN\"])))]\n", + "\n", + "appln_scope[\"appln_id\"].nunique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 8, + "outputs": [ + { + "data": { + "text/plain": "(6584667, 18789)" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_pers_haninfo = pd.read_csv(f\"first_round/tls_206_scope_v2.csv\",\n", + " usecols=[\"person_id\", \"han_id\", \"han_name\", \"psn_sector\"])\n", + "\n", + "appln_pers_haninfo[\"han_id\"].nunique(), appln_scope[\"han_id\"].nunique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [ + "pers_sector_primary = appln_pers_haninfo.groupby(\"han_id\", as_index=False)[\"psn_sector\"].agg(\n", + " lambda x: \"UNKNOWN\" if len(pd.Series.mode(x))==0 else pd.Series.mode(x)[0]).rename(columns={\"psn_sector\":\"psn_sector_primary\"})" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 80, + "outputs": [ + { + "data": { + "text/plain": "Index(['appln_id', 'appln_auth', 'person_id', 'invt_seq_nr', 'applt_seq_nr',\n 'person_name', 'person_ctry_code', 'han_id', 'han_name', 'psn_sector_x',\n 'psn_sector_y', 'person_ctry_code_fullname', 'appln_auth_fullname',\n 'person_ctry_ISO3', 'person_ctry_type', 'auth_ISO3', 'auth_ctry_type',\n 'psn_sector_primary_x', 'psn_sector_primary_y'],\n dtype='object')" + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_pers_f.columns" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 81, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12415\n" + ] + } + ], + "source": [ + "appln_pers_f = appln_scope.merge(pers_sector_primary, on='han_id', how=\"left\").rename(columns={\"psn_sector_primary_y\":\"psn_sector_primary\"})\n", + "appln_pers_f[\"psn_sector_primary\"] = appln_pers_f[\"psn_sector_primary\"].fillna(\"UNKNOWN\")\n", + "print(appln_pers_f[\"appln_id\"].nunique())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 84, + "outputs": [], + "source": [ + "appln_pers_f[\"han_name\"] = appln_pers_f[\"han_name\"].str.replace(\"Zhejiang Geely Holding Group Co., Ltd.\",\n", + " \"ZHEJIANG GEELY HOLDINGGROUP CO LTD\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 29, + "outputs": [], + "source": [ + "g = appln_pers.groupby('appln_id')[\"person_ctry_code\"]\n", + "missing_ctry_data = g.count().rsub(g.size(), axis=0).ge(1).astype(int).reset_index()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 186, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n", + "21408 556911606 MA 42012433 2 0 \\\n", + "\n", + " person_name person_ctry_code han_id han_name \n", + "21408 TURTINEN, SAMULI FI 142012433 TURTINEN, SAMULI \\\n", + "\n", + " psn_sector_x psn_sector_y person_ctry_code_fullname appln_auth_fullname \n", + "21408 INDIVIDUAL INDIVIDUAL Finland Morocco \\\n", + "\n", + " person_ctry_ISO3 person_ctry_type auth_ISO3 auth_ctry_type \n", + "21408 FIN EU MAR EU \\\n", + "\n", + " psn_sector_primary_x psn_sector_primary \n", + "21408 INDIVIDUAL INDIVIDUAL \n" + ] + } + ], + "source": [ + "print(appln_pers_f.sample())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 190, + "outputs": [ + { + "data": { + "text/plain": "(10810, 10084)" + }, + "execution_count": 190, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appl_eu_applt = appln_pers_f[((appln_pers_f[\"applt_seq_nr\"]>0)&\n", + " (appln_pers_f[\"person_ctry_type\"]!=\"China\"))][\"appln_id\"].unique()\n", + "\n", + "appl_ch_applt = appln_pers_f[((appln_pers_f[\"applt_seq_nr\"]>0)&\n", + " (appln_pers_f[\"person_ctry_type\"]==\"China\"))][\"appln_id\"].unique()\n", + "\n", + "len(appl_eu_applt),len(appl_ch_applt)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 201, + "outputs": [ + { + "data": { + "text/plain": "(7638, 8788)" + }, + "execution_count": 201, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appl_eu_invt = appln_pers_f[((appln_pers_f[\"invt_seq_nr\"]>0)&\n", + " (appln_pers_f[\"person_ctry_type\"]!=\"China\"))][\"appln_id\"].unique()\n", + "\n", + "appl_ch_invt = appln_pers_f[((appln_pers_f[\"invt_seq_nr\"]>0)&\n", + " (appln_pers_f[\"person_ctry_type\"]==\"China\"))][\"appln_id\"].unique()\n", + "\n", + "len(appl_eu_invt),len(appl_ch_invt)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 194, + "outputs": [ + { + "data": { + "text/plain": "12197" + }, + "execution_count": 194, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_pers_f[((appln_pers_f[\"applt_seq_nr\"]>0))][\"appln_id\"].nunique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 41, + "outputs": [], + "source": [ + "# missing_ctry_data[missing_ctry_data[\"person_ctry_code\"]>0]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 31, + "outputs": [], + "source": [ + "appln_ana = appln.merge(missing_ctry_data,on=\"appln_id\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 32, + "outputs": [ + { + "data": { + "text/plain": "(12646904, 13184309)" + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_ana[\"appln_id\"].nunique(),appln[\"appln_id\"].nunique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 45, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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7373O0mXfhhzx44dTuvvv/9+t5ZTFrKzs9WnTx+lp6dr8ODBCgsLU9WqVXXixAn9+9//1nvvvadvv/1WS5Yscfn5/7//+z8NHDhQ8+bNc/gMHj9+XBMmTNA333yjRx991GU7srKy9MUXX+iPf/yjKle+9JPrixYt0o4dOxQUFKT+/fsrJCTEae306dP1ySefqFu3bipfvrzmzZunnJwcDR06VNOnT9eSJUt09913u9yBeyskJETbtm1T9erVbcOioqI0atQoVatWTZJ05swZ9enTx2mI8fbzs3XrVo0dO1bPPfecXRBcvHixatWqpdTUVA0ePFjLly9Xnz59HOoXLlyod955R507d1alSpU0adIk3X777crJydGyZctUUFCg6Oho/f3vf9cbb7xR5LrIycnR559/rvj4eO3cuVOGYSg8PFyjR49W27Zt3V5/nnAWzAudOHFCf//733X06FF16tSpRPOXroMQMmnSJB09elQzZ85UuXLlNH/+fE2bNk3PP/+8nnvuOSUnJ+vxxx/X888/77Te2w+hJAUFBalXr17q1auXTp8+rfXr12v9+vWaPXu2mjVrps6dO6tjx45Oj8S9NW7cOD300EN2H6IWLVrYtT8nJ0f//Oc/nYaQ++67z2GY1WpV8+bNbfVFGTlypBet935DvHHjRr3wwgvy9fWVr6+vZs6cqXfffVfh4eFKTEzUK6+8ov3796tr165Ol2+xWDR37lx99NFHmjVrlr744gvNmDHDIYC5Cgneng1Yv369MjMzFR0dLV9f+69bRkaGpk+frn/+859Oj+Ik1+u/oKBA58+f1969e9WrVy+9++67CgsLc5jugw8+KLJ9586d08iRIzVr1ixNmjTJYXxxR7eFgdLVUezf//53ff311xo0aJB8fHy0dOlSpaenKyYmpsj5Xj5/d4a5MmLECEmXfjwzMDDQ9h78+OOP+vbbb1WtWjW1b99elSpVcjmPhQsXFjn+ymUVmj9/vi5evKhPP/3ULkDceeeduu+++/TnP/9Z/fv314IFC1y+z8uWLdMzzzyj/v37a+HChbZtzMcff2w7GJs/f74efvhhp/WHDx9W3759lZmZqfj4eFWuXFmTJ0/W0qVL1bFjR5UvX159+/bVggULnH4GP//8c02aNEmRkZGSpPbt2+ull17Sf/7zH23ZskUvvvii+vfvLx8fn2LX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M/XAAw/I19dX27dv19NPP60XXnjBrTa5ezpTKvpOiEOHDum2226zOwLasWOHatasWeRRUIMGDfS3v/3NLgROnDhRo0ePdkjezj6EGRkZ6t27t/Lz84vcEH/wwQdOnwHToEEDhYaG2oWH77//Xk2aNHEINa6+8K+//rqWLl2q999/366397Bhw7R161YNGDBAL7/8stMN2a5du3T8+HHbLaZt27Yt8sj1St5+fl3VFz7no379+urdu7caN27sdDpX4arwFt86deq4vKy5YsUKxcfH6/vvv1fNmjXVunVrtW/fXi1btlSzZs20evXqInvmS95//7wVExOjjRs3avTo0fr222/1wQcfKDo62nYgkJycrGHDhqlr1676y1/+UqJlFPX9z8zM1FtvvaVVq1YpIyNDFotFhmEoICBAjz32mEaMGOHWnTdX3t2TlJSknTt3unV3z6ZNm7R69WpZLBb16dPHdtvy5MmT9emnn2ro0KEaOHCg09qjR4+6swokXepbdCV3b/G3WCzatGlTqS+/kDfrT7rUl2bFihXas2eP0tPTFRAQoKZNm+rPf/6z/vjHPxZZe/ToUb333nt66aWXVL58eXXp0sXuwLFly5aaPn2626/zSjk5OdqyZYvT22Rbt26tFStWeH3nZkn3H+645kOIt7777js1b968yP4j2dnZWrRokYYOHVqiZRS1EerYsaOGDBli20Fv2LBB48aN0/fff+/x2YcjR44oJSVFmZmZ8vf31z333FPkF6+QNzthb3eikncbYlcP23LG2enoRYsWad68eZoyZYr+9Kc/OYzfsmWLxo0bp9GjR+vJJ590Wn95iNy2bZsGDhzodoi83OHDh5WSkqKsrCyP3r+y5upMXoMGDVSnTh0NHz7c4RboRo0auRVCyur7d/r0aa1bt06GYah169YuL/fl5+dr1qxZio+Pl8ViUf/+/TVs2DBJ0owZM/Tee++pVatWmj17tlud95xx9f3v3r277r//foWHh6tly5Y6efKkzp49q4CAAN15551u3daalZWlMWPG6IsvvtCaNWtUt25drVq1ShMmTNCtt96qChUqKC8vT0uXLnXawfm7775TaGio034fWVlZ8vPzU25ubpHr35ud6KpVq4p8bXFxcTp69KhCQ0P10UcfOUzj7fc/KytLL7zwgr788kuH9RccHCw/P78i15+3UlJS1KtXLzVt2lQzZ85UjRo1FBoaquHDh6t69epKTU1VbGysYmJinG5rvX393tZL3u0/3HHNhxBvk7Szh7V06dJF8+fPt52CPXnypB566KESn04sKoQ0btxYmzdvtn3A8/Pz1bRpU23dutXtD/2OHTs0bdo0HThwwO60pMViUePGjfXyyy8rPDzcaa23O+HSkpGRIenSKeArN8RFPfG2T58++sc//mHX/yYnJ6fIh5td7tFHH9WIESOKvGywfPlyLV68WJ9++qnDuE6dOmnw4MFehcjL3z/pt0s87rx/pfGwuOK4+vyuXLlSn332mb799ltVrVpVrVq1Utu2bRUREWG706i4EOLt9y8rK0uzZs3S2rVrJUndunVTv3791KtXL2VnZ8swDNup4ss7W7pj//79unjxoho2bOhR3ZVcrb933nlHe/fu1Z49e3T+/Hndc889atmype677z7dd999CgwMLHbe06dP1/bt2xUVFaUWLVooOztbDz30kO655x67u3sKn0VzJW/Xv7c7UVc2b96sKVOmKCsrS2PHjnX5PBpPOrY6OxPq7fpzpTAEFxQUqHXr1i4PJkaNGqXKlSvbneULDQ3Vv/71L1vof+WVV5SamqoFCxY41Ddo0EBWq1UhISGqXLmyy8vDrl6/t+vvauw/rvk+IVfetmkYhu32THc62zh703755Re3e+d7Kz8/3+4oxNfX13b04o5t27ZpyJAhevTRR/Xqq6+qXr16qlKlijIyMpScnKwVK1bo6aef1uLFixUaGupQ/8knn+iVV15x+gGSLu3kxo4dq8WLF5dJCCnuibcLFy4s8om33t4ifPTo0WI7gf7+97/XlClTnI47fPiw3YN4WrdurezsbJ04ccKtEOnt++ft598bPXr0UI8ePWwb3LVr12rEiBHy8/NTQUGBdu7cWeTlnML2XsmT79+0adOUmJioiRMnys/PTx9++KGeeOIJRUREaOrUqbJYLJo0aZLmzJlT7IPZruTqjobLeXOLaeEZF+lS5+vCQPLOO+/ohRde0F133WULJR06dHA6D2/v7vF2/c+ZM0ft2rWz24laLBY98sgjtu/fsWPH9NFHH7kVQo4eParXX39dX375pXr06KGxY8cWGcY8fU+v5O36y87O1syZM4sMwdHR0S5D8K5du4p9mmzPnj317LPPOh03ceJEbdq0SXv27FHLli3V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0vLly211/fr1U2xsrK32ySef1MGDB50uo379+lq9erU6d+6sxo0b68knn9SRI0fcap9hGJo7d65at26txo0bKyIiQrGxsXbtiImJsf19+SWXv/71r9q1a5diY2PVr18/2zSbNm1S27Zt1axZMw0dOlRnz571dLUBKGWEEOAmc/78eQ0ZMkQPPvig1qxZo4ULF+rw4cOaP3++JOnf//63fvrpJ3388ccaMWKEXnvtNW3bts1WP2/ePD3yyCNauXKlgoODNXjwYOXl5TldVkxMjCZMmKCVK1cqPT1db731llttjI+P16JFizRlyhStX79ew4cPV0xMjJKSkoqtnTBhgkJDQzVw4EC7oLJq1Sq9+eabWrx4sZKSkrRgwQK32gKg7BBCgJtMTk6Ohg0bpuHDh+t3v/udwsLC1L59ex04cEDSpV/knDlzpu699149/vjjevTRR/XJJ5/Y6h9++GE99dRTqlu3riZPnqzTp09r+/btTpf19NNP64EHHtC9996r3r17a9++fW618bbbbtO0adP0wAMP6Pbbb1fv3r11yy232NpYlCpVqqhcuXKqVKmSAgMDbcNffPFFNW3aVM2aNVPHjh2VnJzsVlsAlB1+Owa4ydxyyy2KjIzU+++/r59++kkpKSnav3+/WrRoIUmqU6eOqlevbpu+cePGWrZsme3vwukkyd/fX3fddZcOHjyoe+65x2FZderUsZv2woULbrXx97//vfbu3as33nhDBw8e1E8//aS0tDQVFBR4/HoL3XHHHbb/V6lSRbm5uSWeF4DSwZkQ4Cbz66+/qmvXrvr222/VqFEjjR8/Xk8//bRtvK+v/bHJxYsXZbVa3R5/uZL+aNvy5cv11FNPKTc3V+3bt9f777+vW2+91eX0Fy9eLHaertoIwDycCQFuMhs3blRAQIDmzZtnG/bBBx+o8LcsDx06pMzMTFWuXFmStG/fPt177722aS+/jHH+/HkdPnxY9evXL9U2fvTRRxo+fLgGDRokSTp37pxOnTpla2P58uWVmZlpm97dDq8Ari0cGgA3mcDAQB07dkw7duzQkSNHNH/+fG3YsMHWuTQrK0sTJ07UwYMH9cknn2j9+vV68sknbfWffvqp4uPjdfDgQU2YMEG1atXS/fffX6ptDAoK0o4dO/Tzzz9r3759ev7553XhwgVbGxs3bqx169YpMTFRiYmJmjNnjl19pUqV9N///lenTp0q1XYBKF2EEOAm07FjR3Xt2lWjRo3SY489pp07d+rll1/WwYMHlZeXp9tuu0233HKLHn/8cb377ruaNWuWwsLCbPVdunTRsmXL1KNHD2VmZmrBggUOl2i8NX78eGVkZKhbt24aOXKk6tevr3bt2umnn36SdKnDa8OGDdW3b1+NGTNGw4YNs6vv2bOnvv76a9uZFADXJotReH4TwE1v5cqVio2N1ZYtW5yO79evn+677z6NHDnyKrcMwI2IMyEAAMAUdEwFcFV9/vnn+utf/+pyfFhYmN59992r2CIAZuFyDICrKjMzUydPnnQ53s/PT8HBwVexRQDMQggBAACmoE8IAAAwBSEEAACYghACAABMQQgBAACmIIQAAABTEEIAAIApCCEAAMAU/w+wAG4GdoZfJwAAAABJRU5ErkJggg==\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ctry_ana = appln_ana.groupby(\"appln_auth\")[\"person_ctry_code\"]\n", + "(ctry_ana.sum()/ctry_ana.size()).sort_values().plot(kind=\"bar\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 51, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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tw5lZWV4//33ceDAASxYsED8/L59+/Dhhx+irKwMKSkpCAkJweTJk+UaTo899thjKCwsxLZt23D27Fm8/vrr+Oabb370NvTve+ihh/CPf/wDAwcOFC/JeXt7Y968eUhNTUV+fj5KS0uRnJyM8+fPY/DgwTetNxHdPgYcIkJ8fDweeeQRrFy5EnPmzEF+fj5efPFFlJWVob29HcHBwQgICMDcuXOxfft2bN68GdHR0eLnH374Yfz973/H7Nmz0dzcjDfffLPLZStbNGjQIGzduhUffPABHn74YRw7dgz33XefRZfRJk+eDC8vLzzwwANm77/00ku46667sHLlSjz22GNQKpXYtm0bXF1db1pvIrp9CoHnRInoR+Tm5iIzMxOffvrpD25//PHHMWnSJKxYsaKXe3b7Tp06BYPBgDFjxojvLV26FJGRkT0ez5UrV8TbvXt6aYuIrI9ncIjIaV24cAFPPvkkjhw5goqKCuTk5ODLL7/EjBkzbvpZQRBw4MABrF27FlFRUQw3RDbG9s8hE5HD+/jjj3/06cHR0dHYvn275MedPn06Tp8+jZSUFNTW1mLYsGH4y1/+glGjRiEpKelHn4mzfv16/O1vf4Orqytee+01yftGRLeHl6iISHbNzc3Q6XTdbnd3d0dQUFAv9gioqalBS0tLt9v9/Pzg7e3diz0iIksw4BAREZHD4RwcIiIicjgMOERERORwGHCIiIjI4TDgEBERkcNhwCEiIiKHw4BDREREDocBh4iIiBwOAw4RERE5nP8PlkjLUxMRFR8AAAAASUVORK5CYII=\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ch_ana = appln_ana.query(\"appln_auth=='CN'\").groupby(\"appln_filing_year\")[\"person_ctry_code\"]\n", + "((1-(ch_ana.sum()/ch_ana.size()))*100).plot(kind=\"line\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [], + "source": [ + "# That one Chinese auth co-patent" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 16, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n124 419052362 CN 5361204 0 1 \\\n137 419052362 CN 51988464 1 0 \n\n person_name person_ctry_code han_id \n124 Schneider Electric Industries SAS FR 808003 \\\n137 JUZHONG SONG CN 151988464 \n\n han_name psn_sector_x psn_sector_y \n124 SCHNEIDER ELECT IND SAS COMPANY COMPANY \n137 JUZHONG SONG UNKNOWN UNKNOWN ", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codehan_idhan_namepsn_sector_xpsn_sector_y
124419052362CN536120401Schneider Electric Industries SASFR808003SCHNEIDER ELECT IND SASCOMPANYCOMPANY
137419052362CN5198846410JUZHONG SONGCN151988464JUZHONG SONGUNKNOWNUNKNOWN
\n
" + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.query(\"appln_auth=='CN'\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 17, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n1568550 419052362 CN 201210551425 A 2012-12-18 \\\n\n appln_filing_year appln_nr_original ipr_type receiving_office \n1568550 2012 2012105514252 PI NaN \\\n\n internat_appln_id ... earliest_pat_publn_id granted docdb_family_id \n1568550 0 ... 419052363 Y 49886800 \\\n\n inpadoc_family_id docdb_family_size nb_citing_docdb_fam \n1568550 413446088 4 15 \\\n\n nb_applicants nb_inventors is_prior is_pct \n1568550 1 1 1 0 \n\n[1 rows x 28 columns]", + "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
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventorsis_prioris_pct
1568550419052362CN201210551425A2012-12-1820122012105514252PINaN0...419052363Y498868004134460884151110
\n

1 rows × 28 columns

\n
" + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln.query('appln_id==419052362')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12415\n" + ] + }, + { + "data": { + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n863506 407017979 WO 2011083302 W 2011-12-01 \\\n7100916 510736006 WO 2019058105 W 2019-03-29 \n1603837 419656375 WO 2012087307 W 2012-12-24 \n7183441 511620156 WO 2017107161 W 2017-10-20 \n5588243 494153147 EP 18171845 A 2018-05-11 \n... ... ... ... ... ... \n2295082 440740099 WO 2013088240 W 2013-11-29 \n12569735 582929150 WO 2021092424 W 2021-05-08 \n8050187 523796882 WO 2018091667 W 2018-06-15 \n5582748 494089044 WO 2016104438 W 2016-11-03 \n716562 405080010 WO 2013056669 W 2013-03-28 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n863506 2011 CN2011/083302 PI CN \\\n7100916 2019 EP2019/058105 PI EP \n1603837 2012 CN2012/087307 PI CN \n7183441 2017 CN2017/107161 PI CN \n5588243 2018 18171845 PI NaN \n... ... ... ... ... \n2295082 2013 CN2013/088240 PI CN \n12569735 2021 CN2021/092424 PI CN \n8050187 2018 CN2018/091667 PI CN \n5582748 2016 CN2016/104438 PI CN \n716562 2013 EP2013/056669 PI EP \n\n internat_appln_id ... earliest_pat_publn_id granted \n863506 0 ... 407072959 N \\\n7100916 0 ... 538911303 N \n1603837 0 ... 419656376 N \n7183441 0 ... 511620157 N \n5588243 0 ... 520464429 N \n... ... ... ... ... \n2295082 0 ... 440740100 N \n12569735 0 ... 582929151 N \n8050187 0 ... 523796883 N \n5582748 0 ... 494089045 N \n716562 0 ... 422430381 N \n\n docdb_family_id inpadoc_family_id docdb_family_size \n863506 48534637 407017979 2 \\\n7100916 66001221 510736006 4 \n1603837 51019632 419626782 4 \n7183441 66173145 511620156 4 \n5588243 62152456 494153147 3 \n... ... ... ... \n2295082 53198253 440740099 4 \n12569735 84027865 582929150 1 \n8050187 68841789 523796882 4 \n5582748 62076012 494089044 3 \n716562 48045501 405080010 5 \n\n nb_citing_docdb_fam nb_applicants nb_inventors is_prior is_pct \n863506 1 6 5 1 1 \n7100916 0 2 2 1 1 \n1603837 12 2 5 1 1 \n7183441 1 2 3 1 1 \n5588243 3 1 2 1 0 \n... ... ... ... ... ... \n2295082 2 5 4 1 1 \n12569735 0 2 1 1 1 \n8050187 2 2 3 1 1 \n5582748 1 2 4 1 1 \n716562 9 3 2 1 1 \n\n[100 rows x 28 columns]", + "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventorsis_prioris_pct
863506407017979WO2011083302W2011-12-012011CN2011/083302PICN0...407072959N48534637407017979216511
7100916510736006WO2019058105W2019-03-292019EP2019/058105PIEP0...538911303N66001221510736006402211
1603837419656375WO2012087307W2012-12-242012CN2012/087307PICN0...419656376N510196324196267824122511
7183441511620156WO2017107161W2017-10-202017CN2017/107161PICN0...511620157N66173145511620156412311
5588243494153147EP18171845A2018-05-11201818171845PINaN0...520464429N62152456494153147331210
..................................................................
2295082440740099WO2013088240W2013-11-292013CN2013/088240PICN0...440740100N53198253440740099425411
12569735582929150WO2021092424W2021-05-082021CN2021/092424PICN0...582929151N84027865582929150102111
8050187523796882WO2018091667W2018-06-152018CN2018/091667PICN0...523796883N68841789523796882422311
5582748494089044WO2016104438W2016-11-032016CN2016/104438PICN0...494089045N62076012494089044312411
716562405080010WO2013056669W2013-03-282013EP2013/056669PIEP0...422430381N48045501405080010593211
\n

100 rows × 28 columns

\n
" + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_f = appln[appln[\"appln_id\"].isin(appln_scope['appln_id'])].copy()\n", + "print(appln_f[\"appln_id\"].nunique())\n", + "\n", + "appln_f.sample(100)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 202, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_11448\\1187413588.py:1: SettingWithCopyWarning:\n", + "\n", + "\n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "\n", + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_11448\\1187413588.py:2: SettingWithCopyWarning:\n", + "\n", + "\n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "\n", + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_11448\\1187413588.py:3: SettingWithCopyWarning:\n", + "\n", + "\n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "\n", + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_11448\\1187413588.py:4: SettingWithCopyWarning:\n", + "\n", + "\n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "\n" + ] + } + ], + "source": [ + "appln_f[\"ch_applt\"] = appln_f[\"appln_id\"].isin(appl_ch_applt)\n", + "appln_f[\"eu_applt\"] = appln_f[\"appln_id\"].isin(appl_eu_applt)\n", + "appln_f[\"ch_invt\"] = appln_f[\"appln_id\"].isin(appl_ch_invt)\n", + "appln_f[\"eu_invt\"] = appln_f[\"appln_id\"].isin(appl_eu_invt)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 204, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "eu_applt False True \n", + "ch_applt \n", + "False 218 2113\n", + "True 1387 8697\n", + "eu_invt False True \n", + "ch_invt \n", + "False 74 3553\n", + "True 4703 4085\n" + ] + } + ], + "source": [ + "applt_co_occur = pd.crosstab(appln_f[\"ch_applt\"], appln_f[\"eu_applt\"])\n", + "print(applt_co_occur)\n", + "invt_co_occur = pd.crosstab(appln_f[\"ch_invt\"], appln_f[\"eu_invt\"])\n", + "print(invt_co_occur)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 205, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_11448\\3989028682.py:11: SettingWithCopyWarning:\n", + "\n", + "\n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "\n", + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_11448\\3989028682.py:12: SettingWithCopyWarning:\n", + "\n", + "\n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + "\n" + ] + } + ], + "source": [ + "def bool_calc(eu,ch):\n", + " if eu==True and ch==False:\n", + " return \"European \"\n", + " if ch==True and eu==False:\n", + " return \"Chinese \"\n", + " if ch==False and eu==False:\n", + " return \"Third-party \"\n", + " if ch==True and eu==True:\n", + " return \"Co-\"\n", + "\n", + "appln_f[\"ownership\"] = appln_f.apply(lambda x: bool_calc(x[\"eu_applt\"],x[\"ch_applt\"])+\"ownership\" ,axis=1)\n", + "appln_f[\"invention\"] = appln_f.apply(lambda x: bool_calc(x[\"eu_invt\"],x[\"ch_invt\"])+\"invention\" ,axis=1)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 207, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "invention Chinese invention Co-invention European invention \n", + "ownership \n", + "Chinese ownership 0 465 922 \\\n", + "Co-ownership 3994 1998 2631 \n", + "European ownership 709 1404 0 \n", + "Third-party ownership 0 218 0 \n", + "\n", + "invention Third-party invention \n", + "ownership \n", + "Chinese ownership 0 \n", + "Co-ownership 74 \n", + "European ownership 0 \n", + "Third-party ownership 0 \n" + ] + } + ], + "source": [ + "ship_co_occur = pd.crosstab(appln_f[\"ownership\"], appln_f[\"invention\"])\n", + "print(ship_co_occur)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 52, + "outputs": [], + "source": [ + "record_col=\"appln_id\"\n", + "fromdir =outdir" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 209, + "outputs": [], + "source": [ + "ship_co_occur.to_excel(f\"{fromdir}/plots/_ships.xlsx\",index=True)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 55, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "hovertemplate": "Year:%{x:d}
Number of co-publications:%{y:d}", + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+text+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "text": [ + 660.0, + 924.0, + 913.0, + 867.0, + 928.0, + 1015.0, + 1357.0, + 1440.0, + 1557.0, + 1669.0, + 1080.0, + 5.0 + ], + "textfont": { + "size": 12 + }, + "textposition": "top center", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x", + "y": [ + 660, + 924, + 913, + 867, + 928, + 1015, + 1357, + 1440, + 1557, + 1669, + 1080, + 5 + ], + "yaxis": "y", + "type": "scatter" + }, + { + "hovertemplate": "Year:%{x:d}
Rel.growth in co-publications:%{y:.0%}", + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+text+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "text": [ + 0.0, + 0.4, + 0.38333333333333336, + 0.31363636363636366, + 0.40606060606060607, + 0.5378787878787878, + 1.0560606060606061, + 1.1818181818181819, + 1.3590909090909091, + 1.5287878787878788, + 0.6363636363636364, + -0.9924242424242424 + ], + "textfont": { + "size": 12 + }, + "textposition": "top center", + "texttemplate": "%{y:.0%}", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x2", + "y": [ + 0.0, + 0.4, + 0.38333333333333336, + 0.31363636363636366, + 0.40606060606060607, + 0.5378787878787878, + 1.0560606060606061, + 1.1818181818181819, + 1.3590909090909091, + 1.5287878787878788, + 0.6363636363636364, + -0.9924242424242424 + ], + "yaxis": "y2", + "type": "scatter" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.625, + 1.0 + ], + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "range": [ + 0, + 2500 + ] + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.0, + 1.0 + ], + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.0, + 0.375 + ], + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "zerolinecolor": "grey", + "tickformat": ".0%", + "range": [ + -1, + 3.5 + ] + }, + "annotations": [ + { + "font": { + "size": 16 + }, + "showarrow": false, + "text": "Co-patents per year", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper" + }, + { + "font": { + "size": 16 + }, + "showarrow": false, + "text": "Relative growth of co-patents", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.375, + "yanchor": "bottom", + "yref": "paper" + } + ], + "barmode": "relative", + "font": { + "family": "Montserrat" + } + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Co-patents per year\n", + "data = (appln_f.groupby(['appln_filing_year'])[record_col].nunique(dropna=False)\n", + " .reset_index()\n", + " .rename(columns={0: record_col}))\n", + "data[record_col + \"_relative_growth\"] = data[data[record_col] > 0].sort_values(by=[\"appln_filing_year\"], ascending=True)[record_col][0]\n", + "data[record_col + \"_relative_growth\"] = (data[record_col] - data[record_col + \"_relative_growth\"]) / data[\n", + " record_col + \"_relative_growth\"]\n", + "\n", + "data = data.sort_values(by=[\"appln_filing_year\"], ascending=[True])\n", + "data[record_col + \"_cumsum\"] = (data[record_col].cumsum())\n", + "\n", + "year_output = px.line(data, x=\"appln_filing_year\", y=record_col, markers=True, text=record_col)\n", + "year_output.update_traces(textposition='top center', textfont_size=12)\n", + "year_output.update_traces(hovertemplate='Year:%{x:d}
Number of co-publications:%{y:d}')\n", + "\n", + "year_rel_output = px.line(data, x=\"appln_filing_year\", y=record_col + \"_relative_growth\", markers=True,\n", + " text=record_col + \"_relative_growth\")\n", + "year_rel_output.update_traces(textposition='top center', textfont_size=12, texttemplate='%{y:.0%}')\n", + "year_rel_output.update_traces(hovertemplate='Year:%{x:d}
Rel.growth in co-publications:%{y:.0%}')\n", + "\n", + "figsuper = make_subplots(rows=2, cols=1, subplot_titles=[\"Co-patents per year\", \"Relative growth of co-patents\"],\n", + " specs=[\n", + " [{\"type\": \"xy\"}],\n", + " [{\"type\": \"xy\"}]\n", + " ])\n", + "\n", + "for trace in list(year_output.select_traces()):\n", + " figsuper.add_trace(trace,\n", + " row=1, col=1\n", + " )\n", + "\n", + "for trace in list(year_rel_output.select_traces()):\n", + " figsuper.add_trace(trace,\n", + " row=2, col=1\n", + " )\n", + "\n", + "figsuper.update_layout(yaxis={'categoryorder': 'total ascending'}, barmode='relative')\n", + "figsuper.update_yaxes(\n", + " showgrid=True, showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "figsuper.update_xaxes(\n", + " showgrid=True, showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "figsuper.update_layout({'template': \"plotly\", \"font_family\": \"Montserrat\"})\n", + "figsuper['layout']['yaxis2'].update(zerolinecolor='grey', tickformat=\".0%\")\n", + "# for i in[\"xaxis\",\"xaxis2\"]:\n", + "# figsuper['layout'][f'{i}'][\"range\"] = [2010.8,2022.5]\n", + "#\n", + "figsuper['layout'][\"yaxis\"][\"range\"] = [0, 2500]\n", + "figsuper['layout'][\"yaxis2\"][\"range\"] = [-1, 3.5]\n", + "#\n", + "# figsuper['layout']['yaxis'].update(tickformat=\".0f\")\n", + "# figsuper['layout']['yaxis3'].update(tickformat=\".0f\")\n", + "\n", + "figsuper.show(config=dict(displayModeBar=False, responsive=True), height=800, width=1600, scale=4)\n", + "\n", + "figsuper.write_image(f\"{fromdir}/plots/overall_distr&trends.png\", height=900, width=900, scale=4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 61, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x21", + "y": [ + 0.0, + 1.0, + 0.0, + 1.0, + 1.0, + 1.0, + 2.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + "yaxis": "y21", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x22", + "y": [ + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 2.0, + 1.0, + 1.0, + 0.0 + ], + "yaxis": "y22", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x23", + "y": [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "yaxis": "y23", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x24", + "y": [ + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 2.0, + 1.0, + 0.0, + 0.0 + ], + "yaxis": "y24", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x25", + "y": [ + 0.0, + 0.0, + 2.0, + 1.0, + 1.0, + 1.0, + 0.0, + 0.0, + 3.0, + 1.0, + 0.0, + 0.0 + ], + "yaxis": "y25", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x16", + "y": [ + 41.0, + 48.0, + 66.0, + 71.0, + 87.0, + 88.0, + 117.0, + 159.0, + 174.0, + 159.0, + 65.0, + 0.0 + ], + "yaxis": "y16", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x17", + "y": [ + 4.0, + 3.0, + 0.0, + 1.0, + 3.0, + 8.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0 + ], + "yaxis": "y17", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x18", + "y": [ + 18.0, + 20.0, + 36.0, + 16.0, + 18.0, + 28.0, + 24.0, + 17.0, + 27.0, + 30.0, + 21.0, + 0.0 + ], + "yaxis": "y18", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x19", + "y": [ + 36.0, + 47.0, + 68.0, + 81.0, + 80.0, + 46.0, + 97.0, + 57.0, + 77.0, + 54.0, + 49.0, + 0.0 + ], + "yaxis": "y19", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x20", + "y": [ + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "yaxis": "y20", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x11", + "y": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + "yaxis": "y11", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x12", + "y": [ + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 5.0, + 1.0, + 0.0, + 4.0, + 2.0, + 5.0, + 1.0 + ], + "yaxis": "y12", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x13", + "y": [ + 0.0, + 0.0, + 0.0, + 0.0, + 2.0, + 0.0, + 1.0, + 5.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "yaxis": "y13", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x14", + "y": [ + 0.0, + 0.0, + 1.0, + 6.0, + 3.0, + 4.0, + 8.0, + 11.0, + 1.0, + 13.0, + 2.0, + 0.0 + ], + "yaxis": "y14", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x15", + "y": [ + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 2.0, + 1.0, + 1.0, + 0.0, + 3.0, + 0.0, + 0.0 + ], + "yaxis": "y15", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x6", + "y": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0 + ], + "yaxis": "y6", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x7", + "y": [ + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + "yaxis": "y7", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x8", + "y": [ + 5.0, + 2.0, + 3.0, + 5.0, + 3.0, + 3.0, + 5.0, + 0.0, + 2.0, + 1.0, + 2.0, + 3.0 + ], + "yaxis": "y8", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x9", + "y": [ + 0.0, + 0.0, + 0.0, + 0.0, + 2.0, + 1.0, + 3.0, + 2.0, + 0.0, + 3.0, + 1.0, + 0.0 + ], + "yaxis": "y9", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x10", + "y": [ + 0.0, + 1.0, + 0.0, + 0.0, + 6.0, + 0.0, + 0.0, + 0.0, + 0.0, + 4.0, + 0.0, + 0.0 + ], + "yaxis": "y10", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x", + "y": [ + 13.0, + 32.0, + 29.0, + 27.0, + 45.0, + 66.0, + 91.0, + 57.0, + 31.0, + 14.0, + 6.0, + 0.0 + ], + "yaxis": "y", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x2", + "y": [ + 542.0, + 766.0, + 707.0, + 655.0, + 674.0, + 761.0, + 1007.0, + 1128.0, + 1232.0, + 1380.0, + 927.0, + 1.0 + ], + "yaxis": "y2", + "type": "scatter" + } + ], + "layout": { + "annotations": [ + { + "showarrow": false, + "text": "United Kingdom", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.144, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "WIPO", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.144, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Portugal", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Romania", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Spain", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Sweden", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Switzerland", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Lithuania", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Luxembourg", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Morocco", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Netherlands", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Poland", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "EPO", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Finland", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "France", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Germany", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Ireland", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Austria", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Belgium", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "China", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Czechia", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Denmark", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + } + ], + "font": { + "family": "Montserrat", + "size": 22 + }, + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Yearly output of co-patents by patent authority" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis3": { + "anchor": "y3", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis5": { + "anchor": "y5", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis5": { + "anchor": "x5", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis6": { + "anchor": "y6", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis6": { + "anchor": "x6", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis7": { + "anchor": "y7", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis7": { + "anchor": "x7", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis8": { + "anchor": "y8", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis8": { + "anchor": "x8", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis9": { + "anchor": "y9", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis9": { + "anchor": "x9", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis10": { + "anchor": "y10", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis10": { + "anchor": "x10", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis11": { + "anchor": "y11", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis11": { + "anchor": "x11", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis12": { + "anchor": "y12", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis12": { + "anchor": "x12", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis13": { + "anchor": "y13", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis13": { + "anchor": "x13", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis14": { + "anchor": "y14", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis14": { + "anchor": "x14", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis15": { + "anchor": "y15", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis15": { + "anchor": "x15", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis16": { + "anchor": "y16", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis16": { + "anchor": "x16", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis17": { + "anchor": "y17", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis17": { + "anchor": "x17", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis18": { + "anchor": "y18", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis18": { + "anchor": "x18", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis19": { + "anchor": "y19", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis19": { + "anchor": "x19", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis20": { + "anchor": "y20", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis20": { + "anchor": "x20", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis21": { + "anchor": "y21", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis21": { + "anchor": "x21", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis22": { + "anchor": "y22", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis22": { + "anchor": "x22", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis23": { + "anchor": "y23", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis23": { + "anchor": "x23", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis24": { + "anchor": "y24", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis24": { + "anchor": "x24", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + }, + "xaxis25": { + "anchor": "y25", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis25": { + "anchor": "x25", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + } + } + }, + "config": { + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "data = (appln_f.groupby(['appln_filing_year',\"appln_auth\"])[record_col]\n", + " .nunique(dropna=False).unstack()\n", + " .fillna(0)\n", + " .stack()\n", + " .reset_index()\n", + " .rename(columns={0:record_col}))\n", + "\n", + "# data[\"appln_auth\"].str.replace(\"MO\",\"CN\")\n", + "\n", + "data = data.merge(data[data[record_col]>0].sort_values(by=[\"appln_filing_year\"], ascending=True).drop_duplicates(subset=\"appln_auth\"),\n", + " on=[\"appln_auth\"], suffixes=[None,\"_relative_growth\"])\n", + "data[record_col+\"_relative_growth\"] = (data[record_col]-data[record_col+\"_relative_growth\"])/data[record_col+\"_relative_growth\"]\n", + "data = data.sort_values(by =[\"appln_auth\",\"appln_filing_year\"], ascending=[True,True])\n", + "data[record_col+\"_cumsum\"] = (data.groupby('appln_auth',as_index=False)[record_col].cumsum())\n", + "\n", + "data = data.merge(tls_801,left_on='appln_auth', right_on =\"ctry_code\")\n", + "data[\"Country\"] = data[\"st3_name\"].str.split(\"(\").str[-1].str.strip(\")\")\n", + "\n", + "\n", + "fig = px.line(data.sort_values(ascending=True, by='appln_filing_year'),\n", + " y=record_col,\n", + " x='appln_filing_year'\n", + " ,facet_col=\"Country\",facet_col_wrap=5,category_orders={\"Country\": sorted(data[\"Country\"].unique())},\n", + " markers=True,\n", + " labels={\n", + " record_col: 'Number of co-patents',\n", + " },\n", + " title=\"Yearly output of co-patents by patent authority\",hover_name= \"Country\")\n", + "fig.update_traces(hovertemplate='%{hovertext}
%{x}
Co-publications: %{y}')\n", + "fig.update_yaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "fig.update_xaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "fig.update_layout({'template':\"plotly\"},font_family=\"Montserrat\")\n", + "fig.update_yaxes(title='')\n", + "fig.update_xaxes(title='')\n", + "fig.for_each_annotation(lambda a: a.update(text=a.text.split(\"=\")[-1]))\n", + "# fig.show(config= dict(displayModeBar = False, responsive = True))\n", + "figsuper_ppt = go.Figure(fig)\n", + "\n", + "figsuper_ppt['layout'][\"font\"][\"size\"]=22\n", + "# figsuper['layout'][\"xaxis\"][\"range\"] = [20,2022.5]\n", + "for a in figsuper_ppt['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 22\n", + "\n", + "s=16\n", + "figsuper_ppt.update_yaxes(tickfont=dict(size=s))\n", + "figsuper_ppt.update_xaxes(tickfont=dict(size=s),tickangle=45)\n", + "figsuper_ppt.show(height=800,width=1600,scale = 4)\n", + "figsuper_ppt.write_image(f\"{fromdir}/plots/yearly_outputs.png\",height=800,width=1600,scale = 4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 64, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria", + "Austria" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x21", + "y": [ + -1.0, + 0.0, + -1.0, + 0.0, + 0.0, + 0.0, + 1.0, + -1.0, + -1.0, + 0.0, + -1.0, + -1.0 + ], + "yaxis": "y21", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium", + "Belgium" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x22", + "y": [ + -1.0, + 0.0, + -1.0, + -1.0, + 0.0, + -1.0, + -1.0, + -1.0, + 1.0, + 0.0, + 0.0, + -1.0 + ], + "yaxis": "y22", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China", + "China" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x23", + "y": [ + -1.0, + 0.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0 + ], + "yaxis": "y23", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia", + "Czechia" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x24", + "y": [ + -1.0, + -1.0, + 0.0, + -1.0, + 0.0, + -1.0, + -1.0, + 0.0, + 1.0, + 0.0, + -1.0, + -1.0 + ], + "yaxis": "y24", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark", + "Denmark" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x25", + "y": [ + -1.0, + -1.0, + 0.0, + -0.5, + -0.5, + -0.5, + -1.0, + -1.0, + 0.5, + -0.5, + -1.0, + -1.0 + ], + "yaxis": "y25", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO", + "EPO" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x16", + "y": [ + 0.0, + 0.17073170731707318, + 0.6097560975609756, + 0.7317073170731707, + 1.1219512195121952, + 1.146341463414634, + 1.853658536585366, + 2.8780487804878048, + 3.2439024390243905, + 2.8780487804878048, + 0.5853658536585366, + -1.0 + ], + "yaxis": "y16", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland", + "Finland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x17", + "y": [ + 0.0, + -0.25, + -1.0, + -0.75, + -0.25, + 1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -0.75, + -1.0 + ], + "yaxis": "y17", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France", + "France" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x18", + "y": [ + 0.0, + 0.1111111111111111, + 1.0, + -0.1111111111111111, + 0.0, + 0.5555555555555556, + 0.3333333333333333, + -0.05555555555555555, + 0.5, + 0.6666666666666666, + 0.16666666666666666, + -1.0 + ], + "yaxis": "y18", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany", + "Germany" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x19", + "y": [ + 0.0, + 0.3055555555555556, + 0.8888888888888888, + 1.25, + 1.2222222222222223, + 0.2777777777777778, + 1.6944444444444444, + 0.5833333333333334, + 1.1388888888888888, + 0.5, + 0.3611111111111111, + -1.0 + ], + "yaxis": "y19", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland", + "Ireland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x20", + "y": [ + -1.0, + 0.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0 + ], + "yaxis": "y20", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania", + "Lithuania" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x11", + "y": [ + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + 0.0, + -1.0, + 0.0, + -1.0, + -1.0 + ], + "yaxis": "y11", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg", + "Luxembourg" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x12", + "y": [ + 0.0, + -1.0, + -1.0, + 0.0, + -1.0, + 4.0, + 0.0, + -1.0, + 3.0, + 1.0, + 4.0, + 0.0 + ], + "yaxis": "y12", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco", + "Morocco" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x13", + "y": [ + -1.0, + -1.0, + -1.0, + -1.0, + 0.0, + -1.0, + -0.5, + 1.5, + -0.5, + -1.0, + -1.0, + -1.0 + ], + "yaxis": "y13", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands", + "Netherlands" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x14", + "y": [ + -1.0, + -1.0, + 0.0, + 5.0, + 2.0, + 3.0, + 7.0, + 10.0, + 0.0, + 12.0, + 1.0, + -1.0 + ], + "yaxis": "y14", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland", + "Poland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x15", + "y": [ + -1.0, + -1.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + -1.0, + 2.0, + -1.0, + -1.0 + ], + "yaxis": "y15", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal", + "Portugal" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x6", + "y": [ + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + 0.0, + -1.0, + -1.0, + 0.0, + -1.0, + -1.0, + -1.0 + ], + "yaxis": "y6", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania", + "Romania" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x7", + "y": [ + -1.0, + 0.0, + -1.0, + 0.0, + -1.0, + -1.0, + -1.0, + 0.0, + -1.0, + 0.0, + -1.0, + -1.0 + ], + "yaxis": "y7", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain", + "Spain" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x8", + "y": [ + 0.0, + -0.6, + -0.4, + 0.0, + -0.4, + -0.4, + 0.0, + -1.0, + -0.6, + -0.8, + -0.6, + -0.4 + ], + "yaxis": "y8", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x9", + "y": [ + -1.0, + -1.0, + -1.0, + -1.0, + 0.0, + -0.5, + 0.5, + 0.0, + -1.0, + 0.5, + -0.5, + -1.0 + ], + "yaxis": "y9", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x10", + "y": [ + -1.0, + 0.0, + -1.0, + -1.0, + 5.0, + -1.0, + -1.0, + -1.0, + -1.0, + 3.0, + -1.0, + -1.0 + ], + "yaxis": "y10", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom", + "United Kingdom" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x", + "y": [ + 0.0, + 1.4615384615384615, + 1.2307692307692308, + 1.0769230769230769, + 2.4615384615384617, + 4.076923076923077, + 6.0, + 3.3846153846153846, + 1.3846153846153846, + 0.07692307692307693, + -0.5384615384615384, + -1.0 + ], + "yaxis": "y", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO", + "WIPO" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021, + 2022 + ], + "xaxis": "x2", + "y": [ + 0.0, + 0.4132841328413284, + 0.3044280442804428, + 0.20848708487084872, + 0.24354243542435425, + 0.4040590405904059, + 0.8579335793357934, + 1.081180811808118, + 1.2730627306273063, + 1.5461254612546125, + 0.7103321033210332, + -0.9981549815498155 + ], + "yaxis": "y2", + "type": "scatter" + } + ], + "layout": { + "annotations": [ + { + "showarrow": false, + "text": "United Kingdom", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.144, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "WIPO", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.144, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Portugal", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Romania", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Spain", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Sweden", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Switzerland", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.358, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Lithuania", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Luxembourg", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Morocco", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Netherlands", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Poland", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.572, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "EPO", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Finland", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "France", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Germany", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Ireland", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.7859999999999999, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Austria", + "x": 0.09200000000000001, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Belgium", + "x": 0.29600000000000004, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "China", + "x": 0.5, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Czechia", + "x": 0.7040000000000002, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, + { + "showarrow": false, + "text": "Denmark", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + } + ], + "font": { + "family": "Montserrat", + "size": 22 + }, + "legend": { + "tracegroupgap": 0 + }, + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Yearly rel. output of co-patents by patent authority" + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis3": { + "anchor": "y3", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis5": { + "anchor": "y5", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis5": { + "anchor": "x5", + "domain": [ + 0.0, + 0.144 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis6": { + "anchor": "y6", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis6": { + "anchor": "x6", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis7": { + "anchor": "y7", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis7": { + "anchor": "x7", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis8": { + "anchor": "y8", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis8": { + "anchor": "x8", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis9": { + "anchor": "y9", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis9": { + "anchor": "x9", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis10": { + "anchor": "y10", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis10": { + "anchor": "x10", + "domain": [ + 0.214, + 0.358 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis11": { + "anchor": "y11", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis11": { + "anchor": "x11", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis12": { + "anchor": "y12", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis12": { + "anchor": "x12", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis13": { + "anchor": "y13", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis13": { + "anchor": "x13", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis14": { + "anchor": "y14", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis14": { + "anchor": "x14", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis15": { + "anchor": "y15", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis15": { + "anchor": "x15", + "domain": [ + 0.428, + 0.572 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis16": { + "anchor": "y16", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis16": { + "anchor": "x16", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis17": { + "anchor": "y17", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis17": { + "anchor": "x17", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis18": { + "anchor": "y18", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis18": { + "anchor": "x18", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis19": { + "anchor": "y19", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis19": { + "anchor": "x19", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis20": { + "anchor": "y20", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis20": { + "anchor": "x20", + "domain": [ + 0.6419999999999999, + 0.7859999999999999 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis21": { + "anchor": "y21", + "domain": [ + 0.0, + 0.18400000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis21": { + "anchor": "x21", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis22": { + "anchor": "y22", + "domain": [ + 0.20400000000000001, + 0.388 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis22": { + "anchor": "x22", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis23": { + "anchor": "y23", + "domain": [ + 0.40800000000000003, + 0.5920000000000001 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis23": { + "anchor": "x23", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis24": { + "anchor": "y24", + "domain": [ + 0.6120000000000001, + 0.7960000000000002 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis24": { + "anchor": "x24", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + }, + "xaxis25": { + "anchor": "y25", + "domain": [ + 0.8160000000000001, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "x", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "tickfont": { + "size": 16 + }, + "tickangle": 45 + }, + "yaxis25": { + "anchor": "x25", + "domain": [ + 0.856, + 1.0 + ], + "linecolor": "black", + "linewidth": 1, + "matches": "y", + "mirror": true, + "showgrid": true, + "showline": true, + "showticklabels": false, + "ticks": "outside", + "title": { + "text": "" + }, + "zeroline": true, + "zerolinewidth": 2, + "zerolinecolor": "grey", + "tickformat": ".0%", + "tickfont": { + "size": 16 + } + } + }, + "config": { + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = px.line(data.sort_values(ascending=True, by='appln_filing_year'),\n", + " y=record_col+\"_relative_growth\",\n", + " x='appln_filing_year'\n", + " ,facet_col=\"Country\",facet_col_wrap=5,category_orders={\"Country\": sorted(data[\"Country\"].unique())},\n", + " markers=True,\n", + " labels={\n", + " record_col+\"_relative_growth\": 'Relative growth of co-patents (%)',\n", + " },\n", + " title=\"Yearly rel. output of co-patents by patent authority\",hover_name= \"Country\")\n", + "fig.update_traces(hovertemplate='%{hovertext}
%{x}
Co-publications: %{y}')\n", + "fig.update_yaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "fig.update_xaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "fig.update_layout({'template':\"plotly\"},font_family=\"Montserrat\")\n", + "fig.update_yaxes(title='')\n", + "fig.update_xaxes(title='')\n", + "fig.for_each_annotation(lambda a: a.update(text=a.text.split(\"=\")[-1]))\n", + "# fig.show(config= dict(displayModeBar = False, responsive = True))\n", + "\n", + "figsuper_ppt = go.Figure(fig)\n", + "\n", + "figsuper_ppt['layout'][\"font\"][\"size\"]=22\n", + "for a in figsuper_ppt['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 22\n", + "\n", + "s=16\n", + "figsuper_ppt.update_yaxes(title='',zeroline=True, zerolinewidth=2, zerolinecolor='grey',tickformat=\".0%\")\n", + "figsuper_ppt.update_yaxes(tickfont=dict(size=s))\n", + "figsuper_ppt.update_xaxes(tickfont=dict(size=s),tickangle=45)\n", + "figsuper_ppt.show(height=800,width=1600,scale = 4)\n", + "figsuper_ppt.write_image(f\"{fromdir}/plots/yearly_rel_outputs.png\",height=800,width=1600,scale = 4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 74, + "outputs": [], + "source": [ + "appln_pers_f = appln_scope\n", + "appln_pers_f[\"psn_sector_primary\"] = appln_pers_f[\"psn_sector_x\"]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 68, + "outputs": [ + { + "data": { + "text/plain": "Index(['appln_id', 'appln_auth', 'person_id', 'invt_seq_nr', 'applt_seq_nr',\n 'person_name', 'person_ctry_code', 'han_id', 'han_name', 'psn_sector_x',\n 'psn_sector_y', 'person_ctry_code_fullname', 'appln_auth_fullname',\n 'person_ctry_ISO3', 'person_ctry_type', 'auth_ISO3', 'auth_ctry_type'],\n dtype='object')" + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.columns" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 93, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " ctry_code iso_alpha3 st3_name organisation_flag \n", + "0 AD AND Andorra \\\n", + "1 AE ARE United Arab Emirates \n", + "2 AF AFG Afghanistan \n", + "3 AG ATG Antigua and Barbuda \n", + "4 AI AIA Anguilla \n", + ".. ... ... ... ... \n", + "235 YE YEM Yemen \n", + "236 YU YUG Yugoslavia/Serbia and Montenegro \n", + "237 ZA ZAF South Africa \n", + "238 ZM ZMB Zambia \n", + "239 ZW ZWE Zimbabwe \n", + "\n", + " continent eu_member epo_member oecd_member discontinued \n", + "0 Europe \n", + "1 Asia \n", + "2 Asia \n", + "3 North America \n", + "4 North America \n", + ".. ... ... ... ... ... \n", + "235 Asia \n", + "236 Europe Y \n", + "237 Africa \n", + "238 Africa \n", + "239 Africa \n", + "\n", + "[240 rows x 9 columns]\n" + ] + } + ], + "source": [ + "print(tls_801)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 102, + "outputs": [], + "source": [ + "iso2_to_namedict = dict(zip(tls_801[\"ctry_code\"],tls_801[\"st3_name\"].str.split(\"(\").str[-1].str.strip(\")\")))\n", + "name_to_iso3 = dict(zip(tls_801[\"st3_name\"].str.split(\"(\").str[-1].str.strip(\")\"),tls_801[\"iso_alpha3\"]))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 125, + "outputs": [ + { + "data": { + "text/plain": "{'Andorra': 'AND',\n 'United Arab Emirates': 'ARE',\n 'Afghanistan': 'AFG',\n 'Antigua and Barbuda': 'ATG',\n 'Anguilla': 'AIA',\n 'Albania': 'ALB',\n 'Armenia': 'ARM',\n 'Netherlands Antilles ': 'ANT',\n 'Angola': 'AGO',\n 'ARIPO': ' ',\n 'Argentina': 'ARG',\n 'Austria': 'AUT',\n 'Australia': 'AUS',\n 'Aruba': 'ABW',\n 'Azerbaijan': 'AZE',\n 'Bosnia and Herzegovina': 'BIH',\n 'Barbados': 'BRB',\n 'Bangladesh': 'BGD',\n 'Belgium': 'BEL',\n 'Burkina Faso': 'BFA',\n 'Bulgaria': 'BGR',\n 'Bahrain': 'BHR',\n 'Burundi': 'BDI',\n 'Benin': 'BEN',\n 'Bermuda': 'BMU',\n 'Brunei Darussalam': 'BRN',\n 'Plurinational State of': 'BOL',\n 'Bonaire, Sint Eustatius and Saba': 'BES',\n 'Brazil': 'BRA',\n 'Bahamas': 'BHS',\n 'Bhutan': 'BTN',\n 'Burma': 'BUR',\n 'Bouvet Island': 'BVT',\n 'Botswana': 'BWA',\n 'BOIP': ' ',\n 'Belarus': 'BLR',\n 'Belize': 'BLZ',\n 'Canada': 'CAN',\n 'Democratic Republic of the Congo': 'COD',\n 'Central African Republic': 'CAF',\n 'Congo': 'COG',\n 'Switzerland': 'CHE',\n \"Côte d'Ivoire\": 'CIV',\n 'Cook Islands': 'COK',\n 'Chile': 'CHL',\n 'Cameroon': 'CMR',\n 'China': 'CHN',\n 'Colombia': 'COL',\n 'Costa Rica': 'CRI',\n 'Czechoslovakia': 'CSK',\n 'Cuba': 'CUB',\n 'Cabo Verde': 'CPV',\n 'Curaçao': 'CUW',\n 'Cyprus': 'CYP',\n 'Czechia': 'CZE',\n 'German Democratic Republic': 'DDR',\n 'Germany': 'DEU',\n 'Djibouti': 'DJI',\n 'Denmark': 'DNK',\n 'Dominica': 'DMA',\n 'Dominican Republic': 'DOM',\n 'Algeria': 'DZA',\n 'EAPO': ' ',\n 'Ecuador': 'ECU',\n 'Estonia': 'EST',\n 'Egypt': 'EGY',\n 'Western Sahara': 'ESH',\n 'EUIPO': ' ',\n 'EPO': ' ',\n 'Eritrea': 'ERI',\n 'Spain': 'ESP',\n 'Ethiopia': 'ETH',\n 'European Union': ' ',\n 'Finland': 'FIN',\n 'Fiji': 'FJI',\n 'Malvinas': 'FLK',\n 'Faroe Islands': 'FRO',\n 'France': 'FRA',\n 'Gabon': 'GAB',\n 'United Kingdom': 'GBR',\n 'GCC Patent Office': ' ',\n 'Grenada': 'GRD',\n 'Georgia': 'GEO',\n 'Guernsey': 'GGY',\n 'Ghana': 'GHA',\n 'Gibraltar': 'GIB',\n 'Greenland': 'GRL',\n 'Gambia': 'GMB',\n 'Guinea': 'GIN',\n 'Equatorial Guinea': 'GNQ',\n 'Greece': 'GRC',\n 'South Georgia and the South Sandwich Islands': 'SGS',\n 'Guatemala': 'GTM',\n 'Guinea-Bissau': 'GNB',\n 'Guyana': 'GUY',\n 'Hong Kong, China': 'HKG',\n 'Honduras': 'HND',\n 'Croatia': 'HRV',\n 'Haiti': 'HTI',\n 'Hungary': 'HUN',\n 'WIPO': ' ',\n 'Indonesia': 'IDN',\n 'Ireland': 'IRL',\n 'Israel': 'ISR',\n 'Isle of Man': 'IMN',\n 'India': 'IND',\n 'Iraq': 'IRQ',\n 'Islamic Republic of': 'IRN',\n 'Iceland': 'ISL',\n 'Italy': 'ITA',\n 'Jersey': 'JEY',\n 'Jamaica': 'JAM',\n 'Jordan': 'JOR',\n 'Japan': 'JPN',\n 'Kenya': 'KEN',\n 'Kyrgyzstan': 'KGZ',\n 'Cambodia': 'KHM',\n 'Kiribati': 'KIR',\n 'Comoros': 'COM',\n 'Saint Kitts and Nevis': 'KNA',\n \"Democratic People's Republic of Korea\": 'PRK',\n 'Republic of Korea': 'KOR',\n 'Kuwait': 'KWT',\n 'Cayman Islands': 'CYM',\n 'Kazakhstan': 'KAZ',\n \"Lao People's Democratic Republic\": 'LAO',\n 'Lebanon': 'LBN',\n 'Saint Lucia': 'LCA',\n 'Liechtenstein': 'LIE',\n 'Sri Lanka': 'LKA',\n 'Liberia': 'LBR',\n 'Lesotho': 'LSO',\n 'Lithuania': 'LTU',\n 'Luxembourg': 'LUX',\n 'Latvia': 'LVA',\n 'Libya': 'LBY',\n 'Morocco': 'MAR',\n 'Monaco': 'MCO',\n 'Republic of Moldova': 'MDA',\n 'Montenegro': 'MNE',\n 'Madagascar': 'MDG',\n 'North Macedonia': 'MKD',\n 'Mali': 'MLI',\n 'Myanmar': 'MMR',\n 'Mongolia': 'MNG',\n 'Macao, China': 'MAC',\n 'Northern Mariana Islands': 'MNP',\n 'Mauritania': 'MRT',\n 'Montserrat': 'MSR',\n 'Malta': 'MLT',\n 'Mauritius': 'MUS',\n 'Maldives': 'MDV',\n 'Malawi': 'MWI',\n 'Mexico': 'MEX',\n 'Malaysia': 'MYS',\n 'Mozambique': 'MOZ',\n 'Namibia': 'NAM',\n 'Niger': 'NER',\n 'Nigeria': 'NGA',\n 'Nicaragua': 'NIC',\n 'Netherlands': 'NLD',\n 'Norway': 'NOR',\n 'Nepal': 'NPL',\n 'Nauru': 'NRU',\n 'New Zealand': 'NZL',\n 'OAPI': ' ',\n 'Oman': 'OMN',\n 'Panama': 'PAN',\n 'Peru': 'PER',\n 'Papua New Guinea': 'PNG',\n 'Philippines': 'PHL',\n 'Pakistan': 'PAK',\n 'Poland': 'POL',\n 'Portugal': 'PRT',\n 'Palau': 'PLW',\n 'Paraguay': 'PRY',\n 'Qatar': 'QAT',\n 'CPVO': ' ',\n 'Romania': 'ROU',\n 'Serbia': 'SRB',\n 'Russian Federation': 'RUS',\n 'Rwanda': 'RWA',\n 'Saudi Arabia': 'SAU',\n 'Solomon Islands': 'SLB',\n 'Seychelles': 'SYC',\n 'Sudan': 'SDN',\n 'Sweden': 'SWE',\n 'Singapore': 'SGP',\n 'Saint Helena, Ascension and Tristan da Cunha': 'SHN',\n 'Slovenia': 'SVN',\n 'Slovakia': 'SVK',\n 'Sierra Leone': 'SLE',\n 'San Marino': 'SMR',\n 'Senegal': 'SEN',\n 'Somalia': 'SOM',\n 'Suriname': 'SUR',\n 'South Sudan': 'SSD',\n 'Sao Tome and Principe': 'STP',\n 'Soviet Union': 'SUN',\n 'El Salvador': 'SLV',\n 'Dutch part': 'SXM',\n 'Syrian Arab Republic': 'SYR',\n 'Eswatini': 'SWZ',\n 'Turks and Caicos Islands': 'TCA',\n 'Chad': 'TCD',\n 'Togo': 'TGO',\n 'Thailand': 'THA',\n 'Tajikistan': 'TJK',\n 'Timor-Leste': 'TLS',\n 'Turkmenistan': 'TKM',\n 'Tunisia': 'TUN',\n 'Tonga': 'TON',\n 'Türkiye': 'TUR',\n 'Trinidad and Tobago': 'TTO',\n 'Tuvalu': 'TUV',\n 'Taiwan province of China': 'TWN',\n 'United Republic of Tanzania': 'TZA',\n 'Ukraine': 'UKR',\n 'Uganda': 'UGA',\n 'United States of America': 'USA',\n 'Uruguay': 'URY',\n 'Uzbekistan': 'UZB',\n 'Holy See': 'VAT',\n 'Saint Vincent and the Grenadines': 'VCT',\n 'Bolivarian Republic of': 'VEN',\n 'British Virgin Islands': 'VGB',\n 'Viet Nam': 'VNM',\n 'Vanuatu': 'VUT',\n 'Samoa': 'WSM',\n 'NPI': ' ',\n 'UPOV': ' ',\n 'VPI': ' ',\n 'Democratic Yemen': 'YMD',\n 'Yemen': 'YEM',\n 'Yugoslavia/Serbia and Montenegro': 'YUG',\n 'South Africa': 'ZAF',\n 'Zambia': 'ZMB',\n 'Zimbabwe': 'ZWE'}" + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "name_to_iso3" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 126, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Country type=China
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "China", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "China", + "offsetgroup": "China", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 2706, + 831, + 271, + 250, + 187, + 141, + 102, + 85, + 83, + 74, + 74, + 56, + 52, + 51, + 42 + ], + "xaxis": "x", + "y": [ + "HUAWEI TECH CO LTD (CHN)", + "NOKIA SHANGHAI BELL CO LTD (CHN)", + "NINGBO GEELY AUTOMOBILE R
D CO LTD (CHN)", + "SIEMENS LTD CHINA (CHN)", + "NOKIA CHINA INVESTMENT CO LTD (CHN)", + "NOKIA TECH BEIJING CO LTD (CHN)", + "TCL COMM LTD (CHN)", + "ALCATEL LUCENT SHANGHAI BELL CO LTD (CHN)", + "LENOVO BEIJING CO LTD (CHN)", + "HENKEL CHINA CO LTD (CHN)", + "ZHEJIANG GEELY HOLDINGGROUP CO LTD (CHN)", + "WANG, HAIMING (CHN)", + "NAVTEQ SHANGHAI TRADING CO LTD (CHN)", + "FAN RUI (CHN)", + "LIU, JINHUA (CHN)" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Number of co-patents" + }, + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Name" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 12 + } + }, + "legend": { + "title": { + "text": "Country type" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 12 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Country type=EU
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "EU", + "marker": { + "color": "#636EFA", + "pattern": { + "shape": "" + } + }, + "name": "EU", + "offsetgroup": "EU", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 1415, + 1153, + 940, + 459, + 317, + 274, + 241, + 162, + 150, + 131, + 115, + 67, + 65 + ], + "xaxis": "x", + "y": [ + "NOKIA CORP (FIN)", + "TELEFON AB LM ERICSSON PUBL (SWE)", + "NOKIA TECH LTD (FIN)", + "SIEMENS AG (DEU)", + "ROBERT BOSCH GMBH (DEU)", + "L OREAL (FRA)", + "SCHAEFFLER TECH AG
CO KG (DEU)", + "THOMSON LICENSING (FRA)", + "RHODIA OPERATIONS (FRA)", + "HENKEL AG
CO KGAA (DEU)", + "BAYERISCHE MOTOREN WERKE AG (DEU)", + "CNRS (FRA)", + "ORANGE (FRA)" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Country type=Non-EU associate
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "Non-EU associate", + "marker": { + "color": "#00CC96", + "pattern": { + "shape": "" + } + }, + "name": "Non-EU associate", + "offsetgroup": "Non-EU associate", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 326, + 124 + ], + "xaxis": "x", + "y": [ + "ABB SCHWEIZ AG (CHE)", + "ABB TECH AG (CHE)" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Number of co-patents" + }, + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Name" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 12 + } + }, + "legend": { + "title": { + "text": "Country type" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 12 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Sector=COMPANY
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "COMPANY", + "marker": { + "color": "#FFA15A", + "pattern": { + "shape": "" + } + }, + "name": "COMPANY", + "offsetgroup": "COMPANY", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 2706, + 831, + 271, + 250, + 187, + 141, + 102, + 85, + 83, + 74, + 74, + 52 + ], + "xaxis": "x", + "y": [ + "HUAWEI TECH CO LTD (CHN)", + "NOKIA SHANGHAI BELL CO LTD (CHN)", + "NINGBO GEELY AUTOMOBILE R
D CO LTD (CHN)", + "SIEMENS LTD CHINA (CHN)", + "NOKIA CHINA INVESTMENT CO LTD (CHN)", + "NOKIA TECH BEIJING CO LTD (CHN)", + "TCL COMM LTD (CHN)", + "ALCATEL LUCENT SHANGHAI BELL CO LTD (CHN)", + "LENOVO BEIJING CO LTD (CHN)", + "HENKEL CHINA CO LTD (CHN)", + "ZHEJIANG GEELY HOLDINGGROUP CO LTD (CHN)", + "NAVTEQ SHANGHAI TRADING CO LTD (CHN)" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Sector=INDIVIDUAL
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "INDIVIDUAL", + "marker": { + "color": "#19d3f3", + "pattern": { + "shape": "" + } + }, + "name": "INDIVIDUAL", + "offsetgroup": "INDIVIDUAL", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 56, + 51, + 42 + ], + "xaxis": "x", + "y": [ + "WANG, HAIMING (CHN)", + "FAN RUI (CHN)", + "LIU, JINHUA (CHN)" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Number of co-patents" + }, + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Name" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 12 + } + }, + "legend": { + "title": { + "text": "Sector" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 12 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Sector=COMPANY
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "COMPANY", + "marker": { + "color": "#FFA15A", + "pattern": { + "shape": "" + } + }, + "name": "COMPANY", + "offsetgroup": "COMPANY", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 1415, + 1153, + 940, + 459, + 326, + 317, + 274, + 241, + 162, + 150, + 131, + 124, + 115, + 65 + ], + "xaxis": "x", + "y": [ + "NOKIA CORP (FIN)", + "TELEFON AB LM ERICSSON PUBL (SWE)", + "NOKIA TECH LTD (FIN)", + "SIEMENS AG (DEU)", + "ABB SCHWEIZ AG (CHE)", + "ROBERT BOSCH GMBH (DEU)", + "L OREAL (FRA)", + "SCHAEFFLER TECH AG
CO KG (DEU)", + "THOMSON LICENSING (FRA)", + "RHODIA OPERATIONS (FRA)", + "HENKEL AG
CO KGAA (DEU)", + "ABB TECH AG (CHE)", + "BAYERISCHE MOTOREN WERKE AG (DEU)", + "ORANGE (FRA)" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Sector=GOV NON-PROFIT
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "GOV NON-PROFIT", + "marker": { + "color": "#19d3f3", + "pattern": { + "shape": "" + } + }, + "name": "GOV NON-PROFIT", + "offsetgroup": "GOV NON-PROFIT", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 67 + ], + "xaxis": "x", + "y": [ + "CNRS (FRA)" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Number of co-patents" + }, + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Name" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 12 + } + }, + "legend": { + "title": { + "text": "Sector" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 12 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for c in [\"person_ctry_code\",\"appln_auth\"]:\n", + " appln_pers_f[c+\"_fullname\"] = appln_pers_f[c].map(iso2_to_namedict)\n", + "\n", + "# appln_pers_f[\"appln_auth_fullname\"] = appln_pers_f[\"appln_auth_fullname\"].str.replace(\"not found\",\"European Patent Office\")\n", + "appln_pers_f[\"person_ctry_ISO3\"] = cc.pandas_convert(series=appln_pers_f[\"person_ctry_code_fullname\"], to='ISO3')\n", + "appln_pers_f[\"person_ctry_type\"] = appln_pers_f[\"person_ctry_ISO3\"].apply(lambda x: \"China\" if x == \"CHN\" else \"Non-EU associate\" if x in [\"GBR\",\"CHE\",\"NOR\"] else \"EU\")\n", + "\n", + "appln_pers_f[\"auth_ISO3\"] = appln_pers_f[\"appln_auth_fullname\"].map(name_to_iso3)\n", + "appln_pers_f[\"auth_ctry_type\"] = appln_pers_f[\"auth_ISO3\"].apply(lambda x: \"China\" if x == \"CHN\" else \"Non-EU associate\" if x in [\"GBR\",\"CHE\",\"NOR\"] else \"Patent Office\" if x==\" \" else \"EU\")\n", + "\n", + "# top 25\n", + "# - inventor\n", + "# - applicant\n", + "# in china, EU, EUextended\n", + "color_discrete_map= {'China': '#EF553B',\n", + " 'EU': '#636EFA',\n", + " 'Non-EU associate': '#00CC96',\n", + " 'EPO':'#9F2B68'}\n", + "\n", + "labeld_dict = dict({\n", + " record_col: 'Number of co-patents',\n", + " \"person_ctry_type\": \"Country type\",\n", + " \"psn_sector_primary\":\"Sector\",\n", + " \"han_label\": \"Name\",\n", + " \"Country_Type\":\"Country type\",\n", + " \"Eurovoc_Class\":\"Region\"\n", + " })\n", + "for trait in [\"person_ctry_type\",\"psn_sector_primary\"]:\n", + " for ctry in [\"China\",'EU']:\n", + " ctry_subset = appln_pers_f[appln_pers_f[\"person_ctry_type\"].str.contains(ctry)]\n", + " # for role in [\"invt\",\"applt\"]:\n", + " if True:\n", + " role = \"applt\"\n", + " pers_sub = ctry_subset[ctry_subset[role+\"_seq_nr\"]!=0]\n", + " data = (pers_sub\n", + " .groupby([\"han_id\",'han_name'],as_index=False)\n", + " .agg({'appln_id': 'nunique', 'person_ctry_ISO3': 'first',trait:\"first\"})\n", + " .sort_values(by=\"appln_id\", ascending=False)\n", + " .head(15))\n", + " data[\"han_label\"] = (data[\"han_name\"]\n", + " .str.upper()\n", + " .str.strip(\".\")\n", + " .str.replace(\"&\",\"
\")\n", + " + \" (\"+data[\"person_ctry_ISO3\"]+\")\")\n", + "\n", + " fig = px.bar(data, x=record_col, y=\"han_label\", color=trait,\n", + " color_discrete_map=color_discrete_map,text_auto=True,labels=labeld_dict)\n", + " fig.update_layout(font_family=\"Montserrat\",\n", + " yaxis={'categoryorder':'total ascending'})\n", + "\n", + " figsuper = fig\n", + " figsuper.update_layout(yaxis={'categoryorder':'total ascending'}, barmode='relative',yaxis2={'categoryorder':'total ascending'},yaxis3={'categoryorder':'total ascending'})\n", + " figsuper.update_yaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + " figsuper.update_xaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + " figsuper.update_layout({'template':\"plotly\",\"font_family\":\"Montserrat\"})\n", + "\n", + " figsuper['layout'][\"font\"][\"size\"]=12\n", + " for a in figsuper['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 14\n", + " figsuper[\"layout\"][\"yaxis\"][\"tickfont\"][\"size\"] = 12\n", + "\n", + " figsuper.update_layout(uniformtext_minsize=10)\n", + "\n", + " figsuper.show(config= dict(displayModeBar = False, responsive = True),height=800,width=1600,scale = 4)\n", + " figsuper.write_image(f\"{fromdir}/plots/top15_applt_{trait}_{ctry}.png\",height=900,width=1200,scale = 4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 127, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\radvanyi\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\pandas\\core\\internals\\blocks.py:329: RuntimeWarning:\n", + "\n", + "divide by zero encountered in log10\n", + "\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "coloraxis": "coloraxis", + "name": "0", + "texttemplate": "%{text}", + "x": [ + "Germany", + "Sweden", + "Finland", + "United Kingdom", + "France", + "Denmark", + "Switzerland", + "Italy", + "Poland", + "Netherlands", + "Belgium", + "Spain", + "Austria", + "Ireland", + "Slovakia", + "Czechia", + "Hungary", + "Greece" + ], + "y": [ + "HUAWEI TECH CO LTD", + "NOKIA SHANGHAI BELL CO LTD", + "NINGBO GEELY AUTOMOBILE R&D CO LTD", + "TCL COMM LTD", + "ZHEJIANG GEELY HOLDINGGROUP CO LTD", + "LENOVO BEIJING CO LTD", + "ALCATEL LUCENT SHANGHAI BELL CO LTD", + "NOKIA CHINA INVESTMENT CO LTD", + "CHINA TRIUMPH INT ENGINEERING CO LTD", + "NOKIA TECH BEIJING CO LTD", + "SCHOTT GLASS TECH SUZHOU CO LTD", + "SIEMENS LTD CHINA", + "DETROIT ELECT EV LTD", + "BEIJING XIAOMI MOBILE SOFTWARE CO LTD", + "CHANGZHOU GLOBE CO LTD", + "SICHUAN GOLDEN RIDGE INTELLIGENCE SCIENCE & TECH CO LTD", + "ZF DRIVETECH SUZHOU CO LTD", + "CRRC QINGDAO SIFANG CO LTD", + "GOODIX TECH HK CO LTD", + "SHENZHEN GOODIX TECH CO LTD" + ], + "z": [ + [ + 4.247727832909723, + 3.92272545799326, + 2.5314789170422554, + 2.8325089127062366, + 2.3010299956639813, + 1.6020599913279625, + 2.1760912590556813, + 2.462397997898956, + 1.3010299956639813, + 2.204119982655925, + 1.9030899869919435, + 1.9542425094393248, + 1.3010299956639813, + 2.0413926851582254, + 0.0, + 1.3010299956639813, + 0.0, + 1.3010299956639813 + ], + [ + 3.0453229787866576, + 0.0, + 3.525044807036845, + 2.792391689498254, + 2.838849090737255, + 2.9444826721501687, + 0.0, + 0.0, + 2.568201724066995, + 0.0, + 1.6989700043360187, + 1.0, + 0.0, + 1.6020599913279625, + 1.3010299956639813, + 0.0, + 1.3010299956639813, + 0.0 + ], + [ + 1.6989700043360187, + 3.423245873936808, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 3.0086001717619175, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.6989700043360187, + 2.9242792860618816, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.9084850188786495, + 0.0, + 0.0, + 1.845098040014257, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.845098040014257, + 0.0, + 1.0, + 2.079181246047625, + 2.5185139398778875, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 2.5185139398778875, + 1.4771212547196624, + 0.0, + 1.6989700043360187, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.462397997898956, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.6020599913279625, + 0.0, + 2.278753600952829, + 1.4771212547196624, + 0.0, + 1.0, + 0.0, + 0.0, + 1.3010299956639813, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.3979400086720375, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.278753600952829, + 0.0, + 0.0, + 1.3010299956639813, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 2.3222192947339195, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 1.9542425094393248, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.278753600952829, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 2.255272505103306, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.9542425094393248, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.9542425094393248, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.230448921378274, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.0, + 0.0, + 0.0, + 2.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.6989700043360187, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.0413926851582254, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.4771212547196624, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "type": "heatmap", + "xaxis": "x", + "yaxis": "y", + "hovertemplate": "Inventor (EU): %{x}
Applicant (CN): %{y}
color: %{z}", + "text": [ + [ + 1769, + 837, + 34, + 68, + 20, + 4, + 15, + 29, + 2, + 16, + 8, + 9, + 2, + 11, + 0, + 2, + 0, + 2 + ], + [ + 111, + 0, + 335, + 62, + 69, + 88, + 0, + 0, + 37, + 0, + 5, + 1, + 0, + 4, + 2, + 0, + 2, + 0 + ], + [ + 5, + 265, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 102, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 5, + 84, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 81, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 7, + 0, + 1, + 12, + 33, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 33, + 3, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 4, + 0, + 19, + 3, + 0, + 1, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 25, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 19, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 21, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 9, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0 + ], + [ + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 1, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "scaleanchor": "y", + "constrain": "domain", + "title": { + "text": "Inventor (EU)" + }, + "showgrid": false, + "tickangle": 45, + "ticks": "outside", + "tickfont": { + "size": 16 + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "autorange": "reversed", + "constrain": "domain", + "title": { + "text": "Applicant (CN)" + }, + "showgrid": false, + "ticks": "outside", + "tickfont": { + "size": 16 + } + }, + "coloraxis": { + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "colorbar": { + "thicknessmode": "pixels", + "thickness": 25, + "ticks": "outside", + "ticksuffix": " ", + "dtick": 20, + "outlinewidth": 1 + }, + "showscale": false + }, + "margin": { + "t": 60 + }, + "title": { + "x": 0.5 + }, + "font": { + "family": "Montserrat", + "size": 16 + }, + "width": 1000, + "height": 1000 + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "applt_sub = appln_pers_f[((appln_pers_f[\"applt_seq_nr\"]!=0)&\n", + " (appln_pers_f[\"psn_sector_primary\"]!=\"INDIVIDUAL\"))]\n", + "invt_sub = appln_pers_f[appln_pers_f[\"invt_seq_nr\"]!=0]\n", + "\n", + "eu_applt_subset = applt_sub[~applt_sub[\"person_ctry_type\"].str.contains(\"China\")]\n", + "ch_applt_subset = applt_sub[applt_sub[\"person_ctry_type\"].str.contains(\"China\")]\n", + "\n", + "eu_invt_subset = invt_sub[~invt_sub[\"person_ctry_type\"].str.contains(\"China\")]\n", + "ch_invt_subset = invt_sub[invt_sub[\"person_ctry_type\"].str.contains(\"China\")]\n", + "\n", + "#\n", + "# patstat_applt_dipol = eu_invt_subset.merge(ch_applt_subset, on=record_col, suffixes=('_eu', '_ch'))\n", + "# patstat_applt_dipol.sample(100)\n", + "\n", + "patstat_applt_dipol = eu_applt_subset.merge(ch_applt_subset, on=record_col, suffixes=('_eu', '_ch'))\n", + "patstat_applt_inv_dipol = eu_invt_subset.merge(ch_applt_subset, on=record_col, suffixes=('_eu', '_ch'))\n", + "\n", + "# co_occur = pd.crosstab(patstat_applt_dipol['han_name_eu'], patstat_applt_dipol['han_name_ch'],\n", + "# values=patstat_applt_dipol[record_col], aggfunc='nunique').fillna(0).astype(int)\n", + "co_occur = pd.crosstab(patstat_applt_inv_dipol['person_ctry_code_fullname_eu'], patstat_applt_inv_dipol['han_name_ch'],\n", + " values=patstat_applt_inv_dipol[record_col], aggfunc='nunique').fillna(0).astype(int)\n", + "\n", + "\n", + "co_occur = co_occur.T\n", + "co_occur[\"sum\"] = co_occur.sum(axis=1)\n", + "co_occur = co_occur[co_occur.sum(0).sort_values(ascending=False).index]\n", + "\n", + "co_occur = (co_occur\n", + " .sort_values(by=\"sum\", ascending=False)\n", + " .head(20)\n", + " .drop(columns=\"sum\")\n", + " .replace(0,np.nan)\n", + " .dropna(axis=1,how=\"all\")\n", + " .replace(np.nan,0)\n", + " .astype(int))\n", + "\n", + "fig = px.imshow(np.nan_to_num(np.log10(co_occur)+1,neginf=0),#co_occur,\n", + " labels=dict(x=\"Inventor (EU)\", y=\"Applicant (CN)\", z=co_occur.values.astype(str)),# color=\"Co-patent\"),\n", + " x=list(co_occur.columns),\n", + " text_auto=True,\n", + " y=list(co_occur.index))\n", + "\n", + "\n", + "fig.update_layout(title_x=0.5,\n", + " width=1000, height=1000,\n", + " xaxis_showgrid=False,\n", + " yaxis_showgrid=False,\n", + " yaxis_autorange='reversed',\n", + " font_family=\"Montserrat\",\n", + " template='plotly_white',\n", + " coloraxis_colorbar=dict(\n", + " thicknessmode=\"pixels\", thickness=25,\n", + " ticks=\"outside\", ticksuffix=\" \",\n", + " dtick=20,outlinewidth=1,\n", + " ))\n", + "\n", + "fig.update_traces(text=co_occur, texttemplate=\"%{text}\")\n", + "fig.update(layout_coloraxis_showscale=False)\n", + "fig.update_xaxes(tickangle= -45)\n", + "fig.update_yaxes(\n", + " ticks=\"outside\")\n", + "fig.update_xaxes(\n", + " ticks=\"outside\")\n", + "\n", + "figsuper_ppt = fig\n", + "figsuper_ppt['layout'][\"font\"][\"size\"]=16\n", + "for a in figsuper_ppt['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 16\n", + "\n", + "s=16\n", + "figsuper_ppt.update_yaxes(tickfont=dict(size=s))\n", + "figsuper_ppt.update_xaxes(tickfont=dict(size=s),tickangle=45)\n", + "\n", + "figsuper_ppt.show(config= dict(displayModeBar = False, responsive = True))\n", + "\n", + "figsuper_ppt.write_image(rf\"{fromdir}/plots/CN_applt_ctry.png\",height=900,width=1200,scale = 4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 128, + "outputs": [], + "source": [ + "patstat_applt_dipol_2 = (patstat_applt_dipol\n", + " .groupby([\"han_name_ch\",\"han_name_eu\"], as_index=False)\n", + " .agg({\"psn_sector_primary_ch\":\"first\",\n", + " \"psn_sector_primary_eu\":\"first\",\n", + " \"person_ctry_ISO3_eu\":\"first\",\n", + " record_col:\"nunique\"})\n", + " .sort_values(by=record_col, ascending=False)\n", + " .head(-1))\n", + "patstat_applt_dipol_2[\"applt_eu_label\"] = (patstat_applt_dipol_2[\"han_name_eu\"]\n", + " +\" (\"\n", + " +patstat_applt_dipol_2[\"person_ctry_ISO3_eu\"]\n", + " +\"; \"\n", + " +patstat_applt_dipol_2[\"psn_sector_primary_eu\"]\n", + " +\")\")\n", + "\n", + "patstat_applt_dipol_2[\"applt_ch_label\"] = (patstat_applt_dipol_2[\"han_name_ch\"]\n", + " +\" (\"\n", + " +patstat_applt_dipol_2[\"psn_sector_primary_ch\"]\n", + " +\")\")\n", + "\n", + "patstat_applt_dipol_2[[\"applt_ch_label\",\"applt_eu_label\",\"appln_id\"]].to_excel(rf\"{fromdir}/plots/applt_table.xlsx\", index=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 185, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\radvanyi\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\pandas\\core\\internals\\blocks.py:329: RuntimeWarning:\n", + "\n", + "divide by zero encountered in log10\n", + "\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "coloraxis": "coloraxis", + "name": "0", + "texttemplate": "%{text}", + "x": [ + "ALCATEL LUCENT", + "BAYER MATERIALSCIENCE AG", + "BEIERSDORF AG", + "CG RAIL CHINESISCH DEUTSCHES FORSCHUNGS & ENTWICKLUNGSZENTRUM FUR BAHN ", + "CNRS", + "COVESTRO DEUTSCHLAND AG", + "CTF SOLAR GMBH", + "FRAUNHOFER GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG EV", + "FRESENIUS MEDICAL CARE AG&CO KGAA", + "FRESENIUS MEDICAL CARE DEUTSCHLAND GMBH", + "FRIEDRICH ALEXANDER UNIVERSITAT ERLANGEN NURNBERG", + "HENKEL AG&CO KGAA", + "HENKEL IP & HOLDING GMBH", + "LEICA BIOSYSTEMS NUSSLOCH GMBH", + "NOKIA CORP", + "NOKIA TECH LTD", + "RHODIA OPERATIONS", + "ROBERT BOSCH GMBH", + "SIEMENS AG", + "VOLKSWAGEN AG" + ], + "y": [ + "ABLESTIK SHANGHAI LTD", + "ALCATEL LUCENT SHANGHAI BELL CO LTD", + "BAYER MATERIALSCIENCE CHINA CO LTD", + "BEIERSDORF DAILY CHEMICAL WUHAN CO LTD", + "CHINA TRIUMPH INT ENGINEERING CO LTD", + "CRRC QINGDAO SIFANG CO LTD", + "DALIAN INSTITUTE OF CHEMICAL PHYSICS CHINESE ACADEMY OF SCIENCES", + "FRESENIUS MEDICAL CARE R&D SHANGHAI CO LTD", + "HENKEL CHINA CO LTD", + "HENKEL CHINA INVESTMENT CO LTD", + "HUAWEI TECH CO LTD", + "LEICA MICROSYSTEMS LTD", + "NAVTEQ SHANGHAI TRADING CO LTD", + "NOKIA CHINA INVESTMENT CO LTD", + "NOKIA SHANGHAI BELL CO LTD", + "NOKIA TECH BEIJING CO LTD", + "RHODIA CHINA CO LTD", + "SIEMENS LTD CHINA", + "SOLVAY CHINA CO LTD", + "TSINGHUA UNIV" + ], + "z": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.414973347970818, + 1.6989700043360187, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 2.591064607026499, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.3010299956639813, + 1.6989700043360187, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 1.9030899869919435, + 0.0, + 0.0, + 0.0, + 1.4771212547196624, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 2.57978359661681, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.414973347970818, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 2.230448921378274, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 2.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.6989700043360187, + 2.5185139398778875, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.8512583487190755, + 1.845098040014257, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.255272505103306, + 1.3010299956639813, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.3979400086720375, + 0.0, + 0.0, + 1.9030899869919435, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.278753600952829, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.7160033436347994, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 3.110589710299249, + 2.7634279935629373, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 1.6020599913279625, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 3.902546779313991, + 3.8129133566428557, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.4771212547196624, + 3.1398790864012365, + 0.0, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.4771212547196624, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.3010299956639813, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 3.374748346010104, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.079181246047625, + 0.0, + 0.0, + 0.0 + ], + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.230448921378274, + 0.0, + 0.0 + ] + ], + "type": "heatmap", + "xaxis": "x", + "yaxis": "y", + "hovertemplate": "Applicant (EU): %{x}
Applicant (CN): %{y}
color: %{z}", + "text": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 26, + 5, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 39, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 5, + 0, + 0, + 0, + 0 + ], + [ + 0, + 8, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 10, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 5, + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 71, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 25, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 52, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 129, + 58, + 0, + 0, + 0, + 0 + ], + [ + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 799, + 650, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 138, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 20, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 237, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 0, + 0 + ] + ] + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "white", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "#C8D4E3", + "linecolor": "#C8D4E3", + "minorgridcolor": "#C8D4E3", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "white", + "showlakes": true, + "showland": true, + "subunitcolor": "#C8D4E3" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "polar": { + "angularaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + }, + "bgcolor": "white", + "radialaxis": { + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "yaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + }, + "zaxis": { + "backgroundcolor": "white", + "gridcolor": "#DFE8F3", + "gridwidth": 2, + "linecolor": "#EBF0F8", + "showbackground": true, + "ticks": "", + "zerolinecolor": "#EBF0F8" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "baxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + }, + "bgcolor": "white", + "caxis": { + "gridcolor": "#DFE8F3", + "linecolor": "#A2B1C6", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "#EBF0F8", + "linecolor": "#EBF0F8", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "#EBF0F8", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "scaleanchor": "y", + "constrain": "domain", + "title": { + "text": "Applicant (EU)" + }, + "showgrid": false, + "tickangle": 30, + "ticks": "outside", + "tickfont": { + "size": 12 + } + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "autorange": "reversed", + "constrain": "domain", + "title": { + "text": "Applicant (CN)" + }, + "showgrid": false, + "ticks": "outside", + "tickfont": { + "size": 12 + } + }, + "coloraxis": { + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "colorbar": { + "thicknessmode": "pixels", + "thickness": 25, + "ticks": "outside", + "ticksuffix": " ", + "dtick": 20, + "outlinewidth": 1 + }, + "showscale": false + }, + "margin": { + "t": 60 + }, + "title": { + "x": 0.5 + }, + "font": { + "family": "Montserrat", + "size": 16 + }, + "width": 1000, + "height": 1000 + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "co_occur = pd.crosstab(patstat_applt_dipol['han_name_eu'], patstat_applt_dipol['han_name_ch'],\n", + " values=patstat_applt_dipol[record_col], aggfunc='nunique').fillna(0).astype(int)\n", + "# co_occur = pd.crosstab(patstat_applt_inv_dipol['person_ctry_code_fullname_eu'], patstat_applt_inv_dipol['han_name_ch'],\n", + "# values=patstat_applt_inv_dipol[record_col], aggfunc='nunique').fillna(0).astype(int)\n", + "\n", + "\n", + "co_occur = co_occur.T\n", + "co_occur[\"SUM\"] = co_occur.sum(axis=1)\n", + "co_occur = co_occur[co_occur.sum(0).sort_values(ascending=False).index]\n", + "\n", + "co_occur = co_occur.drop(columns = co_occur.columns[~co_occur.columns.str.isupper()])\n", + "co_occur = co_occur.drop(index = co_occur.index[~co_occur.index.str.isupper()])\n", + "\n", + "co_occur.columns = co_occur.columns.str.split(\"&\").str[0:2].str.join(\"&\")\n", + "\n", + "top=20\n", + "co_occur = (co_occur\n", + " .sort_values(by=\"SUM\", ascending=False)\n", + " .head(20)\n", + " .drop(columns=\"SUM\")\n", + " .replace(0,np.nan)\n", + " .dropna(axis=1,how=\"all\")\n", + " .replace(np.nan,0)\n", + " .astype(int)\n", + " .iloc[0:top,0:top]).copy()\n", + "\n", + "co_occur = co_occur.sort_index(axis=1).sort_index(axis=0)\n", + "\n", + "\n", + "\n", + "\n", + "fig = px.imshow(np.nan_to_num(np.log10(co_occur)+1,neginf=0),#co_occur,\n", + " labels=dict(x=\"Applicant (EU)\", y=\"Applicant (CN)\", z=co_occur.values.astype(str)),# color=\"Co-patent\"),\n", + " x=list(co_occur.columns),\n", + " text_auto=True,\n", + " y=list(co_occur.index))\n", + "\n", + "\n", + "fig.update_layout(title_x=0.5,\n", + " width=1000, height=1000,\n", + " xaxis_showgrid=False,\n", + " yaxis_showgrid=False,\n", + " yaxis_autorange='reversed',\n", + " font_family=\"Montserrat\",\n", + " template='plotly_white',\n", + " coloraxis_colorbar=dict(\n", + " thicknessmode=\"pixels\", thickness=25,\n", + " ticks=\"outside\", ticksuffix=\" \",\n", + " dtick=20,outlinewidth=1,\n", + " ))\n", + "\n", + "fig.update_traces(text=co_occur, texttemplate=\"%{text}\")\n", + "fig.update(layout_coloraxis_showscale=False)\n", + "fig.update_xaxes(tickangle= -45)\n", + "fig.update_yaxes(\n", + " ticks=\"outside\")\n", + "fig.update_xaxes(\n", + " ticks=\"outside\")\n", + "\n", + "figsuper_ppt = fig\n", + "figsuper_ppt['layout'][\"font\"][\"size\"]=16\n", + "for a in figsuper_ppt['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 16\n", + "\n", + "s=12\n", + "figsuper_ppt.update_yaxes(tickfont=dict(size=s))\n", + "figsuper_ppt.update_xaxes(tickfont=dict(size=s),tickangle=30)\n", + "\n", + "figsuper_ppt.show(config= dict(displayModeBar = False, responsive = True))\n", + "figsuper_ppt.write_image(rf\"{fromdir}/plots/CN_EU_coapplt.png\",height=900,width=1200,scale = 4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 167, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Index([], dtype='object', name='han_name_eu')\n" + ] + } + ], + "source": [ + "print(co_occur.columns[~co_occur.columns.str.isupper()])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 162, + "outputs": [ + { + "data": { + "text/plain": "346" + }, + "execution_count": 162, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len((co_occur.columns.str.isupper()))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 129, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Country type=EU
Percent of related co-patents=%{x}
Inventor's country=%{y}", + "legendgroup": "EU", + "marker": { + "color": "#636EFA", + "pattern": { + "shape": "" + } + }, + "name": "EU", + "offsetgroup": "EU", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 0.006077303297949923, + 0.013856251519325824, + 8.103071063933231E-5, + 2.430921319179969E-4, + 0.001296491370229317, + 0.012721821570375172, + 0.058828295924155255, + 0.05907138805607325, + 0.28587634713556437, + 4.861842638359938E-4, + 0.001296491370229317, + 0.0028360748723766306, + 0.010858115225670529, + 2.430921319179969E-4, + 0.00105339923831132, + 0.008589255327769224, + 0.007859978932015234, + 5.672149744753262E-4, + 9.723685276719876E-4, + 6.482456851146585E-4, + 4.0515355319666155E-4, + 0.00810307106393323, + 0.12656997001863707 + ], + "xaxis": "x", + "y": [ + "Austria", + "Belgium", + "Bulgaria", + "Croatia", + "Czechia", + "Denmark", + "Finland", + "France", + "Germany", + "Greece", + "Hungary", + "Ireland", + "Italy", + "Lithuania", + "Luxembourg", + "Netherlands", + "Poland", + "Portugal", + "Romania", + "Slovakia", + "Slovenia", + "Spain", + "Sweden" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Country type=China
Percent of related co-patents=%{x}
Inventor's country=%{y}", + "legendgroup": "China", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "China", + "offsetgroup": "China", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 0.7120978850984523 + ], + "xaxis": "x", + "y": [ + "China" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Country type=Non-EU associate
Percent of related co-patents=%{x}
Inventor's country=%{y}", + "legendgroup": "Non-EU associate", + "marker": { + "color": "#00CC96", + "pattern": { + "shape": "" + } + }, + "name": "Non-EU associate", + "offsetgroup": "Non-EU associate", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 8.103071063933231E-4, + 0.019123247710882425, + 0.04853739567296005 + ], + "xaxis": "x", + "y": [ + "Norway", + "Switzerland", + "United Kingdom" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Percent of related co-patents" + }, + "tickformat": ".1%", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Inventor's country" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 14 + } + }, + "legend": { + "title": { + "text": "Country type" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 14 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Country type=EU
Percent of related co-patents=%{x}
Applicant's country=%{y}", + "legendgroup": "EU", + "marker": { + "color": "#636EFA", + "pattern": { + "shape": "" + } + }, + "name": "EU", + "offsetgroup": "EU", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 0.007624825776830368, + 0.007788800524719193, + 1.6397474788882511E-4, + 8.198737394441256E-5, + 8.198737394441256E-5, + 7.378863654997131E-4, + 0.0048372550627203414, + 0.16159711404443716, + 0.09887677297696154, + 0.3256538493072067, + 1.6397474788882511E-4, + 2.459621218332377E-4, + 0.003935393949331803, + 0.006231040419775354, + 1.6397474788882511E-4, + 0.0012298106091661884, + 0.015331638927605149, + 0.0025416085922767896, + 3.2794949577765023E-4, + 4.919242436664754E-4, + 8.198737394441256E-5, + 3.2794949577765023E-4, + 0.004263343445109453, + 0.16176108879232598 + ], + "xaxis": "x", + "y": [ + "Austria", + "Belgium", + "Bulgaria", + "Croatia", + "Cyprus", + "Czechia", + "Denmark", + "Finland", + "France", + "Germany", + "Greece", + "Hungary", + "Ireland", + "Italy", + "Lithuania", + "Luxembourg", + "Netherlands", + "Poland", + "Portugal", + "Romania", + "Slovakia", + "Slovenia", + "Spain", + "Sweden" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Country type=China
Percent of related co-patents=%{x}
Applicant's country=%{y}", + "legendgroup": "China", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "China", + "offsetgroup": "China", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 0.8267606788554562 + ], + "xaxis": "x", + "y": [ + "China" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Country type=Non-EU associate
Percent of related co-patents=%{x}
Applicant's country=%{y}", + "legendgroup": "Non-EU associate", + "marker": { + "color": "#00CC96", + "pattern": { + "shape": "" + } + }, + "name": "Non-EU associate", + "offsetgroup": "Non-EU associate", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 5.73911617610888E-4, + 0.06772157087808478, + 0.036320406657374765 + ], + "xaxis": "x", + "y": [ + "Norway", + "Switzerland", + "United Kingdom" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Percent of related co-patents" + }, + "tickformat": ".1%", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Applicant's country" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 14 + } + }, + "legend": { + "title": { + "text": "Country type" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 14 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "alignmentgroup": "True", + "hovertemplate": "Authority type=EU
Percent of related co-patents=%{x}
Application authority=%{y}", + "legendgroup": "EU", + "marker": { + "color": "#636EFA", + "pattern": { + "shape": "" + } + }, + "name": "EU", + "offsetgroup": "EU", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 5.638340716874748E-4, + 4.832863471606927E-4, + 4.832863471606927E-4, + 7.249295207410391E-4, + 0.0016109544905356424, + 0.02053966975432944, + 0.055739025372533224, + 8.054772452678212E-5, + 1.6109544905356423E-4, + 0.0016109544905356424, + 7.249295207410391E-4, + 0.003946838501812324, + 7.249295207410391E-4, + 1.6109544905356423E-4, + 3.2219089810712846E-4, + 0.002738622633910592, + 9.665726943213854E-4 + ], + "xaxis": "x", + "y": [ + "Austria", + "Belgium", + "Czechia", + "Denmark", + "Finland", + "France", + "Germany", + "Ireland", + "Lithuania", + "Luxembourg", + "Morocco", + "Netherlands", + "Poland", + "Portugal", + "Romania", + "Spain", + "Sweden" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Authority type=China
Percent of related co-patents=%{x}
Application authority=%{y}", + "legendgroup": "China", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "China", + "offsetgroup": "China", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 8.054772452678212E-5 + ], + "xaxis": "x", + "y": [ + "China" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Authority type=Patent Office
Percent of related co-patents=%{x}
Application authority=%{y}", + "legendgroup": "Patent Office", + "marker": { + "color": "#7F00FF", + "pattern": { + "shape": "" + } + }, + "name": "Patent Office", + "offsetgroup": "Patent Office", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 0.08658880386629078, + 0.7877567458719291 + ], + "xaxis": "x", + "y": [ + "EPO", + "WIPO" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Authority type=Non-EU associate
Percent of related co-patents=%{x}
Application authority=%{y}", + "legendgroup": "Non-EU associate", + "marker": { + "color": "#00CC96", + "pattern": { + "shape": "" + } + }, + "name": "Non-EU associate", + "offsetgroup": "Non-EU associate", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 8.860249697946033E-4, + 0.03310511478050745 + ], + "xaxis": "x", + "y": [ + "Switzerland", + "United Kingdom" + ], + "yaxis": "y", + "type": "bar" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Percent of related co-patents" + }, + "tickformat": ".1%", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "domain": [ + 0.0, + 1.0 + ], + "title": { + "text": "Application authority" + }, + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickfont": { + "size": 14 + } + }, + "legend": { + "title": { + "text": "Authority type" + }, + "tracegroupgap": 0 + }, + "margin": { + "t": 60 + }, + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 14 + }, + "yaxis2": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "yaxis3": { + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" + }, + "uniformtext": { + "minsize": 10 + } + }, + "config": { + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# percent of publications related to\n", + "# -authority country\n", + "# -inventor country\n", + "# -applicant country\n", + "\n", + "color_discrete_map= {'China': '#EF553B',\n", + " 'EU': '#636EFA',\n", + " 'Non-EU associate': '#00CC96',\n", + " 'Patent Office':'#7F00FF'}#CC8899\n", + "\n", + "\n", + "labeld_dict = dict({\n", + " record_col+\"_percent\": 'Percent of related co-patents',\n", + " \"person_ctry_code_fullname\": \"Country\",\n", + " \"person_ctry_type\": \"Country type\",\n", + " \"appln_auth_fullname\": \"Application authority\",\n", + " \"auth_ctry_type\": \"Authority type\",\n", + " \"Country_Type\":\"Country type\",\n", + " \"Eurovoc_Class\":\"Region\"\n", + " })\n", + "\n", + "for c in [\"person_ctry_code\",\"appln_auth\"]:\n", + " pers_sub = appln_pers_f\n", + " if c == \"person_ctry_code\":\n", + " for role in [\"invt\",\"applt\"]:\n", + " pers_sub = appln_pers_f[appln_pers_f[role+\"_seq_nr\"]!=0]\n", + " role_name = {\"invt\":\"Inventor's\", \"applt\":\"Applicant's\"}.get(role)\n", + " labeld_dict[\"person_ctry_code_fullname\"] = role_name+\" country\"\n", + "\n", + "\n", + " data = (pers_sub.groupby(c+\"_fullname\",as_index=False).agg({'appln_id': 'nunique', 'person_ctry_ISO3': 'first',\"person_ctry_type\":\"first\"}))\n", + " data[record_col+\"_percent\"] = data[record_col]/pers_sub[record_col].nunique()\n", + " fig = px.bar(data, x=record_col+\"_percent\", y=c+\"_fullname\",color_discrete_map=color_discrete_map,text_auto=True,color=\"person_ctry_type\",\n", + " labels = labeld_dict)\n", + " fig.update_layout(xaxis_tickformat='.1%',font_family=\"Montserrat\",\n", + " yaxis={'categoryorder':'total ascending'},)\n", + " figsuper = fig\n", + " figsuper.update_layout(yaxis={'categoryorder':'total ascending'}, barmode='relative',yaxis2={'categoryorder':'total ascending'},yaxis3={'categoryorder':'total ascending'})\n", + " figsuper.update_yaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + " figsuper.update_xaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + " figsuper.update_layout({'template':\"plotly\",\"font_family\":\"Montserrat\"})\n", + "\n", + " figsuper['layout'][\"font\"][\"size\"]=14\n", + " for a in figsuper['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 14\n", + " figsuper[\"layout\"][\"yaxis\"][\"tickfont\"][\"size\"] = 14\n", + "\n", + " figsuper.update_layout(uniformtext_minsize=10)\n", + " figsuper.write_image(rf\"{fromdir}/plots/{role}_loc_ctry.png\",height=900,width=1200,scale = 4)\n", + " figsuper.show()\n", + " else:\n", + " data = pers_sub.groupby(c+\"_fullname\",as_index=False).agg({'appln_id': 'nunique', 'auth_ISO3': 'first',\"auth_ctry_type\":\"first\"})\n", + " data[record_col+\"_percent\"] = data[record_col]/pers_sub[record_col].nunique()\n", + " fig = px.bar(data, x=record_col+\"_percent\", y=c+\"_fullname\",color_discrete_map=color_discrete_map,text_auto=True,color=\"auth_ctry_type\",\n", + " labels = labeld_dict)\n", + " fig.update_layout(xaxis_tickformat='.1%',font_family=\"Montserrat\",\n", + " yaxis={'categoryorder':'total ascending'},)\n", + " figsuper = fig\n", + " figsuper.update_layout(yaxis={'categoryorder':'total ascending'}, barmode='relative',yaxis2={'categoryorder':'total ascending'},yaxis3={'categoryorder':'total ascending'})\n", + " figsuper.update_yaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + " figsuper.update_xaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + " figsuper.update_layout({'template':\"plotly\",\"font_family\":\"Montserrat\"})\n", + "\n", + " figsuper['layout'][\"font\"][\"size\"]=14\n", + " for a in figsuper['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 14\n", + " figsuper[\"layout\"][\"yaxis\"][\"tickfont\"][\"size\"] = 14\n", + "\n", + " figsuper.update_layout(uniformtext_minsize=10)\n", + " figsuper.write_image(rf\"{fromdir}/plots/auth_loc_ctry.png\",height=900,width=1200,scale = 4)\n", + " figsuper.show()" ], "metadata": { "collapsed": false diff --git a/PATSTAT/patstat_analysis_pipeline.ipynb b/PATSTAT/patstat_analysis_pipeline_deprecated.ipynb similarity index 87% rename from PATSTAT/patstat_analysis_pipeline.ipynb rename to PATSTAT/patstat_analysis_pipeline_deprecated.ipynb index b5508af..06681cb 100644 --- a/PATSTAT/patstat_analysis_pipeline.ipynb +++ b/PATSTAT/patstat_analysis_pipeline_deprecated.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 33, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -19,7 +19,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 1, "outputs": [ { "data": { @@ -60,12 +60,16 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 18, "outputs": [], "source": [ - "outdir=\"EU_CH_scope\"\n", - "\n", - "appln = pd.read_csv(f\"{outdir}/tls_201_scope.csv\")" + "tls_801 = pd.read_csv(r\"./EU_CH_scope/table_tls801.csv\", low_memory=False)\n", + "# tls_801.head()\n", + "scope_df = tls_801[((tls_801.eu_member==\"Y\")|\n", + " (tls_801.ctry_code == 'NO')|\n", + " (tls_801.ctry_code == 'CH')|\n", + " (tls_801.ctry_code == 'GB'))]\n", + "scope_countries = scope_df[\"ctry_code\"].unique()" ], "metadata": { "collapsed": false @@ -73,19 +77,10 @@ }, { "cell_type": "code", - "execution_count": 36, - "outputs": [ - { - "data": { - "text/plain": "65136" - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "outputs": [], "source": [ - "len(appln)" + "outdir=\"raw_files_csv\"" ], "metadata": { "collapsed": false @@ -93,19 +88,31 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 9, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\radvanyi\\AppData\\Local\\Temp\\ipykernel_14780\\163466245.py:1: DtypeWarning:\n", + "\n", + "Columns (2,6,8) have mixed types. Specify dtype option on import or set low_memory=False.\n", + "\n" + ] + }, { "data": { - "text/plain": "24638" + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n5420565 492443204 CN 201710924209 A 2017-09-30 \\\n4123443 476745655 CN 201510575292 A 2015-09-11 \n12669428 584371570 CN 202211359033 A 2022-11-02 \n2837134 447940178 CN 201510724424 A 2015-10-29 \n3917352 474354000 CN 201610699880 A 2016-08-19 \n7083405 510565742 CN 201910024682 A 2019-01-10 \n10061891 549184042 CN 202011496905 A 2020-12-17 \n12187346 578289051 CN 202210716624 A 2022-06-23 \n8750003 533546770 CN 202010149696 A 2020-03-06 \n2150113 439343652 CN 201410639681 A 2014-11-14 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n5420565 2017 201710924209 PI NaN \\\n4123443 2015 201510575292 PI NaN \n12669428 2022 202211359033 PI NaN \n2837134 2015 2015107244247 PI NaN \n3917352 2016 201610699880 PI NaN \n7083405 2019 201910024682 PI NaN \n10061891 2020 202011496905 PI NaN \n12187346 2022 202210716624 PI NaN \n8750003 2020 202010149696 PI NaN \n2150113 2014 2014106396816 PI NaN \n\n internat_appln_id ... earliest_pat_publn_id granted \n5420565 0 ... 492443205 Y \\\n4123443 0 ... 476745656 N \n12669428 0 ... 584371571 N \n2837134 0 ... 447940179 N \n3917352 0 ... 474354001 N \n7083405 0 ... 510565743 Y \n10061891 0 ... 549184043 Y \n12187346 0 ... 578289052 N \n8750003 0 ... 533546771 Y \n2150113 0 ... 439343653 N \n\n docdb_family_id inpadoc_family_id docdb_family_size \n5420565 61698252 492443204 1 \\\n4123443 58346251 476745655 1 \n12669428 84336840 584371570 1 \n2837134 54942635 447940178 1 \n3917352 57825252 474354000 1 \n7083405 65916569 510565742 1 \n10061891 75448776 549184042 1 \n12187346 82910930 578289051 1 \n8750003 71152278 533546770 1 \n2150113 52882593 439343652 1 \n\n nb_citing_docdb_fam nb_applicants nb_inventors is_prior is_pct \n5420565 1 1 5 1 0 \n4123443 1 4 6 1 0 \n12669428 0 0 0 1 0 \n2837134 0 1 4 1 0 \n3917352 7 1 1 1 0 \n7083405 6 1 9 1 0 \n10061891 1 1 3 1 0 \n12187346 0 1 1 1 0 \n8750003 0 1 1 1 0 \n2150113 0 1 1 1 0 \n\n[10 rows x 28 columns]", + "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventorsis_prioris_pct
5420565492443204CN201710924209A2017-09-302017201710924209PINaN0...492443205Y61698252492443204111510
4123443476745655CN201510575292A2015-09-112015201510575292PINaN0...476745656N58346251476745655114610
12669428584371570CN202211359033A2022-11-022022202211359033PINaN0...584371571N84336840584371570100010
2837134447940178CN201510724424A2015-10-2920152015107244247PINaN0...447940179N54942635447940178101410
3917352474354000CN201610699880A2016-08-192016201610699880PINaN0...474354001N57825252474354000171110
7083405510565742CN201910024682A2019-01-102019201910024682PINaN0...510565743Y65916569510565742161910
10061891549184042CN202011496905A2020-12-172020202011496905PINaN0...549184043Y75448776549184042111310
12187346578289051CN202210716624A2022-06-232022202210716624PINaN0...578289052N82910930578289051101110
8750003533546770CN202010149696A2020-03-062020202010149696PINaN0...533546771Y71152278533546770101110
2150113439343652CN201410639681A2014-11-1420142014106396816PINaN0...439343653N52882593439343652101110
\n

10 rows × 28 columns

\n
" }, - "execution_count": 37, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "len(appln[appln[\"appln_nr\"]==appln[\"appln_nr_original\"]])" + "appln = pd.read_csv(f\"{outdir}/01_patent_subset.csv\", low_memory=False)\n", + "appln.sample(10)" ], "metadata": { "collapsed": false @@ -113,20 +120,39 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 11, "outputs": [ { "data": { - "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n8712 413791676 KR 20127034385 A 2011-06-03 \\\n15588 439148012 EP 15714777 A 2015-03-26 \n48628 536723783 RU 2019104609 A 2017-07-18 \n4458 380638095 US 201113218876 A 2011-08-26 \n43221 522842130 US 201829659634 F 2018-08-10 \n3836 378587773 WO 2011074635 W 2011-05-25 \n9237 414823192 EP 12882000 A 2012-08-03 \n6777 409424323 US 201113638187 A 2011-03-22 \n18826 446137103 WO 2015057861 W 2015-10-14 \n52265 545763074 BR 112020021641 A 2018-04-23 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n8712 2011 1020127034385 PI \\\n15588 2015 15714777 PI \n48628 2017 2019104609 PI \n4458 2011 13218876 PI \n43221 2018 NaN DP \n3836 2011 CN2011/074635 PI CN \n9237 2012 12882000 PI \n6777 2011 13638187 PI \n18826 2015 IB2015/057861 PI IB \n52265 2018 112020021641 PI \n\n internat_appln_id ... earliest_publn_date earliest_publn_year \n8712 339637678 ... 2013-11-04 2013 \\\n15588 438355565 ... 2017-02-15 2017 \n48628 488987246 ... 2020-08-20 2020 \n4458 0 ... 2013-01-31 2013 \n43221 0 ... 2019-12-03 2019 \n3836 0 ... 2012-11-29 2012 \n9237 414790439 ... 2015-06-10 2015 \n6777 333698631 ... 2013-08-08 2013 \n18826 0 ... 2016-04-21 2016 \n52265 521276805 ... 2021-01-26 2021 \n\n earliest_pat_publn_id granted docdb_family_id inpadoc_family_id \n8712 413791677 Y 45067306 339616929 \\\n15588 473888077 Y 52814965 438355565 \n48628 536723784 Y 60991950 488987246 \n4458 380922724 N 47598050 380638095 \n43221 522842131 Y 68653880 522842130 \n3836 378816884 N 47216526 378587773 \n9237 439934604 N 50027133 414790439 \n6777 409424324 Y 43020401 319321099 \n18826 451530410 N 52014243 446137103 \n52265 545763075 N 68293428 521276805 \n\n docdb_family_size nb_citing_docdb_fam nb_applicants nb_inventors \n8712 6 10 1 7 \n15588 5 1 1 2 \n48628 39 3 1 19 \n4458 2 3 8 7 \n43221 2 0 1 1 \n3836 3 4 3 2 \n9237 2 0 1 2 \n6777 6 4 6 5 \n18826 9 3 2 1 \n52265 6 0 3 5 \n\n[10 rows x 26 columns]", - "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_publn_dateearliest_publn_yearearliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventors
8712413791676KR20127034385A2011-06-0320111020127034385PI339637678...2013-11-042013413791677Y4506730633961692961017
15588439148012EP15714777A2015-03-26201515714777PI438355565...2017-02-152017473888077Y528149654383555655112
48628536723783RU2019104609A2017-07-1820172019104609PI488987246...2020-08-202020536723784Y60991950488987246393119
4458380638095US201113218876A2011-08-26201113218876PI0...2013-01-312013380922724N475980503806380952387
43221522842130US201829659634F2018-08-102018NaNDP0...2019-12-032019522842131Y686538805228421302011
3836378587773WO2011074635W2011-05-252011CN2011/074635PICN0...2012-11-292012378816884N472165263785877733432
9237414823192EP12882000A2012-08-03201212882000PI414790439...2015-06-102015439934604N500271334147904392012
6777409424323US201113638187A2011-03-22201113638187PI333698631...2013-08-082013409424324Y430204013193210996465
18826446137103WO2015057861W2015-10-142015IB2015/057861PIIB0...2016-04-212016451530410N520142434461371039321
52265545763074BR112020021641A2018-04-232018112020021641PI521276805...2021-01-262021545763075N682934285212768056035
\n

10 rows × 26 columns

\n
" + "text/plain": "appln_kind\nA 13029613\nW 154696\nName: count, dtype: int64" }, - "execution_count": 38, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "appln.sample(10)" + "appln[\"appln_kind\"].value_counts()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 12, + "outputs": [], + "source": [ + "appln_pers = pd.read_csv(f\"{outdir}/02_persons_2011_2022.csv\",low_memory=False)" ], "metadata": { "collapsed": false @@ -134,20 +160,19 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 15, "outputs": [ { "data": { - "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n56447 556331792 PE 2021000402 A 2019-09-26 \\\n41201 518451341 TW 107131654 A 2018-09-10 \n54094 550225934 TW 109119471 A 2017-07-06 \n9133 414556231 EP 12881920 A 2012-07-27 \n43037 522510076 EP 19306441 A 2019-11-07 \n... ... ... ... ... ... \n60095 569415925 TW 110116177 A 2021-05-05 \n61281 573442692 DE 102021213653 A 2021-12-02 \n41189 518448790 TW 108109981 A 2014-03-07 \n64973 587185640 CR 20220470 A 2021-03-18 \n8491 413374202 EP 13197783 A 2011-04-28 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n56447 2019 2021000402 PI \\\n41201 2018 107131654 PI \n54094 2017 109119471 PI \n9133 2012 12881920 PI \n43037 2019 19306441 PI \n... ... ... ... ... \n60095 2021 110116177 PI \n61281 2021 102021213653 PI \n41189 2014 108109981 PI \n64973 2021 20220470 PI \n8491 2011 13197783 PI \n\n internat_appln_id ... earliest_publn_date earliest_publn_year \n56447 520193774 ... 2021-07-19 2021 \\\n41201 0 ... 2019-06-16 2019 \n54094 0 ... 2021-02-01 2021 \n9133 414544093 ... 2015-06-03 2015 \n43037 0 ... 2021-05-12 2021 \n... ... ... ... ... \n60095 0 ... 2021-12-16 2021 \n61281 0 ... 2022-06-15 2022 \n41189 0 ... 2019-06-16 2019 \n64973 549449130 ... 2022-11-14 2022 \n8491 376727956 ... 2014-08-20 2014 \n\n earliest_pat_publn_id granted docdb_family_id inpadoc_family_id \n56447 556331793 N 68542579 520193774 \\\n41201 518451342 N 66100215 511344799 \n54094 550225935 N 59337896 481645536 \n9133 439682012 Y 49996511 414544093 \n43037 548841071 N 68655464 522510076 \n... ... ... ... ... \n60095 568265190 N 74845079 546468249 \n61281 573442693 N 81749879 573442692 \n41189 518448791 Y 51500341 421859342 \n64973 587185641 N 75660301 549449130 \n8491 420445397 N 45896256 352844875 \n\n docdb_family_size nb_citing_docdb_fam nb_applicants nb_inventors \n56447 10 0 1 3 \n41201 2 0 1 2 \n54094 8 3 1 7 \n9133 4 5 1 3 \n43037 3 0 1 2 \n... ... ... ... ... \n60095 4 0 1 8 \n61281 2 0 1 1 \n41189 22 290 1 3 \n64973 14 4 1 25 \n8491 10 0 1 6 \n\n[100 rows x 26 columns]", - "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_publn_dateearliest_publn_yearearliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventors
56447556331792PE2021000402A2019-09-2620192021000402PI520193774...2021-07-192021556331793N6854257952019377410013
41201518451341TW107131654A2018-09-102018107131654PI0...2019-06-162019518451342N661002155113447992012
54094550225934TW109119471A2017-07-062017109119471PI0...2021-02-012021550225935N593378964816455368317
9133414556231EP12881920A2012-07-27201212881920PI414544093...2015-06-032015439682012Y499965114145440934513
43037522510076EP19306441A2019-11-07201919306441PI0...2021-05-122021548841071N686554645225100763012
..................................................................
60095569415925TW110116177A2021-05-052021110116177PI0...2021-12-162021568265190N748450795464682494018
61281573442692DE102021213653A2021-12-022021102021213653PI0...2022-06-152022573442693N817498795734426922011
41189518448790TW108109981A2014-03-072014108109981PI0...2019-06-162019518448791Y515003414218593422229013
64973587185640CR20220470A2021-03-18202120220470PI549449130...2022-11-142022587185641N75660301549449130144125
8491413374202EP13197783A2011-04-28201113197783PI376727956...2014-08-202014420445397N4589625635284487510016
\n

100 rows × 26 columns

\n
" + "text/plain": "(54368949, 13184309)" }, - "execution_count": 39, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "appln[appln[\"appln_nr\"]==appln[\"appln_nr_original\"]].sample(100)" + "len(appln_pers[\"appln_id\"]), len(appln[\"appln_id\"])" ], "metadata": { "collapsed": false @@ -155,41 +180,28 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "outputs": [], - "source": [ - "\n", - "appln_title = pd.read_csv(f\"{outdir}/tls_202_scope.csv\")\n", - "\n", - "pers = pd.read_csv(f\"{outdir}/tls_206_scope.csv\")\n", - "pers['psn_sector'] = pers['psn_sector'].fillna(\"UNKNOWN\")\n", - "\n", - "appln_pers = pd.read_csv(f\"{outdir}/tls_207_scope.csv\")\n", - "\n", - "appln_cpc = pd.read_csv(f\"{outdir}/tls_224_scope.csv\")\n", - "\n", - "cpc_def = pd.read_csv(\"CPC_data/cpc_defs.csv\", low_memory=False)" - ], + "source": [], "metadata": { "collapsed": false } }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 16, "outputs": [ { "data": { - "text/plain": " person_id person_name person_name_orig_lg \n99304 72271503 SHE, HUIMIN SHE, HUIMIN \\\n4389 6211563 Zhou, Jian Zhou, Jian \n59373 52078604 KIRCHNER, NICOLE KIRCHNER, NICOLE \n19688 16957554 BLAWERT, CARSTEN BLAWERT, CARSTEN \n25828 25701586 KNIESEL, SIMON KNIESEL, SIMON \n73679 55544020 WHITING, Tien Yi Theresa Hsu WHITING, Tien Yi Theresa Hsu \n39905 45320991 Zhang, Michael Zhang, Michael \n65003 53390230 DONG, Hailong DONG, Hailong \n113369 79456511 LING, Jing LING, Jing \n58383 51832619 WEN JU ZHANG WEN JU ZHANG \n\n person_address person_ctry_code \n99304 Shanghai CN \\\n4389 Beijing CN \n59373 SACHSENSTRAßE 2845665 RECKLINGHAUSEN DE DE \n19688 NaN DE \n25828 NaN DE \n73679 NaN US \n39905 Beijing CN \n65003 Molenstraat 148,5701 KK Helmond NL \n113369 No. 6 North Of Binjiang Road, Taixing Economic... CN \n58383 CN CN \n\n nuts nuts_level doc_std_name_id doc_std_name \n99304 NaN 9 32084338 SHE HUIMIN \\\n4389 NaN 9 33759 ZHOU JIAN \n59373 DE 0 2139104 KIRCHNER NICOLE \n19688 DE 0 311260 BLAWERT CARSTEN \n25828 DE 0 255684 KNIESEL SIMON \n73679 NaN 9 21758228 WHITING TIEN YI THERESA HSU \n39905 NaN 9 725806 ZHANG MICHAEL \n65003 NL414 3 7196768 DONG HAILONG \n113369 NaN 9 429470 LING JING \n58383 NaN 9 23069059 ZHANG WEN JU \n\n psn_id psn_name psn_level psn_sector \n99304 29505777 SHE, HUIMIN 0 UNKNOWN \\\n4389 37354342 ZHOU JIAN 1 INDIVIDUAL \n59373 17194552 KIRCHNER, NICOLE 0 UNKNOWN \n19688 2923498 BLAWERT, CARSTEN 1 INDIVIDUAL \n25828 17406789 KNIESEL, SIMON 1 INDIVIDUAL \n73679 35065052 WHITING, TIEN YI THERESA HSU 0 UNKNOWN \n39905 37097378 ZHANG, MICHAEL 1 INDIVIDUAL \n65003 7077131 DONG, HAILONG 0 UNKNOWN \n113369 19626776 LING, JING 0 UNKNOWN \n58383 34908417 WEN JU ZHANG 0 UNKNOWN \n\n han_id han_name han_harmonized \n99304 172271503 SHE, HUIMIN 0 \n4389 106211563 Zhou, Jian 0 \n59373 152078604 KIRCHNER, NICOLE 0 \n19688 116957554 BLAWERT, CARSTEN 0 \n25828 125701586 KNIESEL, SIMON 0 \n73679 155544020 WHITING, Tien Yi Theresa Hsu 0 \n39905 145320991 Zhang, Michael 0 \n65003 153390230 DONG, Hailong 0 \n113369 179456511 LING, Jing 0 \n58383 151832619 WEN JU ZHANG 0 ", - "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
person_idperson_nameperson_name_orig_lgperson_addressperson_ctry_codenutsnuts_leveldoc_std_name_iddoc_std_namepsn_idpsn_namepsn_levelpsn_sectorhan_idhan_namehan_harmonized
9930472271503SHE, HUIMINSHE, HUIMINShanghaiCNNaN932084338SHE HUIMIN29505777SHE, HUIMIN0UNKNOWN172271503SHE, HUIMIN0
43896211563Zhou, JianZhou, JianBeijingCNNaN933759ZHOU JIAN37354342ZHOU JIAN1INDIVIDUAL106211563Zhou, Jian0
5937352078604KIRCHNER, NICOLEKIRCHNER, NICOLESACHSENSTRAßE 2845665 RECKLINGHAUSEN DEDEDE02139104KIRCHNER NICOLE17194552KIRCHNER, NICOLE0UNKNOWN152078604KIRCHNER, NICOLE0
1968816957554BLAWERT, CARSTENBLAWERT, CARSTENNaNDEDE0311260BLAWERT CARSTEN2923498BLAWERT, CARSTEN1INDIVIDUAL116957554BLAWERT, CARSTEN0
2582825701586KNIESEL, SIMONKNIESEL, SIMONNaNDEDE0255684KNIESEL SIMON17406789KNIESEL, SIMON1INDIVIDUAL125701586KNIESEL, SIMON0
7367955544020WHITING, Tien Yi Theresa HsuWHITING, Tien Yi Theresa HsuNaNUSNaN921758228WHITING TIEN YI THERESA HSU35065052WHITING, TIEN YI THERESA HSU0UNKNOWN155544020WHITING, Tien Yi Theresa Hsu0
3990545320991Zhang, MichaelZhang, MichaelBeijingCNNaN9725806ZHANG MICHAEL37097378ZHANG, MICHAEL1INDIVIDUAL145320991Zhang, Michael0
6500353390230DONG, HailongDONG, HailongMolenstraat 148,5701 KK HelmondNLNL41437196768DONG HAILONG7077131DONG, HAILONG0UNKNOWN153390230DONG, Hailong0
11336979456511LING, JingLING, JingNo. 6 North Of Binjiang Road, Taixing Economic...CNNaN9429470LING JING19626776LING, JING0UNKNOWN179456511LING, Jing0
5838351832619WEN JU ZHANGWEN JU ZHANGCNCNNaN923069059ZHANG WEN JU34908417WEN JU ZHANG0UNKNOWN151832619WEN JU ZHANG0
\n
" + "text/plain": "(54368949, 12646904)" }, - "execution_count": 41, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "pers.sample(10)" + "appln_pers[\"appln_id\"].isin(appln[\"appln_id\"]).sum(), appln[\"appln_id\"].isin(appln_pers[\"appln_id\"]).sum()" ], "metadata": { "collapsed": false @@ -197,20 +209,29 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 17, "outputs": [ { "data": { - "text/plain": " cpc_id cpc_name \n0 A HUMAN NECESSITIES \\\n1 A01 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n2 A01B SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n3 A01B1/00 Hand tools (edge trimmers for lawns A01G3/06 ... \n4 A01B1/02 Spades; Shovels {(hand-operated dredgers E02F3... \n... ... ... \n260486 Y10T483/1873 Indexing matrix \n260487 Y10T483/1882 Rotary disc \n260488 Y10T483/1891 Chain or belt \n260489 Y10T483/19 Miscellaneous \n260490 NaN NaN \n\n section class subclass group main_group cpc_version \n0 A NaN NaN NaN NaN 2023 \\\n1 A 1.0 NaN NaN NaN 2023 \n2 A 1.0 B NaN NaN 2023 \n3 A 1.0 B 1.0 0.0 2023 \n4 A 1.0 B 1.0 2.0 2023 \n... ... ... ... ... ... ... \n260486 Y 10.0 T 483.0 1873.0 2023 \n260487 Y 10.0 T 483.0 1882.0 2023 \n260488 Y 10.0 T 483.0 1891.0 2023 \n260489 Y 10.0 T 483.0 19.0 2023 \n260490 NaN NaN NaN NaN NaN 2022 \n\n version https://git-lfs.github.com/spec/v1 \n0 NaN \\\n1 NaN \n2 NaN \n3 NaN \n4 NaN \n... ... \n260486 NaN \n260487 NaN \n260488 NaN \n260489 NaN \n260490 oid sha256:f138d6bdf2939ba576b96b633d81366123b... \n\n cpc_taxonomy \n0 [('A', 'HUMAN NECESSITIES')] \\\n1 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n2 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n3 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n4 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n... ... \n260486 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260487 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260488 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260489 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260490 [] \n\n cpc_fullname \n0 HUMAN NECESSITIES \\\n1 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n2 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n3 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n4 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n... ... \n260486 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260487 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260488 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260489 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260490 NaN \n\n tax_level_0 \n0 HUMAN NECESSITIES \\\n1 HUMAN NECESSITIES \n2 HUMAN NECESSITIES \n3 HUMAN NECESSITIES \n4 HUMAN NECESSITIES \n... ... \n260486 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260487 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260488 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260489 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260490 NaN \n\n tax_level_1 \n0 NaN \\\n1 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n2 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n3 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n4 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n... ... \n260486 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260487 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260488 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260489 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260490 NaN \n\n tax_level_2 \n0 NaN \\\n1 NaN \n2 SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n3 SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n4 SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n... ... \n260486 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260487 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260488 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260489 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260490 NaN \n\n tax_level_3 tax_level_4 \n0 NaN NaN \\\n1 NaN NaN \n2 NaN NaN \n3 Hand tools (edge trimmers for lawns A01G3/06 ... NaN \n4 Spades; Shovels {(hand-operated dredgers E02F3... NaN \n... ... ... \n260486 Tool transfer to or from matrix Indexing matrix \n260487 Tool transfer to or from matrix Rotary disc \n260488 Tool transfer to or from matrix Chain or belt \n260489 Miscellaneous NaN \n260490 NaN NaN \n\n tax_level_5 tax_level_6 tax_level_7 data_scope \n0 NaN NaN NaN False \n1 NaN NaN NaN False \n2 NaN NaN NaN False \n3 NaN NaN NaN False \n4 NaN NaN NaN False \n... ... ... ... ... \n260486 NaN NaN NaN False \n260487 NaN NaN NaN False \n260488 NaN NaN NaN False \n260489 NaN NaN NaN False \n260490 NaN NaN NaN False \n\n[260491 rows x 20 columns]", - "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
cpc_idcpc_namesectionclasssubclassgroupmain_groupcpc_versionversion https://git-lfs.github.com/spec/v1cpc_taxonomycpc_fullnametax_level_0tax_level_1tax_level_2tax_level_3tax_level_4tax_level_5tax_level_6tax_level_7data_scope
0AHUMAN NECESSITIESANaNNaNNaNNaN2023NaN[('A', 'HUMAN NECESSITIES')]HUMAN NECESSITIESHUMAN NECESSITIESNaNNaNNaNNaNNaNNaNNaNFalse
1A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...A1.0NaNNaNNaN2023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...NaNNaNNaNNaNNaNNaNFalse
2A01BSOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...A1.0BNaNNaN2023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...NaNNaNNaNNaNNaNFalse
3A01B1/00Hand tools (edge trimmers for lawns A01G3/06 ...A1.0B1.00.02023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...Hand tools (edge trimmers for lawns A01G3/06 ...NaNNaNNaNNaNFalse
4A01B1/02Spades; Shovels {(hand-operated dredgers E02F3...A1.0B1.02.02023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...Spades; Shovels {(hand-operated dredgers E02F3...NaNNaNNaNNaNFalse
...............................................................
260486Y10T483/1873Indexing matrixY10.0T483.01873.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...Tool transfer to or from matrixIndexing matrixNaNNaNNaNFalse
260487Y10T483/1882Rotary discY10.0T483.01882.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...Tool transfer to or from matrixRotary discNaNNaNNaNFalse
260488Y10T483/1891Chain or beltY10.0T483.01891.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...Tool transfer to or from matrixChain or beltNaNNaNNaNFalse
260489Y10T483/19MiscellaneousY10.0T483.019.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...MiscellaneousNaNNaNNaNNaNFalse
260490NaNNaNNaNNaNNaNNaNNaN2022oid sha256:f138d6bdf2939ba576b96b633d81366123b...[]NaNNaNNaNNaNNaNNaNNaNNaNNaNFalse
\n

260491 rows × 20 columns

\n
" + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n1272384 407289438 CN 19595222 2 0 \\\n3185053 405545436 CN 43675023 0 1 \n46333633 572273359 CN 84986987 0 1 \n30374458 548032681 CN 64435157 0 1 \n38909435 548873284 CN 60805890 1 0 \n30940025 526314971 CN 58196262 0 1 \n33160256 532257650 CN 59633449 1 0 \n36415288 542989931 CN 64932427 1 0 \n12378533 470871991 CN 60097863 6 0 \n28095179 517589803 CN 58759116 2 0 \n\n person_name person_ctry_code \n1272384 LI CHAOYANG NaN \\\n3185053 QINGDAO CREEK NEW ENVIRONMENTAL MATERIALS CO.,... NaN \n46333633 XI'AN PETROLEUM UNIVERSITY NaN \n30374458 SOUTH-CENTRAL UNIVERSITY FOR NATIONALITIES NaN \n38909435 LI HAIYAN NaN \n30940025 ANHUI JIANGHUAI AUTOMOBILE GROUP CORP., LTD. NaN \n33160256 NIE JING NaN \n36415288 LIU BO NaN \n12378533 SHENG LI NaN \n28095179 CAO JINGYUAN NaN \n\n han_id han_name \n1272384 119595222 LI CHAOYANG \n3185053 143675023 QINGDAO CREEK NEW ENVIRONMENTAL MATERIALS CO.,... \n46333633 184986987 XI'AN PETROLEUM UNIVERSITY \n30374458 164435157 SOUTH-CENTRAL UNIVERSITY FOR NATIONALITIES \n38909435 160805890 LI HAIYAN \n30940025 158196262 ANHUI JIANGHUAI AUTOMOBILE GROUP CORP., LTD. \n33160256 159633449 NIE JING \n36415288 164932427 LIU BO \n12378533 160097863 SHENG LI \n28095179 158759116 CAO JINGYUAN ", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codehan_idhan_name
1272384407289438CN1959522220LI CHAOYANGNaN119595222LI CHAOYANG
3185053405545436CN4367502301QINGDAO CREEK NEW ENVIRONMENTAL MATERIALS CO.,...NaN143675023QINGDAO CREEK NEW ENVIRONMENTAL MATERIALS CO.,...
46333633572273359CN8498698701XI'AN PETROLEUM UNIVERSITYNaN184986987XI'AN PETROLEUM UNIVERSITY
30374458548032681CN6443515701SOUTH-CENTRAL UNIVERSITY FOR NATIONALITIESNaN164435157SOUTH-CENTRAL UNIVERSITY FOR NATIONALITIES
38909435548873284CN6080589010LI HAIYANNaN160805890LI HAIYAN
30940025526314971CN5819626201ANHUI JIANGHUAI AUTOMOBILE GROUP CORP., LTD.NaN158196262ANHUI JIANGHUAI AUTOMOBILE GROUP CORP., LTD.
33160256532257650CN5963344910NIE JINGNaN159633449NIE JING
36415288542989931CN6493242710LIU BONaN164932427LIU BO
12378533470871991CN6009786360SHENG LINaN160097863SHENG LI
28095179517589803CN5875911620CAO JINGYUANNaN158759116CAO JINGYUAN
\n
" }, - "execution_count": 42, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "cpc_def" + "appln_pers.sample(10)" ], "metadata": { "collapsed": false @@ -218,20 +239,27 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 98, "outputs": [ { "data": { - "text/plain": " appln_id cpc_class_symbol\n490979 560314579 B32B 7/12\n139994 445201240 C08G2261/3241\n505928 567683420 C25D 7/123\n130069 442410454 Y02D 10/00\n467350 551851575 H04B 7/0486\n318101 509884390 H01L 21/0228\n350171 519161420 G06F 21/42\n129829 442384375 H04W 88/04\n277164 496690078 H04L 27/26\n240979 487005701 F16F2230/0064", - "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
appln_idcpc_class_symbol
490979560314579B32B 7/12
139994445201240C08G2261/3241
505928567683420C25D 7/123
130069442410454Y02D 10/00
467350551851575H04B 7/0486
318101509884390H01L 21/0228
350171519161420G06F 21/42
129829442384375H04W 88/04
277164496690078H04L 27/26
240979487005701F16F2230/0064
\n
" + "text/plain": "" }, - "execution_count": 43, + "execution_count": 98, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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euqpp576m63em2l4FULS09MVFBSksmXL2tpq1KihvLw8nT59WtWqVbO1161b1652//792r59u3r27OnNLFW9eiWfhvs6fW8FBVWknnrqqaeeeuo94FUIycnJsQsgkmyv8/PzXdadOnVKI0aMUPPmzdW6dWuvOnjy5DkZhmO7xXIxQLgaXhxv6/38rB69wRkZWbpwoZB66qmnnnrqb8r6ou2rJ7wKIeXKlXMIG0WvAwICnNacOHFCzzzzjAzD0OzZs+1O2XjCMOQ2JBQ33Nfpl3Sa1FNPPfXUU0+9e14lguDgYGVkZKigoMDWlp6eroCAAFWuXNlh/N9++029e/dWfn6+Fi1aZHe6BgAA3Ny8CiEhISHy9/fX7t27bW2JiYlq3LixwxGO7OxsDRw4UFarVR999JGCg4NLpcMAAODG4FUIKV++vKKiohQdHa2kpCRt3LhR8fHxtttw09PTlZubK0maO3euDh06pOnTp9uGpaene313DAAAuDF5dU2IJI0dO1bR0dHq37+/AgMDNWLECLVr106SFBkZqalTp6p79+764osvlJubqx49etjVd+vWTdOmTSud3gMAgOuW1yGkfPnymj59uu0Ix6X27dtn+7+zp6gCAAAU4QfsAACAKQghAADAFIQQAABgCq+vCbmeWa0WWa32D7X38/s9hxUWGiosLOUnlwEAAKdumhBitVpUpWoF+fvZH/y59FG0BRcKdeZ0NkEEAICr4KYKIf5+Vo1aukupaZkOw+vVDNSsnmGyWi2EEAAAroKbJoQUSU3LVPLRs2Z3AwCAmx4XpgIAAFMQQgAAgCkIIQAAwBSEEAAAYApCCAAAMAUhBAAAmIIQAgAATEEIAQAApiCEAAAAUxBCAACAKQghAADAFIQQAABgCkIIAAAwBSEEAACYghACAABMQQgBAACmIIQAAABTEEIAAIApCCEAAMAUhBAAAGAKQggAADAFIQQAAJiCEAIAAExBCAEAAKYghAAAAFMQQgAAgCkIIQAAwBSEEAAAYApCCAAAMAUhBAAAmIIQAgAATEEIAQAApiCEAAAAUxBCAACAKQghAADAFIQQAABgCkIIAAAwBSEEAACYghACAABMQQgBAACmIIQAAABTEEIAAIApCCEAAMAUhBAAAGAKQggAADAFIQQAAJiCEAIAAExBCAEAAKYghAAAAFMQQgAAgCkIIQAAwBReh5C8vDyNGzdOERERioyMVHx8vMtxf/rpJ/Xo0UNNmzbV448/rr179/rUWQAAcOPwOoTMmDFDe/fu1cKFCzVhwgTFxcVp3bp1DuNlZ2dr0KBBioiI0IoVKxQWFqbBgwcrOzu7VDoOAACub16FkOzsbC1btkzjx49XaGio2rZtq4EDB2rx4sUO465Zs0blypXTyy+/rLp162r8+PGqWLGi08ACAABuPl6FkJSUFBUUFCgsLMzWFh4erj179qiwsNBu3D179ig8PFwWi0WSZLFY1Lx5c+3evdv3XgMAgOuevzcjp6enKygoSGXLlrW11ahRQ3l5eTp9+rSqVatmN269evXs6qtXr679+/d71UGrVTKMi/+3WCyXhJr/+wP8rbbhhmHIKHrhQmityipf1s+h/e4aFe3mST311FNPPfXUe19ftH32hMUobqt9iYSEBM2aNUtbtmyxtR0+fFht2rTRV199pVtvvdXW3r9/f4WHh2vkyJG2tlmzZmnXrl364IMPPO8hAAC4IXl1OqZcuXLKz8+3ayt6HRAQ4NG4l48HAABuTl6FkODgYGVkZKigoMDWlp6eroCAAFWuXNlh3BMnTti1nThxQjVr1vShuwAA4EbhVQgJCQmRv7+/3cWliYmJaty4sayXnUhq2rSpdu3aZbtGwzAM/fjjj2ratKnvvQYAANc9r0JI+fLlFRUVpejoaCUlJWnjxo2Kj49Xv379JF08KpKbmytJat++vc6ePavJkycrNTVVkydPVk5Ojjp06FD6fwUAALjueHVhqiTl5OQoOjpa69evV2BgoJ599lk9/fTTkqT69etr6tSp6t69uyQpKSlJEyZM0IEDB1S/fn29/vrratiwYan/EQAA4PrjdQgBAAAoDfyAHQAAMAUhBAAAmIIQAgAATEEIAQAApiCEADeouLg45eTkmN0NAHCJEFIK9uzZo+joaI/HP378uI4ePWr7l5WVVaL5pqamat++fSWqvZbk5eXp8OHDpvbhX//6l9P21q1bKyMjw+fpG4ahgwcPas+ePTp48KDDr067cunTid05duyYQ9s777yj7Oxsr/oJXOro0aO6cOGC23HOnz+v77///ir16OYyceJE7dq1y+xuXFFe/YquGRo0aGD75Vx3LBaLfvrpp6vQo4uOHz+uVatWKSEhQb/88otuueUWl0Fk/fr1iouL08KFCxUUFKQOHTrYHuomSfXq1dPy5cvtfp34UmvXrtXatWslSV26dFFkZKQGDRqknTt3ymKxqG7dupozZ45uv/12h9q4uDg9++yzKl++vF3fa9asaXvK7dmzZ/XXv/5V8fHxJXovCgoKlJSUpObNm5eofufOnRo0aJB+/vnnEtW7U1BQoHnz5mnjxo3y8/NT+/btNWDAANsylZSUpEmTJmnv3r164oknHOqPHDnicWBwJicnR3FxcVqxYoVOnz4twzBksVhUtWpVde/eXSNGjHD7e0pDhgzRO++8o3LlyrkcZ+nSpYqJidEPP/xg114ad9/37dvXo++fJC1atMih7Wosf6UhMzNTgYGBpT7duLg4p+1lypRRpUqV1LBhQzVr1sxl/dixYzV+/Pgr0rdLZWRkKCgoyKG9VatWatiwoWbOnKm6des6rT1z5oz69etX7PfXMAwdOnRIp0+fVtWqVfWHP/zB4Unbpc3T7YekEq9/Dh48qISEBI0aNapE9e788ssv6tOnj2699VY99thj6ty5s+65555Sn09xMjMz5efnZ/c9LpKenq6ZM2dqxowZJZr2NR9CnK3YiqSlpekf//iHjhw5oo4dOzodJyQkRFu3blX16tV97ktubq6++OILJSQkaMeOHTIMQxERERo1apTatGnjtGbLli0aM2aMnn/+ebsNyaJFi1SrVi0dP35cgwYN0rJly9S7d2+H+gULFujdd99Vp06dVKFCBU2cOFG33367cnNztXTpUhUWFiomJkb/+Mc/9OabbzrUv/POO+rVq5fdwtOxY0etWrVKf/jDHyRd/GHB7du3O+2/s/cvOjpaI0eOVLVq1SRJp0+fVu/eva9IiJCk7Oxsffnll3rkkUdUseLFn4xeuHChtm/frqCgIPXr108hISFOa6dNm6ZPP/1UXbt2VdmyZTV37lzl5uZqyJAhmjZtmhYvXqy77777imwAc3Jy1Lt3b2VkZGjQoEEKDw9X5cqVlZaWpv/85z96//339d1332nx4sUug8j/+3//TwMGDNDcuXMdNkTHjh3T+PHj9e233+qxxx5zWn/8+HHl5eUV29datWo5bb///vuLrXXH1+UvKytLU6ZM0YYNG1SmTBm1bt1aL730kipVquTR/MePH6833njD7Ybom2++0WuvvWb36+BFWrVq5bTW399flStXVkhIiHr37q369es7nfaOHTucthuGobNnz+qXX35R48aNNXfuXKd/U0JCgsaMGeNTCDl8+LC+/PJL+fn5qWXLlnaftWEYWrx4sWJjY132VZK6d++uF154wfZgSmd/jyu+BHFX778zmzZtcmi7fPthGIYGDRqkN954Q8HBwR5NtziHDh3SnDlznIaQhIQEdezY0eUOpnRxAz99+nRNmjTJYdj777+vjIwMffHFF1q3bp0WLFigunXrqlOnTurUqZPL720RX3cCjh8/rr/97W+2ZePhhx/WjBkzVKVKFV24cEEffPCB3nnnHZUpU8ZtP9y55kPIfffd59BmGIY+/PBDzZ49W7fccovef/99PfDAA07rS2NvcOfOnVq5cqXWr1+vnJwcNWvWTC+99JJiYmI0YcIE1atXz2VtfHy8hg8frkGDBtnaLBaLbr31VtWuXVu1a9fWoEGDtGrVKqchZMmSJZo5c6ZatWolSXr88cfVqVMnxcfH2/agxo0bp2effdbp/J39/d68J87G/fe//61nn33WFkK8naY3Dh06pD59+igrK0sJCQmqWLGiJk2apCVLlqhDhw4qW7as+vTpo/nz5zs9EvPFF19o4sSJioqKkiS1a9dOL7/8sv773/9q8+bNeumll9SvXz/5+fm57MOCBQtUoUKFYvs6fPhwu9fz5s3ThQsX9Nlnn9ltRO68807dd999+stf/qJ+/fpp/vz5GjFihNNpLl26VM8++6z69eunBQsW2PZWP/nkE9vKYN68eXr44Yed1js7unOpog2CqwBZ9DedOHFCVatWlb//xVXGTz/9pO+++07VqlVTu3btXL4/vi5///jHP/TNN99o4MCB8vPz05IlS5SRkaHY2FiP6tetW6esrCzFxMTY+l4kMzNT06ZN07/+9S+XR/FcfS6FhYU6d+6c9uzZo549e+q9995TeHi4w3gffvih2/6dPXtWI0aM0MyZMzVx4kSH4b5+rzZs2KAXX3xR/v7+8vf314wZM/Tee+8pIiJCSUlJevXVV7Vv3z516dLFab3FYtGcOXP08ccfa+bMmfryyy81ffp0hw24q6DgaxB39f57ytn2w2q1qlmzZrYQfCWNHTtWDz30kN1OXPPmze1CeG5urv71r385DSGSFBQUpJ49e6pnz546deqU1q1bp3Xr1mnWrFlq2rSpOnXqpA4dOjg9kuXrTsDEiRN15MgRzZgxQ2XKlNG8efM0depUvfDCC3r++eeVkpKiJ554Qi+88EKJ3yMZ15ndu3cbUVFRRtOmTY13333XyM/Pdzt+/fr1jZMnT5Z4fn/+85+N8PBwY+jQocann35qpKen24Y1bNjQ2L9/v9v6sLAw45dffrFra9asmXHo0CHb69TUVKNZs2ZO6xs2bGgcO3bMrq1x48Z200xPTzdCQkKc1tevX984ceKE2/mnp6cbDRo0uCL1nvj6669d1o8aNcoYPny4kZeXZxiGYfz2229Gw4YNjdGjR9vGef/9941+/fo5rQ8NDTWOHDni0NaxY0e7v8GV+vXrG3/5y1+MPn36uP3Xt29fh9p27doZX375pdvpb9261WjXrp3bcTIyMowePXoY7du3N3744Qfj6aefNkJCQowpU6YY2dnZbvuelJRk/Prrr8X+cyUrK8sYPHiw0aBBAyM1NdUwDMNYvny5ERISYrRs2dJo37690apVK4dl9NI++LL8PPjgg8b3339ve52cnGyEhobalofiJCcnGw8++KAxcOBAIzc319b+zTffGC1btjTCw8ONJUuWeDQtV2JjY40+ffqUuH7nzp1GZGSk02H169c3NmzYYOzcubPYf8507tzZeOmll4z8/HyjoKDAeOutt4wnnnjC+Pzzz43Q0FAjKirKSExMdNm3Sz+/xMREo02bNkaLFi2Mzz77zDaOu8/v7bffNrp06WKcO3fO6fBz584Z3bp1M2bPnu10+FNPPWWcOXPGri0nJ8dlfz1x+fLnK3frryu5/jxx4oTxySefGFFRUUajRo2uyPzvu+8+49tvv7W9PnjwoNG8eXOja9euRpcuXYykpCSv+325a/5ISJGzZ88qJiZGy5Yt0yOPPKLY2Fin10A488Ybb7g9p15k6tSpTtvLlSsnf39/5eXlKT8/36t+WywWh73sHTt22B2es1qtLg/XXbhwweFQl5+fn8M0jWv06fueXLDm7uLa7du364MPPrC9P1999ZUKCwvVrVs32zgPPvigZs+e7bS+oKDA4bMvU6aMXnvtNY/3hN55550Snc47duxYsedv7777bv32229ux6lataoWLlyokSNHqk+fPqpbt66WLl2qJk2auK2zWCyqVatWsX1PS0tzOWz27Nk6cuSIPvroI919993Kzs7W5MmT1aRJE3344YcqU6aMJkyYoJiYGMXExLidT0mcOnVKderUsb0uOu128uRJ3XbbbcXWN2zYUEuWLNHAgQM1YMAAxcTEKDY2VitWrFCbNm306quv+nxYvl27dvrggw9KXF+7dm2dPXvW5fDLj7A54+po1qFDh/TWW2/Z1iFDhgzR/PnzbadUBw4c6PF1GUV78FOmTNGYMWO0efNmvf76625r1qxZo3Hjxrk8nRQYGKjRo0dr4sSJTo96/Pjjjzp//rxd25/+9Ce7PfmbUXJystavX69Nmzbp6NGjevTRR6/IfM6ePWt3LdAdd9yh8+fPq3bt2nr77bd9Og1T5LoIIStWrFBMTIwCAgIUGxvr8voLV3zZQG/evFm7d+/W6tWrNWfOHE2ePFn169e39aG485V169bV1q1b1atXL1vb5YFj27ZtLs8pWywWh3l4eo7UVf3V1LdvX4/Gc3c499Jz5du3b1dAQIBatGhha7v8MLsnijuXWly/PFGjRg3973//czuvX375RTVr1ix2WuXLl9ecOXM0duxYbdu2ze055iLulvv8/Hxt2LBBK1eu1Pbt25WcnOx0vPXr12vKlCm2Uw1bt25VVlaW+vbta1sBde/eXYMHD3Za7+vyV1hYaLeRtFgsKlOmjMd3DUkXV5xLlizRc889pzZt2qh69eqaPXu22rVrV+J+XSogIMCndcz+/ft16623uhy+bdu2El/Tlpuba3eYvnz58ipXrpwt0Bbn8s+uQoUKeuONN9SqVSu9+uqr6ty5s1566SWX9b4GcWfv69Xc4Ro7dmyx4xS3E1FafvzxR61fv14bNmxQenq6IiMjNXToULVq1crtxe2+MAzDYYfXz89PI0aMKJUAIl0HIaR379768ccfVbt2bQ0YMECZmZlKSEhwOm7Ref/L/f3vf/fpwtRmzZqpWbNmGj9+vL777jutXr1aH374oS5cuKCRI0eqR48e6tKli901EkV69OihadOmKTQ01Ome688//6zY2Fin54OliwvBgw8+6NB26QrU+L/z+q7qLz8SdP78ec2cOdN2kWdxFy46u7jxt99+sy2cJ0+edFmbkpLidtrFqVevnpKSknT77bcrOztbX3/9tSIjI+02whs3bnR55b4n/S/iLCx4ssLLy8tTWlqaw57Zo48+qjfffFPh4eFOj8Tl5OTorbfecnlRqeR4d8Udd9yhb7/9Vn379lWfPn3s/obL95inTp3qcLFjYmKi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zmnw4MF68MEHtXr1ai1YsECHDh3SvHnzJEn/+c9/9PPPP+uTTz7R8OHD9frrr2vr1q22+rlz5+rRRx/VihUrFBwcrEGDBik/P9/pvGJjYzV+/HitWLFCGRkZevvttz3qY0JCghYuXKjJkydr3bp1GjZsmGJjY5WcnFxs7fjx4xUWFqYBAwbYBZWVK1fqrbfe0qJFi5ScnKz58+d71BcAVw4hBLjJ5ObmaujQoRo2bJj+8Ic/KDw8XO3atdP+/fslXfxF0xkzZujee+/VE088occee0yffvqprf7hhx/W008/rbp162rSpEk6deqUtm3b5nRezzzzjB544AHde++96tWrl/bu3etRH2+77TZNnTpVDzzwgG6//Xb16tVLt9xyi62P7lSqVEllypRRhQoVVLVqVVv7Sy+9pCZNmqhp06bq0KGDUlJSPOoLgCuH344BbjK33HKLoqKi9MEHH+jnn39Wamqq9u3bp+bNm0uS6tSpo+rVq9vGb9SokZYuXWp7XTSeJAUGBuquu+7SgQMHdM899zjMq06dOnbjnj9/3qM+/vGPf9SePXv05ptv6sCBA/r555+Vnp6uwsJCr//eInfccYft/5UqVVJeXl6JpwWgdHAkBLjJ/Pbbb+rSpYu+++47hYaGaty4cXrmmWdsw/397fdNLly4IKvV6vHwS5X0R/uWLVump59+Wnl5eWrXrp0++OAD3XrrrS7Hv3DhQrHTdNVHAObhSAhwk9mwYYOqVKmiuXPn2to+/PBDFf2W5cGDB5WVlaWKFStKkvbu3at7773XNu6lpzHOnTunQ4cOqX79+qXax48//ljDhg3TwIEDJUlnz57VyZMnbX0sW7assrKybON7esErgGsLuwbATaZq1ao6evSotm/frsOHD2vevHlav3697eLS7OxsTZgwQQcOHNCnn36qdevW6amnnrLVf/bZZ0pISNCBAwc0fvx41apVS/fff3+p9jEoKEjbt2/XL7/8or179+qFF17Q+fPnbX1s1KiR1q5dq6SkJCUlJWn27Nl29RUqVND//vc/nTx5slT7BaB0EUKAm0yHDh3UpUsXjRw5Uo8//rh27NihV155RQcOHFB+fr5uu+023XLLLXriiSf03nvvaebMmQoPD7fVd+7cWUuXLlX37t2VlZWl+fPnO5yi8dW4ceOUmZmprl27asSIEapfv77atm2rn3/+WdLFC14bNmyoPn36aPTo0Ro6dKhdfY8ePfTNN9/YjqQAuDZZjKLjmwBueitWrFBcXJw2b97sdHjfvn113333acSIEVe5ZwBuRBwJAQAApuDCVABX1RdffKG//e1vLoeHh4frvffeu4o9AmAWTscAuKqysrJ04sQJl8MDAgIUHBx8FXsEwCyEEAAAYAquCQEAAKYghAAAAFMQQgAAgCkIIQAAwBSEEAAAYApCCAAAMAUhBAAAmOL/A7VvEZGEiodNAAAAAElFTkSuQmCC\n" + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "appln_cpc.sample(10)" + "appln_pers.groupby('appln_auth')[\"person_ctry_code\"].apply(lambda x: 1-(x.isnull().sum()/len(x))).sort_values().plot(kind=\"bar\",)" ], "metadata": { "collapsed": false @@ -239,19 +267,26 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 101, "outputs": [ { - "data": { - "text/plain": "325243" - }, - "execution_count": 44, - "metadata": {}, - "output_type": "execute_result" + "ename": "TypeError", + "evalue": "no numeric data to plot", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mTypeError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[1;32mIn[101], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m \u001B[43mappln_pers\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mquery\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mappln_auth==\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mIC\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mmerge\u001B[49m\u001B[43m(\u001B[49m\u001B[43mappln\u001B[49m\u001B[43m[\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mappln_filing_year\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mappln_id\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m]\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mdrop_duplicates\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mon\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mappln_id\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mgroupby\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mappln_filing_year\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mperson_ctry_code\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mapply\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43;01mlambda\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mx\u001B[49m\u001B[43m:\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mround\u001B[39;49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m100\u001B[39;49m\u001B[38;5;241;43m-\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mx\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43misnull\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msum\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m/\u001B[39;49m\u001B[38;5;28;43mlen\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mx\u001B[49m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m100\u001B[39;49m\u001B[43m,\u001B[49m\u001B[38;5;241;43m3\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mplot\u001B[49m\u001B[43m(\u001B[49m\u001B[43mkind\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43mline\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mtitle\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m)\u001B[49m\n", + "File \u001B[1;32m~\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\pandas\\plotting\\_core.py:975\u001B[0m, in \u001B[0;36mPlotAccessor.__call__\u001B[1;34m(self, *args, **kwargs)\u001B[0m\n\u001B[0;32m 972\u001B[0m label_name \u001B[38;5;241m=\u001B[39m label_kw \u001B[38;5;129;01mor\u001B[39;00m data\u001B[38;5;241m.\u001B[39mcolumns\n\u001B[0;32m 973\u001B[0m data\u001B[38;5;241m.\u001B[39mcolumns \u001B[38;5;241m=\u001B[39m label_name\n\u001B[1;32m--> 975\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m plot_backend\u001B[38;5;241m.\u001B[39mplot(data, kind\u001B[38;5;241m=\u001B[39mkind, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n", + "File \u001B[1;32m~\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\pandas\\plotting\\_matplotlib\\__init__.py:71\u001B[0m, in \u001B[0;36mplot\u001B[1;34m(data, kind, **kwargs)\u001B[0m\n\u001B[0;32m 69\u001B[0m kwargs[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124max\u001B[39m\u001B[38;5;124m\"\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mgetattr\u001B[39m(ax, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mleft_ax\u001B[39m\u001B[38;5;124m\"\u001B[39m, ax)\n\u001B[0;32m 70\u001B[0m plot_obj \u001B[38;5;241m=\u001B[39m PLOT_CLASSES[kind](data, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n\u001B[1;32m---> 71\u001B[0m \u001B[43mplot_obj\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mgenerate\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 72\u001B[0m plot_obj\u001B[38;5;241m.\u001B[39mdraw()\n\u001B[0;32m 73\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m plot_obj\u001B[38;5;241m.\u001B[39mresult\n", + "File \u001B[1;32m~\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\pandas\\plotting\\_matplotlib\\core.py:446\u001B[0m, in \u001B[0;36mMPLPlot.generate\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 444\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mgenerate\u001B[39m(\u001B[38;5;28mself\u001B[39m) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[0;32m 445\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_args_adjust()\n\u001B[1;32m--> 446\u001B[0m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_compute_plot_data\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 447\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_setup_subplots()\n\u001B[0;32m 448\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_make_plot()\n", + "File \u001B[1;32m~\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\pandas\\plotting\\_matplotlib\\core.py:632\u001B[0m, in \u001B[0;36mMPLPlot._compute_plot_data\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 630\u001B[0m \u001B[38;5;66;03m# no non-numeric frames or series allowed\u001B[39;00m\n\u001B[0;32m 631\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m is_empty:\n\u001B[1;32m--> 632\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mTypeError\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mno numeric data to plot\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[0;32m 634\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mdata \u001B[38;5;241m=\u001B[39m numeric_data\u001B[38;5;241m.\u001B[39mapply(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_convert_to_ndarray)\n", + "\u001B[1;31mTypeError\u001B[0m: no numeric data to plot" + ] } ], "source": [ - "len(appln_pers)" + "appln_pers.query(\"appln_auth=='IC'\").merge(appln[[\"appln_filing_year\",\"appln_id\"]].drop_duplicates(), on='appln_id').groupby('appln_filing_year')[\"person_ctry_code\"].apply(lambda x: round(100-(x.isnull().sum()/len(x))*100,3)).plot(kind=\"line\", title=\"\")" ], "metadata": { "collapsed": false @@ -259,19 +294,19 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 115, "outputs": [ { "data": { - "text/plain": "65136" + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAHWCAYAAAB60/OZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB0oklEQVR4nO3de3zO9f/H8ce1zc4Os4NDFiJznpnIqZBj0g+pbyoip69Gh281sb45U6i+SSWiiEpKlMqxg0LKsCXmMMnZNjbDTrZdvz/m+uQyYxfXXNu15/12282uz+d9fa73+7XLruc+78/BZDabzYiIiIg4ERdHd0BERETE3hRwRERExOko4IiIiIjTUcARERERp6OAIyIiIk5HAUdEREScjgKOiIiIOB0FHBEREXE6Cjgi4hBFeY3Rknj90pLYZ5HiTAFHSp0XX3yRkJCQq37169cPgH79+hnf21t2djYvvvgiYWFhNG3alF9//bVQz+vQoQMvvvgiAFu2bCEkJIQtW7Y4pC/Xa/369YwaNapIth0dHc3QoUOLZNvX6/L3UUhICG+99RYAWVlZTJkyha+//vqGXuPFF1+kQ4cON7SNS23evJkRI0bQtm1bQkND6dKlC6+++iqnTp2yanfpWApSlP+PRAri5ugOiNxsTz75JA8//LDx+J133mHXrl3MmjXLWObr61vk/fj555/58ssvefLJJ2nVqhX169cv8tcsLn358MMPi2zbS5cuJT4+vsi2bw9LliyhcuXKACQkJLBgwQKmTp16Q9t88skn6d+/vz26x4wZM3j//ffp2rUrUVFRVKhQgT179jB37lzWrFnDokWLqFKlSqG3N3bsWLv0S8QWCjhS6tx6663ceuutxuOKFSvi7u5OkyZNbmo/UlJSAOjduzfBwcE39bWLc19Kg6J4r136nr4R33zzDXPnzmX06NEMGDDAWH7nnXdy991306tXLyZPnmz1B8G11K5d2y59E7GFpqhErsFsNjN37lzatWtH48aN+de//kVsbKxVm7179zJs2DCaNm1K06ZNiYiI4PDhwwVu88UXXzSmmTp27Gjsvj99+jTjx4+nffv2NGzYkObNmxMREcGRI0euu/85OTksXryYHj160LhxY9q1a8eMGTPIzMy8al8ut2zZMkJCQoiJiaFXr140btyYHj16sGrVKqt2R44cITIykjZt2tCgQQNatmxJZGQkycnJQN50xW+//cZvv/1mNb2WkpLCyy+/TKtWrWjUqBEPPfQQmzdvttp2SEgIixcvJioqiubNmxMWFsbTTz9NUlKSMZYvv/ySo0ePEhISwrJlywqsy6+//spDDz1EaGgo3bp1Y/369XTq1MmYbilo+u/y6ZaMjAxee+01OnfuTMOGDWnatCkDBw5k9+7dBb62ZVrnyJEj3HPPPQCMHj2aDh068OOPPxISEsIvv/xi9ZytW7cSEhJCdHT0Fbd5+RRVhw4dmDlzJq+++iqtWrWicePGDBo0iIMHDxbYL4A5c+ZQu3ZtHn/88XzratSowQsvvEBYWJjVMUPnzp2z+pk89dRTxs/kSjW71s8R8t63c+bM4b777qNx48Y0adKEhx9+uMinT8V5KOCIXEN0dDRr167lv//9L9OnTychIYHhw4eTnZ0NwF9//cXDDz/MqVOnePXVV5k8eTKHDx+mb9+++Y5XsHjyyScZPnw4ALNmzWLs2LGYzWaGDRvGxo0bef7555k3bx4jRoxg8+bNN7SL/+WXX2bq1Kl07NiRd999l0cffZRFixbx5JNPYjabr9iXqxk2bBj33HMPs2bNombNmjzzzDP89NNPAKSnp9O/f3/i4+MZO3Ys8+bNo3///nzzzTe88cYbQN50Rf369alfvz5LliyhQYMGZGZm8vjjj7N+/XqeffZZZs2aReXKlRk8eHC+kPPGG2+Qm5vL66+/TmRkJD/88ANTpkwx6nr33XcTGBjIkiVLaNeu3RXH8OeffzJ48GB8fX2ZOXMmjzzyCGPGjLH6gC2syMhIvvjiC4YOHcr8+fMZPXo0+/bt47nnnrvmgcNBQUHGnpDhw4cza9Ys2rZtS1BQECtWrLBqu3z5cmrUqEF4eHih+7Zw4UIOHDjA1KlTmTRpEjt37rzqsU+JiYnExcXRrl07TCbTFds88sgjDBo0yGr9woULuXDhAm+++SbPPfcc33//PRMmTLhq3672c4S8abJ33nmHf/3rX7z//vtMnDiRlJQUnn76adLT0wtdAym9NEUlcg3u7u7MmTOHChUqAJCamspLL73E/v37qVu3LrNmzcLLy4sPP/zQOHanZcuWdOzYkffff/+KHyiXTpPVq1ePatWqcfLkSby8vBg1ahTNmjUDoEWLFhw6dIglS5ZcV9/379/P559/znPPPWcceNu6dWuCgoKIjIxkw4YN3H333fn6cjX9+vUjIiICgLZt29KrVy/efvtt7r77bg4ePEjlypV59dVXjamuO++8k5iYGH777Tcgb7rCUifLVM1nn31GXFwcn332GaGhoQDcdddd9OvXjxkzZvDFF18Yr1+nTh2r41ViY2ONvUi33nproaYc33vvPSpWrMjs2bNxd3cHoHz58rzwwgvXLuolsrKyOH/+PC+99BL33nsvAM2bN+fcuXO88sorJCUlERgYWODz3d3dqVevntF3y7FPvXr14qOPPuL8+fP4+PiQkZHBd999Z/PB0+XKleOdd97B1dUVgEOHDvHWW2+RnJyMn59fvvbHjx8HuOZ74HKNGjVi2rRpQN57PyYmxgi9BbnazxHyjk169tlnrfb8eHh4MHLkSPbs2XPTp5Sl5NEeHJFrqF27thFu4J9f/mfPngXypjqaN2+Op6cn2dnZZGdn4+vrS7Nmzdi0aVOhX6dSpUosXLiQ8PBwjhw5wsaNG/noo4/Ytm0bWVlZ19V3S6jo3r271fLu3bvj6up6XWdf9erVy/jeZDLRqVMnYmNjycjIoF69enz88cfccsstHDx4kJ9++ol58+Zx4MCBq45h8+bNBAYG0qBBA6OGOTk5tG/fnp07d3LmzBmj7eUfbJUrV7b5L/qtW7fStm1bI9wA3Hvvvbi52fY3n7u7O/PmzePee+/l5MmT/Prrr3z66af88MMPANf9c3vggQdIS0tj7dq1AKxdu5a0tDR69uxp03YaNWpkhBvAOLC5oHpZxp+bm2vT61y+V6latWqkpqZe9TnX+jm+9tprPP7445w+fZqtW7fyxRdf8NVXXwHXX1cpXbQHR+QavL29rR67uOT9XWD5EEhJSeHbb7/l22+/zffcihUr2vRaX331Fa+//jrHjx+nQoUK1KtXD09Pz+vsOUYwuHwvgpubG35+fkZIs0VQUJDVY39/f8xmM6mpqXh6evLBBx8we/ZsUlJSCAgIoGHDhnh5eV31tVJSUkhMTKRBgwZXXJ+YmEj58uUB8PLyslrn4uJi8zVkzpw5k+9n4+bmhr+/v03bgbwz0KZMmcKBAwfw8fGhbt26xnvmeq9tU716dZo3b87y5cvp2bMny5cvp1WrVlSqVMmm7VypVlBwgKlSpQomk4mjR48WuM0zZ87g5uaGj4+PsexK/0euNfZr/Rz/+OMPxo8fzx9//IGXlxe1a9ematWqgK4ZJIWjgCNyg8qWLUurVq0YOHBgvnW27BHYunUro0aNol+/fgwaNMj4MJs2bVqBB5ZeiyUUJCYmcssttxjLL1y4UOA0xbVYgotFUlISrq6uVKhQga+//ppXXnmFF154gd69exsh4umnn+aPP/4ocJtly5alRo0azJgx44rrbZ0yuRY/P78rHm9z6Z4iyzEml4cBy7QR5E35RERE0LFjR9577z2Cg4MxmUwsXryYn3/++Yb6+MADDzBmzBji4+PZvHlzgbWxJz8/Pxo0aMDPP//MCy+8cMXjcGbNmmXspbr0fWBP586dY/DgwYSEhPDNN99w22234eLiwk8//cTq1auL5DXF+WiKSuQGNW/enP3791OvXj0aNWpEo0aNaNiwIR9++KExxVAY27dvJzc3l5EjRxrhJicnx5jmsnXawNI3yDv191LffPMNOTk5Nh2warFu3Trje7PZzJo1awgPD8fd3Z3o6GjKlSvH4MGDjXBz/vx5oqOjrfpv2ZNwaT+PHz+Ov7+/UcNGjRqxceNG3n//fatplmu5fNtX0rJlSzZs2GA1JbJp0yYyMjKMx5bjhE6cOGEsO3PmjNU1dnbu3ElmZiZDhw7l1ltvNQKBJdwUZk9DQWPr0qULXl5ejBs3Dh8fHzp27HjNbdnDoEGD2Lt3L4sWLcq3bv/+/XzxxRe0atWqyMINwIEDB0hJSaF///7Url3b+Jlu2LABuL7/C1L6aA+OyA2yXDhw2LBh9O3bFw8PD5YsWcK6deuYOXNmobfTuHFjACZMmMADDzzAmTNnWLx4MXFxcQCkpaXZfAHC2rVr06tXL2bOnEl6ejp33HEHu3fvZtasWbRo0YK2bdvatD3I26OUmZlJzZo1jYvqLViwwBjDJ598wiuvvEL79u1JSEhg3rx5JCUlGXuTIO/g1+3bt7N582bq169P7969WbRoEQMHDuTf//43VapUYdOmTcydO5fHHnuMMmXKFLp/5cqVIykpiZ9++ol69erlm1IDiIiI4Pvvv2fQoEEMHjyYlJQUXn/9das2ISEhVKlShbfffhtfX19MJhPvvfee1dRKgwYNcHNzY/r06TzxxBNkZWWxbNkyfvzxRyDvZ3YtZcuWBfKOQ6pVq5ZxkLWXlxfdu3dnyZIl9O3b1+p4oaJ07733smnTJiZNmkRMTAxdu3bF29ub2NhYPvjgA/z8/Jg0aVKR9qFmzZr4+voye/Zs3NzccHNzY/Xq1Xz++edAwccQiVxKe3BEblDdunVZvHgxJpOJyMhInnrqKRITE3n77bfp3LlzobfTokULXn75ZbZv386QIUN45ZVXqFq1qnEa8fVOU02ePJmIiAi+/vprhg4dyuLFi+nfvz9z584t1N6Oy40bN47PPvuMESNGkJiYyPz5842zvnr16kVERATfffcdQ4YMYebMmTRr1owJEyaQkpJi7P149NFHKVOmDEOGDGHDhg14e3uzePFiwsPDmT59OkOGDGHNmjU899xzjB492qb+9e7dm1tuuYWIiAiWL19+xTY1atRg8eLFlClThmeeeYa3334739lurq6uzJw5k4CAAP7zn/8wefJkunfvbvUzrV69Oq+99honT55k+PDhvPzyywB89NFHmEwmtm7des3++vr6MnDgQNatW8eQIUO4cOGCsc5ymnvv3r1tqsGNmjRpEjNmzODkyZO8/PLLDB8+nBUrVvDggw/y+eefX/XMMHsoW7Ys77zzDmazmaeffprIyEiOHTvGokWL8PHxKVRdRUxmHa0lIoWwbNkyRo8ezfr16+1+TExxERISwogRIxg5cqSjuwLkXTMoJiamwKAmIgXTFJWISDFjuUDfZ599xvTp0x3dHZESSQFHRKSY2bp1Kz///DOPP/449913n6O7I1IiaYpKREREnI4OMhYRERGno4AjUspop23xUdx+FkXZn+I2VnF+Cjgil5k/fz7PP/+8o7thdydOnGDo0KFXvQx/Ye3Zs4eePXvSsGFD4yaTl+vXr5/VjRKv5K233iIkJMSm176e5zhChw4dePHFFwE4cuQIISEhLFu2DMi7YWtkZGSxOd05KyuLKVOm8PXXXxfJ9t955x3mzZtX6PYHDhygQ4cO17yflcjVKOCIXCI+Pp733nvP5rtKlwSbNm265h2eC+vtt9/m2LFjvP3227z66qvXvZ0HH3zwuu+UXpIEBQWxZMkS47o2u3fvZsWKFcXmirwJCQksWLCA7OzsItn+m2++adPF+W677TbuueeeIr+goDg3nUUlconp06dz33332XxTw9ImOTmZOnXqcPfdd9/QdipXrmzc4dqZubu757t7tlzd0KFDadeuHY8//niBN2EVuRrtwRG5aO/evfz4449Wp+UuW7aMkJAQYmJi6NWrF40bN6ZHjx6sWrXK6rmZmZlMmzaNu+++m4YNG9KjR498dxfv0KEDU6ZM4fHHH6dx48ZERUUBeX89jxo1ipYtWxIWFsZjjz3G9u3bjefl5uYyZ84cOnXqRMOGDenSpQsfffSR1bb79etHVFQUc+bMoV27djRq1IiHH36Y2NhYYxyWKwLfc889xtTJlSQkJDB69GjuvvtuGjduTJ8+fVi/fr2xPiQkhN9++43ff//datrlSsxmM3PnzqVdu3Y0btyYf/3rX0af4MrTTfPmzeOee+6hcePGPPzww3z//feEhISwZcsWq3Y//vgj999/P40aNaJLly6FuhjeqlWr6NGjB40bN6ZXr15s376d+vXrG2Ow/LyPHDli9bxLp5sATp8+zfjx42nfvj0NGzakefPmRERE5HuexaVTVFu2bKF///4A9O/fn379+rF48WJCQkL466+/rJ63YsUK6tWrx/Hjx6+43X79+vHiiy8ye/ZsWrVqRXh4OE8++WS+ach169bxyCOPEBYWRsOGDenatSuLFy82+nbPPfcAMHr0aDp06GA8b+vWrTz22GOEhobSvHlzRo0axenTp431y5Yto379+sTExPCvf/2LRo0a0b59e6vpKMvPd9asWcb3GRkZjBs3jrvuusvoz+VTWIGBgdx555289957Vxy7yLUo4Ihc9PXXXxMYGHjFv7SHDRvGPffcw6xZs6hZsybPPPOMMd1jNpuJiIjg008/ZeDAgbz77ruEhYXx7LPP5vvQXbx4MY0aNeKdd96hT58+nD9/nr59+7JlyxZeeOEFZs2ahYeHB0888QQHDx4E8m6NMHPmTO6//35mz55N165dmTJlCm+//bbVtlevXs369et56aWXeP3110lKSmLkyJHk5OTQrl07hg8fDuR90Dz55JNXrEFSUhJ9+vRh69atPPvss7z11lvGbQ+++uorAJYsWUL9+vWpX7++1bTLlURHR7N27Vr++9//Mn36dBISEhg+fHiBUyGzZs1ixowZdOvWjXfeeYfQ0FCeeeaZK7Z9+eWXGTBgAO+++y6VK1fmxRdfNO7bdSXr16/n6aefpk6dOsyaNYtOnToxfPhwm6eJzGYzw4YNY+PGjTz//PPMmzePESNGsHnzZsaOHXvN5zdo0MC4pcPLL7/M2LFj6dGjBx4eHqxYscKq7fLly2nZsiVVqlS56riWLVvGSy+9xPjx49m9ezf9+vUzpoR+/PFHIiIiaNCgAe+88w5vvfUWwcHBTJgwgZiYGIKCgozbgQwfPtz4/vfff2fAgAF4enryv//9jzFjxvDbb7/Rv39/q5uS5ubm8swzz3DvvfcyZ84cmjZtyrRp04wbjlqmIPv06WN8P2XKFDZs2MCoUaOMQDtt2jS++OILq7F17dqV77//nvPnz1+zriKX0xSVyEW//vorjRo1Mu4Ifal+/foREREBQNu2benVqxdvv/02d999N5s2beLnn3/mjTfeMA64bdu2Lenp6cyYMYP77rsPN7e8/2pVq1a1OoB50aJFHD16lC+//JJ69eoB0LRpU3r27Mnvv/+O2Wzms88+4z//+Q9Dhw4FoE2bNsaNHx955BH8/PwAyM7OZt68ecYNOc+fP8+oUaPYvXs3DRs25NZbbwWgXr16Bd5q4YMPPuD06dOsXr2aW265BYC7776bAQMGMG3aNO677z6aNGlivMa1pl3c3d2ZM2cOFSpUAPIOrn3ppZfYv38/devWtWqblpbG3LlzefTRR40atWnThvT09CsepzNp0iTuuusuAG699VY6derEb7/9lm+7Fm+//TYNGzbktddeA+Cuu+7CZDLxv//976pjuFxCQgJeXl6MGjXKuAdXixYtOHToUKGOJ/L19aV27dpA3s1QLd936tSJr776iqeffhqTycSJEyf49ddfr3kl4/T0dJYtW0ZwcDCQd/xKr169WL58OX379mX//v306tXL2GMIEBYWRosWLdiyZQuhoaHGe+/WW2+lfv36ALz22mvUrFmT9957z7jjeWhoKN27d+eLL77g0UcfBfIC35NPPsmDDz4IQHh4OGvXruXHH3+kbdu2xnukcuXKxve//fYbrVu3pnv37kb9vL298ff3txpbo0aNuHDhAlu3br3h6VApfbQHR+Siw4cPF/jB36tXL+N7k8lEp06diI2NJSMjg82bN2Mymbj77rvJzs42vjp06EBiYiL79u0znmv5ILGIjo6mWrVqVsu9vLxYvXo1Dz74IL/++itms5kOHTrk23ZmZqbVDThr165tdbdxy3FEthzc+dtvvxEWFmaEG4v777+fxMREDhw4UOhtWfpkCTeAUd+zZ8/ma7tjxw4yMjLo2rWr1fKCruRrCReXbregs27S09P5888/jakYi/vvv//ag7hM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/v7+1KlTh99//93qg/euu+5iwIABAEycOJG2bduyceNGbr/99nyvNXDgQFq2bAlA3759CxUo3N3dKV++PMB1TT899dRTNG7cGIAePXrwxx9/ALB06VIaN27Mk08+CcDTTz/Npk2bCrVNHx8f2rdvz6pVq2jTpg3p6en89NNPfPTRR6Snp7No0SK++OILY2/StGnTaNGiBXv27KFixYoF1tvCZDIxfPhwPD09bR6viCjgiAh5oaFnz558+OGH7N69m/3797Nnzx6aNm0KQPXq1fH39zfaN2zYkE8//dR4bGkH4OvrS82aNYmPj79iwKlevbpV2wsXLhTFkAr1mnv27KFRo0ZWbZs0acKZM2cKtd377ruPl156iXHjxvHjjz8SFBREw4YN2bt3LxcuXODhhx+2ap+bm8vBgwcJCQm5ar0B/P39FW5EboACjohw8uRJHnjgARo0aECrVq146KGH+PHHH4mJiQHAzc36V0VOTg4uLv/McF9r/aXKlClj595fW0Gv6erqitlstlp2+eOrueuuu8jJyeH3339n9erVdOvWDcgbP8DHH3+Mt7e31XP8/f2vWW8ADw+PQvdDRPJTwBER1q5dS/ny5XnvvfeMZR999JHxYf/3339z/vx5fHx8ANi5cyd16tQx2sbFxRnfnz17lkOHDpWIa9HcfvvtREdHWy37888/CQ4OLtTz3d3d6dSpE2vXrmXjxo1EREQAEBwcjKurKykpKdSrVw+AU6dOERUVxejRo/n555+vWm8RuXE6yFhEqFChAseOHWPz5s0cPnyYOXPmsGbNGuNA4bS0NMaOHUt8fDyfffYZq1at4pFHHjGe//XXX7N8+XLi4+OJioqiatWqtGjRwlHDKbSHHnqIHTt2MGfOHP766y9mz57N1q1br3oa+uXuu+8+Pv/8cypXrmxMyfn6+vLggw8ybtw4tmzZwv79+4mMjOTvv/+mWrVq16y3iNw4BRwRoVu3btx///089dRTPPDAA2zZsoVRo0YRHx9PVlYWVapUITAwkD59+vD+++8zffp0wsPDjef36NGDTz/9lN69e3P+/Hnmzp2bb9qqOLrllluYOXMmX3zxBT169GD79u3cc889Nk2jtWjRAh8fH+69916r5S+++CItW7bkqaee4qGHHsLNzY05c+bg6up6zXqLyI0zmbVPVESuYtmyZcyaNYvvv//+iuv79etH8+bNGTly5E3u2Y3bu3cv2dnZ1K9f31g2dOhQGjVqVOjxnDt3zjjdu7BTWyJS9LQHR0RKrUOHDjFw4EA2btzI0aNHWbp0KZs3b6ZTp07XfK7ZbGbVqlW8/PLLhIWFKdyIFDPFfx+yiDi91atXX/XqweHh4bz//vt2f92OHTuyb98+oqKiOHXqFDVr1uSNN96gbt26REREXPWaOOPHj+fNN9/E1dWVd9991+59E5EboykqEXG48+fPk5SUVOB6T09PKlWqdBN7BAkJCaSnpxe43t/fH19f35vYIxGxhQKOiIiIOB0dgyMiIiJORwFHREREnI4CjoiIiDgdBRwRERFxOgo4IiIi4nQUcERERMTpKOCIiIiI0/l/v8WShpCTfWYAAAAASUVORK5CYII=\n" }, - "execution_count": 45, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "len(appln)" + "ds3 = appln_pers.query(\"appln_auth=='CN'\").merge(appln[[\"appln_filing_year\",\"appln_id\"]].drop_duplicates(), on='appln_id').groupby('appln_filing_year')[\"person_ctry_code\"].apply(lambda x: (100-(x.isnull().sum()/len(x))*100)).plot(kind=\"line\", title=\"The fall of patent quality in China\\n(percent of high quality patents)\", ylim=[-0.0001,0.003])" ], "metadata": { "collapsed": false @@ -279,10 +314,10 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": null, "outputs": [], "source": [ - "# Number of collaborative applications\n" + " # appln_pers.query(\"appln_auth=='CN'\").merge(appln[[\"appln_filing_year\",\"appln_id\"]].drop_duplicates(), on='appln_id').groupby('appln_filing_year')[\"person_ctry_code\"].apply(lambda x: (100-(x.isnull().sum()/len(x))*100))" ], "metadata": { "collapsed": false @@ -290,10 +325,21 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 125, "outputs": [], "source": [ - "record_col = \"appln_id\"" + "appln_pers.query(\"appln_auth=='CN'\").merge(appln[[\"appln_filing_year\",\"appln_id\"]].drop_duplicates(), on='appln_id').groupby('appln_filing_year')[\"person_ctry_code\"].apply(lambda x: 100-((x.isnull().sum()/len(x))*100)).reset_index().to_excel(\"ds3.xlsx\", index=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 123, + "outputs": [], + "source": [ + "appln.query(\"appln_auth=='CN'\").groupby(\"appln_filing_year\")[\"appln_id\"].nunique().cumsum().reset_index().to_excel(\"ds2.xlsx\", index=False)" ], "metadata": { "collapsed": false @@ -301,19 +347,19 @@ }, { "cell_type": "code", - "execution_count": 297, + "execution_count": 113, "outputs": [ { "data": { - "text/plain": "'C:\\\\Users\\\\radvanyi\\\\PycharmProjects\\\\ZSI_analytics\\\\PATSTAT'" + "text/plain": "
", + "image/png": "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\n" }, - "execution_count": 297, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "os.getcwd()" + "ds2 = appln.query(\"appln_auth=='CN'\").groupby(\"appln_filing_year\")[\"appln_id\"].nunique().cumsum().plot(kind=\"line\", title=\"Number of patents submitted in China (in TEN millions)\")" ], "metadata": { "collapsed": false @@ -321,12 +367,54 @@ }, { "cell_type": "code", - "execution_count": 429, - "outputs": [], + "execution_count": 117, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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r7/+Os899xwjRozQZ5PrJH3W8cCBA5w6dYrJkycbqrl1lj7raGFRcXB84sSJ9OnTh9DQUObNm8dvv/1GamqqQdpfV+izjnl5eYSHh/Pmm28SFhZGt27dmD9/Pt999x1paWmG6kKdcL91vHLlCs8//zw+Pj689957AFhZWWm3v/X5NjY2BuyFcemzhjczte8YfZOgVUvmzp3L2rVrWbRoEQMGDADA3d2d9PR0ne3S09NvO9T7V7Zv385rr73GM888w1tvvaXXNtdF+q7jTz/9REpKCl26dCEkJIRZs2aRlJRESEgIf/zxh0H6UBfou46urq4ANGvWTLusadOmAPVuqOZm+q7j5cuXKSgoICAgQLusdevWlJeXSx25vY6XLl3iueeew8PDg9WrV2sDhJOTE1ZWVjrPLy0tJSsrS/terW/0XcMqpvYdYwgStGrBsmXL2LBhAx999BFPPPGEdnlQUBDnzp3THuYGiIiIICgoqFr7PXLkCDNmzODvf/87b7/9tt7bXdcYoo7Tp09n+/btbN26la1btzJt2jTc3NzYunUrbdu2NUg/jM0QdfTy8sLNzU1nonFsbCwqlQovLy/9dqCOMEQdq74AY2JitMsuX74MgLe3t76aXqfcbx3T0tIYP348vr6+fP7559jb22u3MzMzIzAwUOeaUKdOncLCwkInxNYXhqghmN53jKHIZHgDi42N5dNPP2XixImEhoai0Wi06zp16oSnpyczZ87k1Vdf5bfffuP06dMsWLDgnvstLS3lrbfeomPHjrz00ks6+23YsGG9G0M3VB3VajVqtVrnsYWFBb6+vgbph7EZqo4qlYqxY8eyZMkSvL29UavVzJ49m759+9bLIwiGqqOHhwc9evTg7bff5t1330VRFGbNmsUTTzyBs7OzIbtkFA9Sxw8++IDy8nLmzZtHQUGB9qKutra22NnZMXr0aN555x38/Pxwc3Nj9uzZjBw5st4NHRqqhlZWVib1HWNIErQM7JdffqGsrIzPPvvstjOHoqOj+fTTTwkPD2fYsGH4+vryn//8p1pHAM6ePUtSUhJJSUl0795dZ926deu0ZyzVF4aqo6kxZB3Hjx9PcXExM2bMoKCggN69ezN79mwD9ML4DFnHDz/8kPfff5+JEyeiUqno06cPb775piG6YXT3W0dFUdizZw9FRUUMHDhQ53lTpkxh6tSpPPHEEyQmJvLOO+9QUlJC//79eeONN2qze7XCUDXs0aOHSX3HGJJKURTF2I0QQgghhKiPZI6WEEIIIYSBSNASQgghhDAQCVpCCCGEEAYiQUsIIYQQwkAkaAkhhBBCGIgELSGEEEIIA5GgJYQQQghhIBK0hBBCCCEMRIKWECbu2rVr+Pv7c+3atQfel6IovP322wQHB9OnTx+WLl3KmDFjANiyZQu9e/cG4NixY/j7+z/w6wkhRF0nt+ARQuhNVFQUmzZtYuXKlfj7++Pg4KANWjcLCQnh4MGDRmihEELULglaQgi9yc3NBaBnz56oVKq7bmdpaVkvbzYthBC3kqFDIR4iERERPPvsswQFBREcHMxLL71EWloaW7Zs4dlnn2Xx4sWEhITQq1cvNm/erH3emDFjWLZsmfa5o0ePJjY29o6v4e/vz/fff8/gwYNp27Yto0ePJiEh4Z5tO3bsmPboVUBAAEuXLtUZOrx126qhw6qhy127dtG3b18CAwOZNGkSWVlZ2u0PHjzIkCFDaNeuHRMmTGDu3Ln861//umebfvjhB8LCwigtLdUu27lzJ7169UJRFEpKSnjvvfcICwsjLCyM6dOn67zu3eoNFUOho0aNYvLkyYSGhvLDDz/csz1CCNMjQUuIh0Rubi6TJk2iW7dubNu2jc8//5z4+HhWrlwJwJkzZ7hw4QIbN25kypQpzJkzR2d4bsWKFQwYMIAtW7bg7u7OxIkTKSkpueNrLV26lPDwcLZs2cL169f597//fc/2hYSEsHTpUqAiGI0fP75G/Vu+fDkfffQR69ev58yZM6xduxaAhIQEXnnlFQYNGsTWrVsJDAzk66+/rtY++/TpQ1FREUePHtUu+/nnnxk0aBAqlYqPPvqIs2fPsmrVKtatW0deXh6vvfYacO96A5w8eZIWLVqwadMmunfvXqP+CiFMgwwdCvGQKCoq4tVXX2XcuHGoVCp8fHzo378/p0+fpnXr1qhUKhYuXIharcbPz4/jx4/rBICePXsyduxYAObOnUuPHj04dOgQLVu2vO21xo0bR5cuXQB49tlnqxVsLC0tadiwIcB9DQtOmzaNdu3aATBkyBDOnDkDwObNm2nXrh2vvvoqAK+99hqHDx+u1j7t7Ox47LHH2LFjB927d6ewsJB9+/bx1VdfUVhYyPr16/nuu++0R9cWLlxIWFgY0dHRODs737XeVVQqFa+88grW1tY17q8QwjRI0BLiIeHq6srQoUP54osvuHDhAjExMURHR9O+fXsAfH19UavV2u3btm3Lhg0btI+rtgOwt7enadOmxMbG3jFo+fr66mx748YNQ3SpWq8ZHR1NYGCgzrbBwcFkZ2dXa7+DBw/m//7v/5g9ezZ79+7Fzc2Ntm3bcvHiRW7cuMGoUaN0ti8vL+fq1av4+/v/Zb0B1Gq1hCwhxF+SoCXEQyI1NZWnn36aNm3a0LVrV0aOHMnevXuJjIwEwMJC9+NcVlaGmdmfswPutf5mDRo00HPr7+1ur2lubo6iKDrLbn38V3r27ElZWRnHjx9n586dDBo0CKjoP8B///tfbG1tdZ6jVqvvWW8AKyurardDCGGaJGgJ8ZDYvXs3DRs2ZMWKFdplX331lTZ0xMXFkZ+fj52dHQBnz57Fz89Pu21UVJT2v3Nzc4mPj38ormXVsmVLIiIidJadO3cOHx+faj3f0tKSfv36sXv3bg4dOsTkyZMB8PHxwdzcnKysLFq1agVARkYG4eHhzJw5kwMHDvxlvYUQojpkMrwQDwknJyeSkpI4cuQICQkJrFy5kl27dmkntBcUFDBr1ixiY2PZtGkTO3bsYPTo0drn//jjj2zdupXY2FjCw8Px8vIiLCzMWN2ptpEjR3Lq1ClWrlzJlStXWL58OX/88cdfXj7iVoMHD+bbb7/Fw8NDO1Rqb2/PiBEjmD17NseOHSMmJoYZM2YQFxeHt7f3PesthBDVIUFLiIfEoEGD+Nvf/sa0adN4+umnOXbsGG+++SaxsbGUlJTg6emJq6srw4cPZ/Xq1SxatIjQ0FDt84cMGcKGDRsYNmwY+fn5rFq16rbhxLqocePGLFmyhO+++44hQ4Zw8uRJ+vTpU6PhzbCwMOzs7Hj88cd1lv/rX/+iS5cuTJs2jZEjR2JhYcHKlSsxNze/Z72FEKI6VIocBxfiobdlyxaWLVvGr7/+esf1Y8aMoVOnTkydOrWWW/bgLl68SGlpKa1bt9YumzhxIoGBgdXuT15envYyDdUdchRCCH2QI1pCiDotPj6ecePGcejQIRITE9m8eTNHjhyhX79+93yuoijs2LGDd955h5CQEAlZQohaV/fHDYQQdcLOnTv/8mrsoaGhrF69Wu+v27dvXy5dukR4eDgZGRk0bdqUjz/+mICAACZPnvyX19SaM2cOn3zyCebm5nz22Wd6b5sQQtyLDB0KIaolPz+f9PT0u663trbG3d29FlsEaWlpFBYW3nW9Wq3G3t6+FlskhBC6JGgJIYQQQhiIzNESQgghhDAQCVpCCCGEEAYiQUsIIYQQwkAkaAkhhBBCGIgELSGEEEIIA5GgJYQQQghhIBK0hBBCCCEM5P8DtevHG4a12f0AAAAASUVORK5CYII=\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "fromdir=\"first_round\"\n", + "import seaborn as sns\n", "\n", - "os.makedirs(fr'{fromdir}/plots')" + "ax = appln.query(\"appln_auth=='CN'\").groupby(\"appln_filing_year\")[\"appln_id\"].nunique().cumsum().plot(kind=\"line\")\n", + "ax2 = ax.twinx()\n", + "appln_pers.query(\"appln_auth=='CN'\").merge(appln[[\"appln_filing_year\",\"appln_id\"]].drop_duplicates(), on='appln_id').groupby('appln_filing_year')[\"person_ctry_code\"].apply(lambda x: (100-(x.isnull().sum()/len(x))*100)).plot(kind=\"line\", ylim=[-0.0001,0.003])\n", + "# df.plot(x=\"date\", y=\"column2\", ax=ax2, legend=False, color=\"r\")\n", + "ax.figure.legend()\n", + "plt.show()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 83, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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0dHRREdHt/nZz8+Pvn37uuU4zOauPlosFq6++moef/xxkpOTiY6OZv78+Zx55pnd8m/E7upjQkICkyZN4s477+Tee+/FMAzuvvtupk2bRlRUlDsPyRQn0sd//OMfOBwOHnjgAerq6pyLD4aEhBAaGspll13GXXfdxeDBg4mLi2P+/PnMnDmzWw45uauPgYGBbv+eUaDxIF988QV2u52nn376sCsVtm/fzlNPPcW8efO48MIL6du3L08++WS7/ka7efNmCgoKKCgoYOLEiW22vfLKK84rJLoLd/XR27izj9deey2NjY3cdttt1NXVcfrppzN//nw3HIX53NnHf/7zn/z973/nhhtuwGKxcMYZZ3D77be74zBMd7x9NAyDzz//nIaGBs4999w2r7v55pu55ZZbmDZtGvv37+euu+7CarVy9tlnc+utt3bm4XUad/Vx0qRJbv+esRiGYZzwXkRERERMpDk0IiIi4vEUaERERMTjKdCIiIiIx1OgEREREY+nQCMiIiIeT4FGREREPJ4CjYiIiHg8BRoRERHxeAo0IuIy+/btY8iQIezbt++E92UYBnfeeSejRo3ijDPO4IknnuCKK64A4J133uH0008HYPXq1QwZMuSE309EPJtufSAiXVJ2djZvvvkmixcvZsiQIYSHhzsDzaHS09NZsWKFCRWKSFeiQCMiXVJ1dTUAkydPxmKx/OLzAgICuuVNK0WkYzTkJOKl1q1bx6WXXkpaWhqjRo3i+uuvp6SkhHfeeYdLL72Uhx9+mPT0dE477TSWLVvmfN0VV1zBokWLnK+97LLL2Llz5xHfY8iQIbz33ntMnz6d4cOHc9lll5Gfn3/M2lavXu08GzN06FCeeOKJNkNOP39u65BT65DXp59+yplnnsmIESO48cYbqaysdD5/xYoVnH/++YwcOZJZs2Zx33338X//93/HrOn9998nMzMTm83mfOyTTz7htNNOwzAMrFYr999/P5mZmWRmZvLXv/61zfv+Ur+heQjtkksuYfbs2WRkZPD+++8fsx4RaUuBRsQLVVdXc+ONNzJhwgQ+/PBDlixZQl5eHosXLwZg06ZNbNu2jTfeeIObb76Ze+65p82wzrPPPss555zDO++8Q3x8PDfccANWq/WI7/XEE08wb9483nnnHQ4cOMC//vWvY9aXnp7OE088ATQHkGuvvbZDx/fMM8/wyCOP8Oqrr7Jp0yZefPFFAPLz8/n973/P1KlTeffddxkxYgRLly5t1z7POOMMGhoa+P77752P/fe//2Xq1KlYLBYeeeQRNm/ezHPPPccrr7xCTU0Nf/jDH4Bj9xtg/fr1DBo0iDfffPOwuxGLyLFpyEnECzU0NHDTTTdxzTXXYLFY6N27N2effTYbN24kJSUFi8XCggULiI6OZvDgwaxdu7bNF+3kyZO5+uqrAbjvvvuYNGkSK1eu5KSTTjrsva655hrGjx8PwKWXXtquABEQEECPHj0Ajms4ac6cOYwcORKA888/n02bNgGwbNkyRo4cyU033QTAH/7wB7777rt27TM0NJQpU6awfPlyJk6cSH19PV9//TX//ve/qa+v59VXX+Xtt992ni1asGABmZmZbN++naioqF/sdyuLxcLvf/97goKCOny8IqJAI+KVYmNjueCCC3jppZfYtm0bubm5bN++ndGjRwPQt29foqOjnc8fPnw4r7/+uvPn1ucBhIWF0b9/f3bu3HnEQNO3b982z21qanLHIbXrPbdv386IESPaPHfUqFEcPHiwXfudPn06f/vb35g/fz5fffUVcXFxDB8+nB07dtDU1MQll1zS5vkOh4M9e/YwZMiQo/YbIDo6WmFG5AQo0Ih4oeLiYmbMmEFqaiqnnHIKM2fO5KuvviIrKwsAP7+2vxrsdjs+Pj+NUB9r+6H8/f1dXP2x/dJ7+vr6YhhGm8d+/vPRTJ48Gbvdztq1a/nkk0+YOnUq0Hz8AP/5z38ICQlp85ro6Ohj9hsgMDCw3XWIyOEUaES80GeffUaPHj149tlnnY/9+9//dn657927l9raWkJDQwHYvHkzgwcPdj43Ozvb+e/V1dXk5eV5xFowJ510EuvWrWvz2JYtW+jdu3e7Xh8QEMBZZ53FZ599xsqVK5k9ezYAvXv3xtfXl8rKSoYNGwZAeXk58+bNY+7cuXz77bdH7beInDhNChbxQpGRkRQUFLBq1Sry8/NZvHgxn376qXNib11dHXfffTc7d+7kzTffZPny5Vx22WXO13/wwQe8++677Ny5k3nz5pGUlERmZqZZh9NuM2fOZMOGDSxevJjdu3fzzDPP8MMPPxz1svCfmz59Om+99RYJCQnOIbawsDAuvvhi5s+fz+rVq8nNzeW2225j7969JCcnH7PfInLiFGhEvNDUqVP51a9+xZw5c5gxYwarV6/m9ttvZ+fOnVitVhITE4mNjeWiiy7i+eefZ+HChWRkZDhff/755/P6669z4YUXUltby3PPPXfYMFRX1KtXLx5//HHefvttzj//fNavX88ZZ5zRoWGxzMxMQkNDOe+889o8/n//93+MHz+eOXPmMHPmTPz8/Fi8eDG+vr7H7LeInDiLoXOeInKId955h0WLFvG///3viNuvuOIKxo4dyy233NLJlZ24HTt2YLPZSElJcT52ww03MGLEiHYfT01NjfPy6/YOVYmI++kMjYh4jby8PK655hpWrlzJ/v37WbZsGatWreKss8465msNw2D58uXcddddpKenK8yIdDFd/xyxiHQ7n3zyyVFX583IyOD55593+fueeeaZ5OTkMG/ePMrLy+nfvz+PPvooQ4cOZfbs2Uddk+aee+7hsccew9fXl6efftrltYnIidGQk4h0utraWsrKyn5xe1BQEPHx8Z1YEZSUlFBfX/+L26OjowkLC+vEikSkIxRoRERExONpDo2IiIh4PAUaERER8XgKNCIiIuLxFGhERETE4ynQiIiIiMdToBERERGPp0AjIiIiHk+BRkRERDze/w9EuucK2jUdaQAAAABJRU5ErkJggg==\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "appln.query(\"appln_auth=='WO'\").groupby(\"appln_filing_year\")[\"appln_id\"].nunique().plot(kind=\"line\")" ], "metadata": { "collapsed": false @@ -334,22 +422,10 @@ }, { "cell_type": "code", - "execution_count": 392, + "execution_count": 54, "outputs": [], "source": [ - "appln_pers_f = pd.read_csv(f\"{fromdir}/first-filings-with-persons-raw.csv\", header=None,\n", - " names=[\"appln_id\",\"appln_auth\",\"person_id\",\"invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])\n", - "\n", - "appln_pers_haninfo = pd.read_csv(f\"{outdir}/tls_206_scope.csv\", usecols=[\"person_id\",\"han_id\",\"han_name\",\"psn_sector\"])\n", - "\n", - "appln_pers_haninfo[\"han_name\"] = appln_pers_haninfo[\"han_name\"].str.replace(\"Zhejiang Geely Holding Group Co., Ltd.\",\n", - " \"ZHEJIANG GEELY HOLDINGGROUP CO LTD\")\n", - "\n", - "\n", - "appln_pers_haninfo.loc[appln_pers_haninfo[\"han_name\"]==\"ZHEJIANG GEELY HOLDINGGROUP CO LTD\",\"han_id\"] = 3345915\n", - "# appln_pers_haninfo[\"psn_sector\"] = appln_pers_haninfo[\"psn_sector\"].fillna(\"UNKNOWN\")\n", - "\n", - "appln_pers_f = appln_pers_f.merge(appln_pers_haninfo, on=\"person_id\")" + "ch_auth_pers = appln_pers.query(\"appln_auth=='CN'\")[\"person_ctry_code\"].value_counts(dropna=False).reset_index()\n" ], "metadata": { "collapsed": false @@ -357,19 +433,20 @@ }, { "cell_type": "code", - "execution_count": 393, + "execution_count": 56, "outputs": [ { "data": { - "text/plain": "han_id\n3345915 6\nName: count, dtype: int64" + "text/plain": " person_ctry_code count\n0 UNKNOWN 50476312\n1 CN 79\n2 JP 8\n3 TW 4\n4 DE 4\n5 FR 2", + "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
person_ctry_codecount
0UNKNOWN50476312
1CN79
2JP8
3TW4
4DE4
5FR2
\n
" }, - "execution_count": 393, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "appln_pers_haninfo[appln_pers_haninfo[\"han_name\"]==\"ZHEJIANG GEELY HOLDINGGROUP CO LTD\"][\"han_id\"].value_counts()" + "ch_auth_pers.fillna(\"UNKNOWN\")" ], "metadata": { "collapsed": false @@ -377,12 +454,12 @@ }, { "cell_type": "code", - "execution_count": 394, + "execution_count": 49, "outputs": [], "source": [ - "pers_sector_primary = pers.groupby(\"han_id\", as_index=False)[\"psn_sector\"].agg(\n", - " lambda x: pd.Series.mode(x)[0]).rename(columns={\"psn_sector\":\"psn_sector_primary\"})\n", - "appln_pers_f = appln_pers_f.merge(pers_sector_primary, on='han_id')" + "# appln_ch = appln_pers.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"] == \"CN\").any())\n", + "# appln_scope = appln_ch.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"].isin(scope_countries)).any())\n", + "# appln_scope.sample(100)" ], "metadata": { "collapsed": false @@ -390,16 +467,10 @@ }, { "cell_type": "code", - "execution_count": 395, + "execution_count": 20, "outputs": [], "source": [ - "tls_801 = pd.read_csv(r\"./EU_CH_scope/table_tls801.csv\", low_memory=False)\n", - "# tls_801.head()\n", - "scope_df = tls_801[((tls_801.eu_member==\"Y\")|\n", - " (tls_801.ctry_code == 'NO')|\n", - " (tls_801.ctry_code == 'CH')|\n", - " (tls_801.ctry_code == 'GB'))]\n", - "scope_countries = scope_df[\"ctry_code\"].unique()" + "import numpy as np" ], "metadata": { "collapsed": false @@ -407,28 +478,13 @@ }, { "cell_type": "code", - "execution_count": 396, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1055\n" - ] - } - ], + "execution_count": 23, + "outputs": [], "source": [ + "appln_ch_ids = appln_pers[appln_pers[\"person_ctry_code\"] == \"CN\"][\"appln_id\"].unique()\n", + "appln_eu_ids = appln_pers[appln_pers[\"person_ctry_code\"].isin(scope_countries)][\"appln_id\"].unique()\n", "\n", - "\n", - "# appln_ch = appln_pers.groupby(\"appln_id\").filter(lambda gr: ((gr[\"person_ctry_code\"]==\"CN\").any()|\n", - "# (gr[\"appln_auth\"]==\"CN\")).any())\n", - "# appln_scope = appln_ch.groupby(\"appln_id\").filter(lambda gr: ((gr[\"person_ctry_code\"].isin(scope_countries)).any()|\n", - "# (gr[\"appln_auth\"].isin(scope_countries))).any())\n", - "\n", - "appln_ch = appln_pers_f.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"]==\"CN\").any())\n", - "appln_scope = appln_ch.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"].isin(scope_countries)).any())\n", - "\n", - "print(appln_scope[\"appln_id\"].nunique())" + "appln_scope_ids = np.intersect1d(appln_ch_ids, appln_eu_ids, assume_unique=False)" ], "metadata": { "collapsed": false @@ -436,19 +492,11 @@ }, { "cell_type": "code", - "execution_count": 397, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1055\n" - ] - } - ], + "execution_count": 37, + "outputs": [], "source": [ - "appln_pers_f = appln_scope[appln_scope[\"person_ctry_code\"].isin(list(scope_countries)+[\"CN\"])].copy()\n", - "print(appln_pers_f[\"appln_id\"].nunique())" + "appln_scope = appln_pers[((appln_pers[\"appln_id\"].isin(appln_scope_ids))&\n", + " (appln_pers[\"person_ctry_code\"].isin(list(scope_countries)+[\"CN\"])))]" ], "metadata": { "collapsed": false @@ -456,20 +504,10 @@ }, { "cell_type": "code", - "execution_count": 398, - "outputs": [ - { - "data": { - "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n76 410448968 DE 7067540 0 1 \\\n87 420386087 DE 7067540 0 1 \n88 420386089 DE 7067540 0 1 \n173 337088926 EP 21790 0 1 \n974 410512383 EP 220 0 1 \n... ... ... ... ... ... \n147073 549690891 EP 85841201 1 0 \n147074 549690895 EP 85841201 1 0 \n147075 549690901 EP 85841201 1 0 \n147076 549690897 EP 85841201 1 0 \n147077 549788919 EP 85774895 2 0 \n\n person_name person_ctry_code psn_sector han_id \n76 Evonik Degussa GmbH DE COMPANY 840063 \\\n87 Evonik Degussa GmbH DE COMPANY 840063 \n88 Evonik Degussa GmbH DE COMPANY 840063 \n173 Evonik Degussa GmbH DE COMPANY 840063 \n974 SIEMENS AKTIENGESELLSCHAFT DE COMPANY 2709504 \n... ... ... ... ... \n147073 JONSSON, Tony SE UNKNOWN 185841201 \n147074 JONSSON, Tony SE UNKNOWN 185841201 \n147075 JONSSON, Tony SE UNKNOWN 185841201 \n147076 JONSSON, Tony SE UNKNOWN 185841201 \n147077 TRAN NGUYEN, Johnny SE UNKNOWN 185774895 \n\n han_name psn_sector_primary \n76 EVONIK DEGUSSA GMBH COMPANY \n87 EVONIK DEGUSSA GMBH COMPANY \n88 EVONIK DEGUSSA GMBH COMPANY \n173 EVONIK DEGUSSA GMBH COMPANY \n974 SIEMENS AG COMPANY \n... ... ... \n147073 JONSSON, Tony UNKNOWN \n147074 JONSSON, Tony UNKNOWN \n147075 JONSSON, Tony UNKNOWN \n147076 JONSSON, Tony UNKNOWN \n147077 TRAN NGUYEN, Johnny UNKNOWN \n\n[4367 rows x 11 columns]", - "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codepsn_sectorhan_idhan_namepsn_sector_primary
76410448968DE706754001Evonik Degussa GmbHDECOMPANY840063EVONIK DEGUSSA GMBHCOMPANY
87420386087DE706754001Evonik Degussa GmbHDECOMPANY840063EVONIK DEGUSSA GMBHCOMPANY
88420386089DE706754001Evonik Degussa GmbHDECOMPANY840063EVONIK DEGUSSA GMBHCOMPANY
173337088926EP2179001Evonik Degussa GmbHDECOMPANY840063EVONIK DEGUSSA GMBHCOMPANY
974410512383EP22001SIEMENS AKTIENGESELLSCHAFTDECOMPANY2709504SIEMENS AGCOMPANY
....................................
147073549690891EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, TonyUNKNOWN
147074549690895EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, TonyUNKNOWN
147075549690901EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, TonyUNKNOWN
147076549690897EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, TonyUNKNOWN
147077549788919EP8577489520TRAN NGUYEN, JohnnySEUNKNOWN185774895TRAN NGUYEN, JohnnyUNKNOWN
\n

4367 rows × 11 columns

\n
" - }, - "execution_count": 398, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 45, + "outputs": [], "source": [ - "appln_pers_f" + "appln_pers_haninfo = pd.read_csv(f\"first_round/tls_206_scope_v2.csv\", usecols=[\"person_id\",\"han_id\",\"han_name\",\"psn_sector\"])" ], "metadata": { "collapsed": false @@ -477,39 +515,20 @@ }, { "cell_type": "code", - "execution_count": 399, + "execution_count": 46, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1055\n" - ] - }, { "data": { - "text/plain": " appln_id appln_auth appln_kind filing_year nb_applicants \n114926 405478585 EP A 2013 1 \\\n670680 532677899 EP A 2020 2 \n568605 520224479 EP A 2019 1 \n441101 483520394 FR A 2017 1 \n687085 554756101 DE A 2020 1 \n... ... ... ... ... ... \n235723 443704166 FR A 2015 3 \n670840 532706785 EP A 2020 2 \n415863 486019755 EP A 2017 1 \n608249 520115105 EP A 2019 1 \n753188 549690895 EP A 2021 2 \n\n nb_inventors \n114926 4 \n670680 2 \n568605 2 \n441101 2 \n687085 3 \n... ... \n235723 3 \n670840 2 \n415863 2 \n608249 4 \n753188 1 \n\n[100 rows x 6 columns]", - "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
appln_idappln_authappln_kindfiling_yearnb_applicantsnb_inventors
114926405478585EPA201314
670680532677899EPA202022
568605520224479EPA201912
441101483520394FRA201712
687085554756101DEA202013
.....................
235723443704166FRA201533
670840532706785EPA202022
415863486019755EPA201712
608249520115105EPA201914
753188549690895EPA202121
\n

100 rows × 6 columns

\n
" + "text/plain": "(6584667, 18789)" }, - "execution_count": 399, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "appln_f = pd.read_csv(f\"{fromdir}/first-filings-raw.csv\", header=None,\n", - " names=[\"appln_id\",\"appln_auth\",\"appln_kind\",\"filing_year\",\"nb_applicants\",'nb_inventors'])\n", - "\n", - "appln_f[\"filing_year\"] = appln_f[\"filing_year\"].astype(int)\n", - "\n", - "appln_f = appln_f[appln_f[\"filing_year\"]>2010]\n", - "\n", - "appln_f[\"appln_auth\"] = appln_f[\"appln_auth\"].str.replace(\"MA\",\"CN\")\n", - "\n", - "appln_f = appln_f[appln_f[\"appln_id\"].isin(appln_scope['appln_id'])]\n", - "print(appln_f[\"appln_id\"].nunique())\n", "\n", - "appln_f.sample(100)" + "appln_pers_haninfo[\"han_id\"].nunique(), appln_scope[\"han_id\"].nunique()" ], "metadata": { "collapsed": false @@ -517,37 +536,53 @@ }, { "cell_type": "code", - "execution_count": 399, + "execution_count": 53, "outputs": [], - "source": [], + "source": [ + "han_sect = appln_pers_haninfo[[\"han_id\",\"psn_sector\"]].groupby(['han_id'])['psn_sector'].agg(pd.Series.mode)" + ], "metadata": { "collapsed": false } }, { "cell_type": "code", - "execution_count": 399, + "execution_count": 59, "outputs": [], - "source": [], + "source": [ + "han_sect = han_sect.reset_index()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 62, + "outputs": [], + "source": [ + "han_sect[\"psn_sector\"] = han_sect[\"psn_sector\"].apply(lambda y: \"UNKNOWN\" if len(y)==0 else y)" + ], "metadata": { "collapsed": false } }, { "cell_type": "code", - "execution_count": 400, + "execution_count": 63, "outputs": [ { "data": { - "text/plain": "appln_kind\nA 1059\nU 7\nName: count, dtype: int64" + "text/plain": " han_id psn_sector\n3976016 167526859 UNKNOWN\n1544707 150315846 UNKNOWN\n1031384 144076709 UNKNOWN\n251660 114916086 COMPANY\n4256551 170565063 UNKNOWN\n5436213 179983755 UNKNOWN\n2686293 159907707 UNKNOWN\n3568687 164831483 UNKNOWN\n5139105 177983993 UNKNOWN\n968579 143805259 UNKNOWN", + "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
han_idpsn_sector
3976016167526859UNKNOWN
1544707150315846UNKNOWN
1031384144076709UNKNOWN
251660114916086COMPANY
4256551170565063UNKNOWN
5436213179983755UNKNOWN
2686293159907707UNKNOWN
3568687164831483UNKNOWN
5139105177983993UNKNOWN
968579143805259UNKNOWN
\n
" }, - "execution_count": 400, + "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "appln_f[\"appln_kind\"].value_counts()" + "han_sect.sample(10)" ], "metadata": { "collapsed": false @@ -555,10 +590,10 @@ }, { "cell_type": "code", - "execution_count": 401, + "execution_count": 64, "outputs": [], "source": [ - "# Co-patents per year" + "appln_scope = appln_scope.merge(han_sect, on=\"han_id\")" ], "metadata": { "collapsed": false @@ -566,19 +601,1013 @@ }, { "cell_type": "code", - "execution_count": 430, + "execution_count": 38, "outputs": [ { "data": { - "application/vnd.plotly.v1+json": { - "data": [ - { - "hovertemplate": "Year:%{x:d}
Number of co-publications:%{y:d}", - "legendgroup": "", - "line": { - "color": "#636efa", - "dash": "solid" - }, + "text/plain": "(53909, 9)" + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.shape" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 65, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n11387 507242787 WO 5262071 0 1 \\\n8226 552675100 WO 5318110 0 1 \n22721 376063059 WO 25690230 3 4 \n48806 540543104 WO 51860538 2 3 \n52709 575543924 WO 63630536 2 0 \n42582 533357722 WO 47722168 3 0 \n15378 576018852 WO 50069447 0 3 \n42176 528369260 WO 50255341 3 4 \n46235 524262213 WO 73281459 5 0 \n51521 567061143 WO 71117487 3 0 \n\n person_name person_ctry_code han_id \n11387 Telefonaktiebolaget LM Ericsson (publ) SE 13378 \\\n8226 Huawei Technologies Co., Ltd. CN 1337324 \n22721 ZOU, YANMING CN 125690230 \n48806 XIE, JIEWEI CN 151860538 \n52709 LI, Xiangyang CN 163630536 \n42582 YANG, WENLONG CN 147722168 \n15378 NOKIA TECHNOLOGIES OY FI 2562294 \n42176 TIAN, KAI CN 150255341 \n46235 FAN, Cunfei CN 173281459 \n51521 Lin, Shengdie CN 171117487 \n\n han_name psn_sector \n11387 TELEFON AB LM ERICSSON PUBL COMPANY \n8226 HUAWEI TECH CO LTD COMPANY \n22721 ZOU, YANMING INDIVIDUAL \n48806 XIE, JIEWEI INDIVIDUAL \n52709 LI, Xiangyang INDIVIDUAL \n42582 YANG, WENLONG INDIVIDUAL \n15378 NOKIA TECH LTD COMPANY \n42176 TIAN, KAI INDIVIDUAL \n46235 FAN, Cunfei UNKNOWN \n51521 Lin, Shengdie UNKNOWN ", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codehan_idhan_namepsn_sector
11387507242787WO526207101Telefonaktiebolaget LM Ericsson (publ)SE13378TELEFON AB LM ERICSSON PUBLCOMPANY
8226552675100WO531811001Huawei Technologies Co., Ltd.CN1337324HUAWEI TECH CO LTDCOMPANY
22721376063059WO2569023034ZOU, YANMINGCN125690230ZOU, YANMINGINDIVIDUAL
48806540543104WO5186053823XIE, JIEWEICN151860538XIE, JIEWEIINDIVIDUAL
52709575543924WO6363053620LI, XiangyangCN163630536LI, XiangyangINDIVIDUAL
42582533357722WO4772216830YANG, WENLONGCN147722168YANG, WENLONGINDIVIDUAL
15378576018852WO5006944703NOKIA TECHNOLOGIES OYFI2562294NOKIA TECH LTDCOMPANY
42176528369260WO5025534134TIAN, KAICN150255341TIAN, KAIINDIVIDUAL
46235524262213WO7328145950FAN, CunfeiCN173281459FAN, CunfeiUNKNOWN
51521567061143WO7111748730Lin, ShengdieCN171117487Lin, ShengdieUNKNOWN
\n
" + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.sample(10)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 111, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n124 419052362 CN 5361204 0 1 \\\n137 419052362 CN 51988464 1 0 \n\n person_name person_ctry_code han_id \n124 Schneider Electric Industries SAS FR 808003 \\\n137 JUZHONG SONG CN 151988464 \n\n han_name psn_sector \n124 SCHNEIDER ELECT IND SAS COMPANY \n137 JUZHONG SONG UNKNOWN ", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codehan_idhan_namepsn_sector
124419052362CN536120401Schneider Electric Industries SASFR808003SCHNEIDER ELECT IND SASCOMPANY
137419052362CN5198846410JUZHONG SONGCN151988464JUZHONG SONGUNKNOWN
\n
" + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.query(\"appln_auth=='CN'\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 112, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n1568550 419052362 CN 201210551425 A 2012-12-18 \\\n\n appln_filing_year appln_nr_original ipr_type receiving_office \n1568550 2012 2012105514252 PI NaN \\\n\n internat_appln_id ... earliest_pat_publn_id granted docdb_family_id \n1568550 0 ... 419052363 Y 49886800 \\\n\n inpadoc_family_id docdb_family_size nb_citing_docdb_fam \n1568550 413446088 4 15 \\\n\n nb_applicants nb_inventors is_prior is_pct \n1568550 1 1 1 0 \n\n[1 rows x 28 columns]", + "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
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventorsis_prioris_pct
1568550419052362CN201210551425A2012-12-1820122012105514252PINaN0...419052363Y498868004134460884151110
\n

1 rows × 28 columns

\n
" + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln.query('appln_id==419052362')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 85, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n11387 507242787 WO 5262071 0 1 \\\n22810 507242787 WO 43700357 1 2 \n\n person_name person_ctry_code han_id \n11387 Telefonaktiebolaget LM Ericsson (publ) SE 13378 \\\n22810 WEN, GAN CN 143700357 \n\n han_name psn_sector \n11387 TELEFON AB LM ERICSSON PUBL COMPANY \n22810 WEN, GAN INDIVIDUAL ", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codehan_idhan_namepsn_sector
11387507242787WO526207101Telefonaktiebolaget LM Ericsson (publ)SE13378TELEFON AB LM ERICSSON PUBLCOMPANY
22810507242787WO4370035712WEN, GANCN143700357WEN, GANINDIVIDUAL
\n
" + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.query('appln_id==507242787')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 95, + "outputs": [ + { + "data": { + "text/plain": "" + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": "
", + "image/png": "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YFmIHywsJCxyyKhMrsgpTr9+/RAaGopbt27pve3rKVnIzi3Qe7tERERkXKIoct58800AwI0bN4wcCRERaUM5oF9p9i1NG2RchsihNm2JoshRPmuTk1M4tPeaNWuwcePGIttdunSpTOMiIqKS6et5KBcX7Z+3JNNirByKosjJzs4GADg4FM5CGxISgrCwMGOGREREryGT5UAuV+i8v0RS+MsxPT2L0zqIlCFyqGxTE6Iocv766y8AQN26dQEAjo6O8PLyMmZIRESkAX38YhME/bRDxmOsHIqiyNm1axcaNmwIT09Pvbddr6qUvauIiPSojruDsUMgAmCCRU5WVhZSU1MhCAJkMhl27tyJgwcPqj2D8/TpU6SmphbZ187OTnVLS1M7R7YudcxERKSuQK5g93EyOokgmM5FwJdHPK5cuTIaNGiAkSNHokWLFgBePeJxnz59MG/ePK2OKZPllC7oEjg72xusbSobzKH4MYfGo48RjyUSwNVVirQ0PpMjVobIobJNTZjUlZykpKTXbpOQkKDXY8rlCr1/eJTd2wzRNpUN5lD8mEMi4qQuREREZJZY5BAREZFZYpFDREREZolFDhEREZklFjlERERklkyqdxVQOAbO2rVrcejQIdy/fx92dnYICAhAZGQk6tati+TkZISHh6u2t7S0RJUqVTBgwAAMGzZM6+NZWhquzjNk21Q2mEPxYw7V6aNrN5FYmFSRk5OTgwEDBuDp06eYMmUK6tWrB5lMhq1btyIkJAR79+5VbXvq1CkAQH5+Pq5du4ZJkyahWrVqCA4O1uqY+ppArqzbprLBHIofc6iuQK5AZsZTFjpULphUkbNy5Uqkp6fj4MGDqFSpEgCgevXqiImJQUpKCjZv3oygoCAAgJubm2q/atWqoWvXrjh48KDWRU6f+DOc1oGIyoU67g5YFuIHCwsJixwqF0ymyFEoFNizZw+GDRumKnBetGjRIlSqVAmXL18udv+KFSvi8ePHWh/3ekoWsnMLtN6PiIiITJvJFDm3b9/G48ePVdM3vMzd3b3EfW/cuIHExETMmDHDUOEREZkV5YjQpkwZoxhipeIZIofatGUyRY5MJgMAODo6qpadOXMGY8aMUf1crVo1zJw5EwDg5+cHACgoKEBeXh78/PzQtm3bMoyYiEicxPackouLZvMUkekyVg5NpshR3qJ68uSJapmf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\n" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "appln_scope.groupby(\"appln_auth\")[\"appln_id\"].nunique().sort_values(ascending=True).plot(kind=\"barh\", logx=True, title='Number of patents produced in EU-China collaborations\\n(by location, 2011-2022)')" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 124, + "outputs": [], + "source": [ + "appln_scope.groupby(\"appln_auth\")[\"appln_id\"].nunique().sort_values(ascending=True).reset_index().merge(tls_801, left_on=\"appln_auth\",right_on=\"ctry_code\").to_excel(\"ds1.xlsx\", index=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 119, + "outputs": [ + { + "data": { + "text/plain": " ctry_code iso_alpha3 st3_name organisation_flag \n0 AD AND Andorra \\\n1 AE ARE United Arab Emirates \n2 AF AFG Afghanistan \n3 AG ATG Antigua and Barbuda \n4 AI AIA Anguilla \n.. ... ... ... ... \n235 YE YEM Yemen \n236 YU YUG Yugoslavia/Serbia and Montenegro \n237 ZA ZAF South Africa \n238 ZM ZMB Zambia \n239 ZW ZWE Zimbabwe \n\n continent eu_member epo_member oecd_member discontinued \n0 Europe \n1 Asia \n2 Asia \n3 North America \n4 North America \n.. ... ... ... ... ... \n235 Asia \n236 Europe Y \n237 Africa \n238 Africa \n239 Africa \n\n[240 rows x 9 columns]", + "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
ctry_codeiso_alpha3st3_nameorganisation_flagcontinenteu_memberepo_memberoecd_memberdiscontinued
0ADANDAndorraEurope
1AEAREUnited Arab EmiratesAsia
2AFAFGAfghanistanAsia
3AGATGAntigua and BarbudaNorth America
4AIAIAAnguillaNorth America
..............................
235YEYEMYemenAsia
236YUYUGYugoslavia/Serbia and MontenegroEuropeY
237ZAZAFSouth AfricaAfrica
238ZMZMBZambiaAfrica
239ZWZWEZimbabweAfrica
\n

240 rows × 9 columns

\n
" + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tls_801" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 40, + "outputs": [ + { + "data": { + "text/plain": "appln_auth\nWO 43113\nEP 4340\nDE 3189\nGB 1375\nFR 1042\nNL 167\nES 165\nLU 98\nFI 69\nRO 53\nPL 49\nMA 42\nCZ 40\nCH 38\nSE 33\nAT 27\nDK 21\nBE 19\nLT 15\nPT 9\nIE 3\nCN 2\nName: count, dtype: int64" + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope[\"appln_auth\"].value_counts()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [], + "source": [ + "outdir=\"EU_CH_scope\"\n", + "\n", + "appln = pd.read_csv(f\"{outdir}/tls_201_scope.csv\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [ + { + "data": { + "text/plain": "65136" + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(appln)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [ + { + "data": { + "text/plain": "24638" + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(appln[appln[\"appln_nr\"]==appln[\"appln_nr_original\"]])" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n59726 568635720 DE 102021125268 A 2021-09-29 \\\n12204 421520760 WO 2013071985 W 2013-02-28 \n41470 519271319 US 201729627257 F 2017-11-24 \n21565 456717830 TW 103144389 A 2014-12-18 \n39245 513507702 TW 107123773 A 2018-07-10 \n15067 437950387 CA 2882927 A 2013-09-11 \n2331 365201373 US 201113309201 A 2011-12-01 \n42558 521483818 WO 2019079482 W 2019-10-29 \n54938 552149434 WO 2021065120 W 2021-06-07 \n63211 580342075 CO 2022012975 A 2022-09-13 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n59726 2021 102021125268 PI \\\n12204 2013 CN2013/071985 PI CN \n41470 2017 29627257 DP \n21565 2014 103144389 PI \n39245 2018 107123773 PI \n15067 2013 2882927 PI \n2331 2011 13309201 PI \n42558 2019 EP2019/079482 PI EP \n54938 2021 EP2021/065120 PI EP \n63211 2022 NC2022/0012975 PI \n\n internat_appln_id ... earliest_publn_date earliest_publn_year \n59726 0 ... 2022-03-31 2022 \\\n12204 0 ... 2014-09-04 2014 \n41470 0 ... 2019-09-17 2019 \n21565 0 ... 2016-03-16 2016 \n39245 0 ... 2019-03-01 2019 \n15067 410236729 ... 2014-03-20 2014 \n2331 332837342 ... 2012-07-19 2012 \n42558 0 ... 2021-05-06 2021 \n54938 0 ... 2022-12-15 2022 \n63211 901633858 ... 2022-09-30 2022 \n\n earliest_pat_publn_id granted docdb_family_id inpadoc_family_id \n59726 568635721 N 80624731 568635720 \\\n12204 421520761 N 51427475 421502712 \n41470 519271320 Y 67875052 519271319 \n21565 456717831 Y 52302387 425594478 \n39245 513507703 N 59501519 481695409 \n15067 437950388 Y 49165740 378704661 \n2331 365309255 Y 46490250 332836199 \n42558 550107980 N 68468669 521483818 \n54938 584644443 N 76355503 552149434 \n63211 580342076 N 74870863 547347540 \n\n docdb_family_size nb_citing_docdb_fam nb_applicants nb_inventors \n59726 3 0 1 6 \n12204 5 0 2 1 \n41470 1 0 1 2 \n21565 46 6 1 7 \n39245 2 0 1 6 \n15067 35 2 2 8 \n2331 1 3 7 6 \n42558 1 0 2 2 \n54938 1 0 2 2 \n63211 14 0 1 19 \n\n[10 rows x 26 columns]", + "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_publn_dateearliest_publn_yearearliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventors
59726568635720DE102021125268A2021-09-292021102021125268PI0...2022-03-312022568635721N806247315686357203016
12204421520760WO2013071985W2013-02-282013CN2013/071985PICN0...2014-09-042014421520761N514274754215027125021
41470519271319US201729627257F2017-11-24201729627257DP0...2019-09-172019519271320Y678750525192713191012
21565456717830TW103144389A2014-12-182014103144389PI0...2016-03-162016456717831Y5230238742559447846617
39245513507702TW107123773A2018-07-102018107123773PI0...2019-03-012019513507703N595015194816954092016
15067437950387CA2882927A2013-09-1120132882927PI410236729...2014-03-202014437950388Y4916574037870466135228
2331365201373US201113309201A2011-12-01201113309201PI332837342...2012-07-192012365309255Y464902503328361991376
42558521483818WO2019079482W2019-10-292019EP2019/079482PIEP0...2021-05-062021550107980N684686695214838181022
54938552149434WO2021065120W2021-06-072021EP2021/065120PIEP0...2022-12-152022584644443N763555035521494341022
63211580342075CO2022012975A2022-09-132022NC2022/0012975PI901633858...2022-09-302022580342076N74870863547347540140119
\n

10 rows × 26 columns

\n
" + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln.sample(10)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 7, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth appln_nr appln_kind appln_filing_date \n24368 472782127 EP 16808728 A 2016-11-15 \\\n21272 456135686 EP 14905672 A 2014-11-15 \n21690 456935297 CA 2932236 A 2014-12-17 \n23267 469974134 TW 104128490 A 2015-08-28 \n24227 472426897 TW 105101423 A 2016-01-18 \n... ... ... ... ... ... \n5372 405824062 TW 101108520 A 2012-03-13 \n15441 438564193 EP 14847669 A 2014-09-18 \n27761 481859764 TW 105133993 A 2016-10-21 \n23898 471377037 CL 2015002557 A 2015-09-09 \n20776 451149018 TW 104112868 A 2015-04-22 \n\n appln_filing_year appln_nr_original ipr_type receiving_office \n24368 2016 16808728 PI \\\n21272 2014 14905672 PI \n21690 2014 2932236 PI \n23267 2015 104128490 PI \n24227 2016 105101423 PI \n... ... ... ... ... \n5372 2012 101108520 PI \n15441 2014 14847669 PI \n27761 2016 105133993 PI \n23898 2015 2015002557 PI \n20776 2015 104112868 PI \n\n internat_appln_id ... earliest_publn_date earliest_publn_year \n24368 471904726 ... 2018-09-26 2018 \\\n21272 456128773 ... 2017-09-20 2017 \n21690 424542770 ... 2015-07-09 2015 \n23267 0 ... 2016-07-16 2016 \n24227 0 ... 2016-09-01 2016 \n... ... ... ... ... \n5372 0 ... 2013-01-01 2013 \n15441 438547499 ... 2016-08-03 2016 \n27761 0 ... 2017-05-01 2017 \n23898 0 ... 2016-08-26 2016 \n20776 0 ... 2016-01-16 2016 \n\n earliest_pat_publn_id granted docdb_family_id inpadoc_family_id \n24368 498806476 N 57517914 471904726 \\\n21272 482714919 Y 55953638 456128773 \n21690 456935298 N 49876509 424542770 \n23267 469974135 Y 54238507 444673843 \n24227 472426898 Y 52358602 447591949 \n... ... ... ... ... \n5372 405856720 N 45937460 352022356 \n15441 457602632 N 52742141 438547499 \n27761 481859765 Y 58562247 471178388 \n23898 471377038 N 51537508 421989017 \n20776 451149019 N 54147239 444402812 \n\n docdb_family_size nb_citing_docdb_fam nb_applicants nb_inventors \n24368 3 7 1 4 \n21272 17 35 1 6 \n21690 5 6 2 4 \n23267 49 51 1 13 \n24227 8 11 1 7 \n... ... ... ... ... \n5372 12 13 1 5 \n15441 4 1 1 4 \n27761 22 24 1 4 \n23898 22 9 3 10 \n20776 5 6 1 2 \n\n[100 rows x 26 columns]", + "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
appln_idappln_authappln_nrappln_kindappln_filing_dateappln_filing_yearappln_nr_originalipr_typereceiving_officeinternat_appln_id...earliest_publn_dateearliest_publn_yearearliest_pat_publn_idgranteddocdb_family_idinpadoc_family_iddocdb_family_sizenb_citing_docdb_famnb_applicantsnb_inventors
24368472782127EP16808728A2016-11-15201616808728PI471904726...2018-09-262018498806476N575179144719047263714
21272456135686EP14905672A2014-11-15201414905672PI456128773...2017-09-202017482714919Y55953638456128773173516
21690456935297CA2932236A2014-12-1720142932236PI424542770...2015-07-092015456935298N498765094245427705624
23267469974134TW104128490A2015-08-282015104128490PI0...2016-07-162016469974135Y542385074446738434951113
24227472426897TW105101423A2016-01-182016105101423PI0...2016-09-012016472426898Y5235860244759194981117
..................................................................
5372405824062TW101108520A2012-03-132012101108520PI0...2013-01-012013405856720N45937460352022356121315
15441438564193EP14847669A2014-09-18201414847669PI438547499...2016-08-032016457602632N527421414385474994114
27761481859764TW105133993A2016-10-212016105133993PI0...2017-05-012017481859765Y58562247471178388222414
23898471377037CL2015002557A2015-09-0920152015002557PI0...2016-08-262016471377038N51537508421989017229310
20776451149018TW104112868A2015-04-222015104112868PI0...2016-01-162016451149019N541472394444028125612
\n

100 rows × 26 columns

\n
" + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln[appln[\"appln_nr\"]==appln[\"appln_nr_original\"]].sample(100)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 8, + "outputs": [], + "source": [ + "\n", + "appln_title = pd.read_csv(f\"{outdir}/tls_202_scope.csv\")\n", + "\n", + "pers = pd.read_csv(f\"{outdir}/tls_206_scope.csv\")\n", + "pers['psn_sector'] = pers['psn_sector'].fillna(\"UNKNOWN\")\n", + "\n", + "appln_pers = pd.read_csv(f\"{outdir}/tls_207_scope.csv\")\n", + "\n", + "appln_cpc = pd.read_csv(f\"{outdir}/tls_224_scope.csv\")\n", + "\n", + "cpc_def = pd.read_csv(\"CPC_data/cpc_defs.csv\", low_memory=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 9, + "outputs": [ + { + "data": { + "text/plain": " person_id person_name person_name_orig_lg \n70690 54633600 LONG, HUOJUN LONG, HUOJUN \\\n67675 53995974 ACCOU, BRUNO ACCOU, BRUNO \n116777 81591947 RAMOS, Rita RAMOS, Rita \n94905 71114319 VERSALIS S.P.A. VERSALIS S.P.A. \n104848 74737285 ISAKSSON, Björn ISAKSSON, Björn \n123893 83424775 LIU, Qian LIU, Qian \n29588 40825214 MELEY, JEAN-PIERRE MELEY, JEAN-PIERRE \n106912 76993952 PENG-POEHLER, Xuyuan PENG-POEHLER, Xuyuan \n78798 56657638 TONG, Zhaoyang TONG, Zhaoyang \n10578 11967242 Dai, Chenglong Dai, Chenglong \n\n person_address person_ctry_code \n70690 SHANGHAI CN \\\n67675 Sint Truidensestwg 263A B-3350 Linter BE BE \n116777 Novartis Pharma AG, Postfach, 4002 Basel, SUIZA PT \n94905 IT IT \n104848 Mölndal SE \n123893 Otelfingen CH \n29588 NaN FR \n106912 NaN DE \n78798 Tyco Electronics (Shanghai) Co., Ltd.,F/G Sect... CN \n10578 Shenzhen CN \n\n nuts nuts_level doc_std_name_id doc_std_name psn_id \n70690 NaN 9 1937752 SUN XIAO 19885311 \\\n67675 BE 0 2145736 ACCOU BRUNO 245616 \n116777 PT 0 1921587 RAMOS RITA 26605720 \n94905 IT 0 255948 VERSALIS SPA 34028198 \n104848 SE 0 21757791 ISAKSSON BJÖRN 14166564 \n123893 CH 0 18631517 QIAO NING 183424775 \n29588 FR 0 178196 MELEY JEAN-PIERRE 21635951 \n106912 DE 0 34255238 PENG-POEHLER XUYUAN 25270057 \n78798 NaN 9 2067106 TONG ZHAOYANG 32942098 \n10578 NaN 9 4323331 DAI CHENGLONG 6018020 \n\n psn_name psn_level psn_sector han_id \n70690 LONG, HUOJUN 0 UNKNOWN 154633600 \\\n67675 ACCOU, BRUNO 0 UNKNOWN 153995974 \n116777 RAMOS, RITA 0 UNKNOWN 181591947 \n94905 VERSALIS 1 COMPANY 3508224 \n104848 ISAKSSON, BJÖRN 0 UNKNOWN 174737285 \n123893 LIU, Qian 0 UNKNOWN 183424775 \n29588 MELEY, JEAN-PIERRE 0 UNKNOWN 140825214 \n106912 PENG-POEHLER, XUYUAN 0 UNKNOWN 176993952 \n78798 TONG, ZHAOYANG 0 UNKNOWN 156657638 \n10578 DAI, CHENGLONG 1 INDIVIDUAL 111967242 \n\n han_name han_harmonized \n70690 LONG, HUOJUN 0 \n67675 ACCOU, BRUNO 0 \n116777 RAMOS, Rita 0 \n94905 VERSALIS SPA 2 \n104848 ISAKSSON, Björn 0 \n123893 LIU, Qian 0 \n29588 MELEY, JEAN-PIERRE 0 \n106912 PENG-POEHLER, Xuyuan 0 \n78798 TONG, Zhaoyang 0 \n10578 Dai, Chenglong 0 ", + "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
person_idperson_nameperson_name_orig_lgperson_addressperson_ctry_codenutsnuts_leveldoc_std_name_iddoc_std_namepsn_idpsn_namepsn_levelpsn_sectorhan_idhan_namehan_harmonized
7069054633600LONG, HUOJUNLONG, HUOJUNSHANGHAICNNaN91937752SUN XIAO19885311LONG, HUOJUN0UNKNOWN154633600LONG, HUOJUN0
6767553995974ACCOU, BRUNOACCOU, BRUNOSint Truidensestwg 263A B-3350 Linter BEBEBE02145736ACCOU BRUNO245616ACCOU, BRUNO0UNKNOWN153995974ACCOU, BRUNO0
11677781591947RAMOS, RitaRAMOS, RitaNovartis Pharma AG, Postfach, 4002 Basel, SUIZAPTPT01921587RAMOS RITA26605720RAMOS, RITA0UNKNOWN181591947RAMOS, Rita0
9490571114319VERSALIS S.P.A.VERSALIS S.P.A.ITITIT0255948VERSALIS SPA34028198VERSALIS1COMPANY3508224VERSALIS SPA2
10484874737285ISAKSSON, BjörnISAKSSON, BjörnMölndalSESE021757791ISAKSSON BJÖRN14166564ISAKSSON, BJÖRN0UNKNOWN174737285ISAKSSON, Björn0
12389383424775LIU, QianLIU, QianOtelfingenCHCH018631517QIAO NING183424775LIU, Qian0UNKNOWN183424775LIU, Qian0
2958840825214MELEY, JEAN-PIERREMELEY, JEAN-PIERRENaNFRFR0178196MELEY JEAN-PIERRE21635951MELEY, JEAN-PIERRE0UNKNOWN140825214MELEY, JEAN-PIERRE0
10691276993952PENG-POEHLER, XuyuanPENG-POEHLER, XuyuanNaNDEDE034255238PENG-POEHLER XUYUAN25270057PENG-POEHLER, XUYUAN0UNKNOWN176993952PENG-POEHLER, Xuyuan0
7879856657638TONG, ZhaoyangTONG, ZhaoyangTyco Electronics (Shanghai) Co., Ltd.,F/G Sect...CNNaN92067106TONG ZHAOYANG32942098TONG, ZHAOYANG0UNKNOWN156657638TONG, Zhaoyang0
1057811967242Dai, ChenglongDai, ChenglongShenzhenCNNaN94323331DAI CHENGLONG6018020DAI, CHENGLONG1INDIVIDUAL111967242Dai, Chenglong0
\n
" + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pers.sample(10)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 10, + "outputs": [ + { + "data": { + "text/plain": " cpc_id cpc_name \n0 A HUMAN NECESSITIES \\\n1 A01 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n2 A01B SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n3 A01B1/00 Hand tools (edge trimmers for lawns A01G3/06 ... \n4 A01B1/02 Spades; Shovels {(hand-operated dredgers E02F3... \n... ... ... \n260486 Y10T483/1873 Indexing matrix \n260487 Y10T483/1882 Rotary disc \n260488 Y10T483/1891 Chain or belt \n260489 Y10T483/19 Miscellaneous \n260490 NaN NaN \n\n section class subclass group main_group cpc_version \n0 A NaN NaN NaN NaN 2023 \\\n1 A 1.0 NaN NaN NaN 2023 \n2 A 1.0 B NaN NaN 2023 \n3 A 1.0 B 1.0 0.0 2023 \n4 A 1.0 B 1.0 2.0 2023 \n... ... ... ... ... ... ... \n260486 Y 10.0 T 483.0 1873.0 2023 \n260487 Y 10.0 T 483.0 1882.0 2023 \n260488 Y 10.0 T 483.0 1891.0 2023 \n260489 Y 10.0 T 483.0 19.0 2023 \n260490 NaN NaN NaN NaN NaN 2022 \n\n version https://git-lfs.github.com/spec/v1 \n0 NaN \\\n1 NaN \n2 NaN \n3 NaN \n4 NaN \n... ... \n260486 NaN \n260487 NaN \n260488 NaN \n260489 NaN \n260490 oid sha256:f138d6bdf2939ba576b96b633d81366123b... \n\n cpc_taxonomy \n0 [('A', 'HUMAN NECESSITIES')] \\\n1 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n2 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n3 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n4 [('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT... \n... ... \n260486 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260487 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260488 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260489 [('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D... \n260490 [] \n\n cpc_fullname \n0 HUMAN NECESSITIES \\\n1 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n2 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n3 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n4 HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM... \n... ... \n260486 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260487 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260488 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260489 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260490 NaN \n\n tax_level_0 \n0 HUMAN NECESSITIES \\\n1 HUMAN NECESSITIES \n2 HUMAN NECESSITIES \n3 HUMAN NECESSITIES \n4 HUMAN NECESSITIES \n... ... \n260486 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260487 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260488 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260489 GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME... \n260490 NaN \n\n tax_level_1 \n0 NaN \\\n1 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n2 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n3 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n4 AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI... \n... ... \n260486 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260487 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260488 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260489 TECHNICAL SUBJECTS COVERED BY FORMER USPC \n260490 NaN \n\n tax_level_2 \n0 NaN \\\n1 NaN \n2 SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n3 SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n4 SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS... \n... ... \n260486 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260487 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260488 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260489 TECHNICAL SUBJECTS COVERED BY FORMER US CLASSI... \n260490 NaN \n\n tax_level_3 tax_level_4 \n0 NaN NaN \\\n1 NaN NaN \n2 NaN NaN \n3 Hand tools (edge trimmers for lawns A01G3/06 ... NaN \n4 Spades; Shovels {(hand-operated dredgers E02F3... NaN \n... ... ... \n260486 Tool transfer to or from matrix Indexing matrix \n260487 Tool transfer to or from matrix Rotary disc \n260488 Tool transfer to or from matrix Chain or belt \n260489 Miscellaneous NaN \n260490 NaN NaN \n\n tax_level_5 tax_level_6 tax_level_7 data_scope \n0 NaN NaN NaN False \n1 NaN NaN NaN False \n2 NaN NaN NaN False \n3 NaN NaN NaN False \n4 NaN NaN NaN False \n... ... ... ... ... \n260486 NaN NaN NaN False \n260487 NaN NaN NaN False \n260488 NaN NaN NaN False \n260489 NaN NaN NaN False \n260490 NaN NaN NaN False \n\n[260491 rows x 20 columns]", + "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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
cpc_idcpc_namesectionclasssubclassgroupmain_groupcpc_versionversion https://git-lfs.github.com/spec/v1cpc_taxonomycpc_fullnametax_level_0tax_level_1tax_level_2tax_level_3tax_level_4tax_level_5tax_level_6tax_level_7data_scope
0AHUMAN NECESSITIESANaNNaNNaNNaN2023NaN[('A', 'HUMAN NECESSITIES')]HUMAN NECESSITIESHUMAN NECESSITIESNaNNaNNaNNaNNaNNaNNaNFalse
1A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...A1.0NaNNaNNaN2023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...NaNNaNNaNNaNNaNNaNFalse
2A01BSOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...A1.0BNaNNaN2023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...NaNNaNNaNNaNNaNFalse
3A01B1/00Hand tools (edge trimmers for lawns A01G3/06 ...A1.0B1.00.02023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...Hand tools (edge trimmers for lawns A01G3/06 ...NaNNaNNaNNaNFalse
4A01B1/02Spades; Shovels {(hand-operated dredgers E02F3...A1.0B1.02.02023NaN[('A', 'HUMAN NECESSITIES'), ('A01', 'AGRICULT...HUMAN NECESSITIES<>AGRICULTURE; FORESTRY; ANIM...HUMAN NECESSITIESAGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTI...SOIL WORKING IN AGRICULTURE OR FORESTRY; PARTS...Spades; Shovels {(hand-operated dredgers E02F3...NaNNaNNaNNaNFalse
...............................................................
260486Y10T483/1873Indexing matrixY10.0T483.01873.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...Tool transfer to or from matrixIndexing matrixNaNNaNNaNFalse
260487Y10T483/1882Rotary discY10.0T483.01882.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...Tool transfer to or from matrixRotary discNaNNaNNaNFalse
260488Y10T483/1891Chain or beltY10.0T483.01891.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...Tool transfer to or from matrixChain or beltNaNNaNNaNFalse
260489Y10T483/19MiscellaneousY10.0T483.019.02023NaN[('Y', 'GENERAL TAGGING OF NEW TECHNOLOGICAL D...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPME...TECHNICAL SUBJECTS COVERED BY FORMER USPCTECHNICAL SUBJECTS COVERED BY FORMER US CLASSI...MiscellaneousNaNNaNNaNNaNFalse
260490NaNNaNNaNNaNNaNNaNNaN2022oid sha256:f138d6bdf2939ba576b96b633d81366123b...[]NaNNaNNaNNaNNaNNaNNaNNaNNaNFalse
\n

260491 rows × 20 columns

\n
" + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cpc_def" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [ + { + "data": { + "text/plain": " appln_id cpc_class_symbol\n48451 408996326 B01J 35/1019\n361399 521927284 H04M 15/785\n410341 535434338 H04L 5/0048\n447944 546323648 H04L 5/005\n128095 441829683 H01L2924/12041\n183546 470030298 H04L 1/0005\n74962 416447093 B65H2404/1119\n382818 527400811 A61P 21/00\n411680 535860118 A61K 8/365\n289902 500408460 A61K 8/87", + "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
appln_idcpc_class_symbol
48451408996326B01J 35/1019
361399521927284H04M 15/785
410341535434338H04L 5/0048
447944546323648H04L 5/005
128095441829683H01L2924/12041
183546470030298H04L 1/0005
74962416447093B65H2404/1119
382818527400811A61P 21/00
411680535860118A61K 8/365
289902500408460A61K 8/87
\n
" + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_cpc.sample(10)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 12, + "outputs": [ + { + "data": { + "text/plain": "325243" + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(appln_pers)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [ + { + "data": { + "text/plain": "65136" + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(appln)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [], + "source": [ + "# Number of collaborative applications\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [], + "source": [ + "record_col = \"appln_id\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 16, + "outputs": [ + { + "data": { + "text/plain": "'C:\\\\Users\\\\radvanyi\\\\PycharmProjects\\\\ZSI_analytics\\\\PATSTAT'" + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "os.getcwd()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 17, + "outputs": [], + "source": [ + "fromdir=\"first_round\"\n", + "\n", + "os.makedirs(fr'{fromdir}/plots', exist_ok=True)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 18, + "outputs": [ + { + "data": { + "text/plain": " 0 1 2 3 4 5\n0 43250057 SE A 1964 1 2\n1 43265240 SE A 1969 1 2\n2 365294032 DE A 2009 1 1\n3 353426804 DE A 2009 1 1\n4 335924788 DE U 2010 1 0\n... ... .. .. ... .. ..\n773112 577173906 CN A 2022 2 11\n773113 580290535 CN A 2022 1 1\n773114 573161360 CN A 2022 1 2\n773115 576722128 CN A 2022 2 9\n773116 574827324 CN A 2022 1 9\n\n[773117 rows x 6 columns]", + "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
012345
043250057SEA196412
143265240SEA196912
2365294032DEA200911
3353426804DEA200911
4335924788DEU201010
.....................
773112577173906CNA2022211
773113580290535CNA202211
773114573161360CNA202212
773115576722128CNA202229
773116574827324CNA202219
\n

773117 rows × 6 columns

\n
" + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_misc = pd.read_csv(f\"{fromdir}/first-filings-raw.csv\", header=None)#,\n", + " #names=[\"appln_id\",\"appln_auth\",\"person_id\",\"invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])\n", + "appln_misc" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 20, + "outputs": [ + { + "data": { + "text/plain": " 0 1 2 3 4 5 6 7\n0 43250057 SE A 1964 1 2 B21B 37/16 A\n1 43250057 SE A 1964 1 2 B21B 37/58 A\n2 43250057 SE A 1964 1 2 B21B 37/64 A\n3 43265240 SE A 1969 1 2 B65D 50/04 A\n4 365294032 DE A 2009 1 1 C10B 49/06 A\n... ... .. .. ... .. .. ... ..\n1719607 574827324 CN A 2022 1 9 B01J 27/138 A\n1719608 574827324 CN A 2022 1 9 B01J 37/00 A\n1719609 574827324 CN A 2022 1 9 B01J 37/02 A\n1719610 574827324 CN A 2022 1 9 B01J 37/08 A\n1719611 574827324 CN A 2022 1 9 C01G 13/04 A\n\n[1719612 rows x 8 columns]", + "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
01234567
043250057SEA196412B21B 37/16A
143250057SEA196412B21B 37/58A
243250057SEA196412B21B 37/64A
343265240SEA196912B65D 50/04A
4365294032DEA200911C10B 49/06A
...........................
1719607574827324CNA202219B01J 27/138A
1719608574827324CNA202219B01J 37/00A
1719609574827324CNA202219B01J 37/02A
1719610574827324CNA202219B01J 37/08A
1719611574827324CNA202219C01G 13/04A
\n

1719612 rows × 8 columns

\n
" + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_misc = pd.read_csv(f\"{fromdir}/first-filings-with-IPC-raw.csv\", header=None)#,\n", + " #names=[\"appln_id\",\"appln_auth\",\"person_id\",\"invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])\n", + "appln_misc" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 21, + "outputs": [ + { + "data": { + "text/plain": "2\nA 1643149\nU 76458\nD 5\nName: count, dtype: int64" + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_misc[2].value_counts()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 144, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n25 375269300 CN 41022193 0 1 \\\n26 375269300 CN 43986391 1 0 \n64 336321508 CN 13960267 4 0 \n65 336321508 CN 20214523 3 0 \n66 336321508 CN 20440543 1 0 \n... ... ... ... ... ... \n2418562 563162779 CN 65016826 1 0 \n2418563 563162779 CN 65604326 3 0 \n2418564 563162779 CN 69335326 4 0 \n2418565 563162779 CN 78241111 5 0 \n2418566 563162779 CN 79926327 7 0 \n\n person_name person_ctry_code \n25 LU WATA ESPOO COMPANY NaN \n26 DENG WENJIA NaN \n64 LI JIANGUO NaN \n65 YU YUEMING NaN \n66 CHEN XUEMIN NaN \n... ... ... \n2418562 GUO HONGYU NaN \n2418563 ZHAO SHUFENG NaN \n2418564 LI BING NaN \n2418565 XU XIAOKAI NaN \n2418566 LYU JINGHUI NaN \n\n[1295204 rows x 7 columns]", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_code
25375269300CN4102219301LU WATA ESPOO COMPANYNaN
26375269300CN4398639110DENG WENJIANaN
64336321508CN1396026740LI JIANGUONaN
65336321508CN2021452330YU YUEMINGNaN
66336321508CN2044054310CHEN XUEMINNaN
........................
2418562563162779CN6501682610GUO HONGYUNaN
2418563563162779CN6560432630ZHAO SHUFENGNaN
2418564563162779CN6933532640LI BINGNaN
2418565563162779CN7824111150XU XIAOKAINaN
2418566563162779CN7992632770LYU JINGHUINaN
\n

1295204 rows × 7 columns

\n
" + }, + "execution_count": 144, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_colab = pd.read_csv(f\"{fromdir}/first-filings-with-persons-raw.csv\", header=None,\n", + " names=[\"appln_id\",\"appln_auth\",\"person_id\",\"invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])\n", + "\n", + "\n", + "# appln_colab[appln_colab[\"appln_auth\"]==\"CN\"]#.merge(appln_pers_haninfo, on=\"person_id\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 157, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n1354 333078581 EP 4914457 1 0 \\\n1355 333078581 EP 49302649 0 1 \n1659 365282689 DE 5567000 0 1 \n1660 365282689 DE 40342643 2 0 \n1661 365282689 DE 43139037 1 0 \n... ... ... ... ... ... \n2396509 557244566 EP 83213913 1 0 \n2396510 557244566 EP 83239836 2 0 \n2396534 557244564 EP 83170367 0 1 \n2396535 557244564 EP 83213913 2 0 \n2396536 557244564 EP 83239836 1 0 \n\n person_name person_ctry_code \n1354 Collins, Tom BE \n1355 Huawei Technologies Co., Ltd. CN \n1659 Bayerische Motoren Werke Aktiengesellschaft DE \n1660 MOELLMANN, JOERG DE \n1661 JOHN, CHRISTOPH DE \n... ... ... \n2396509 LASSERRE, SEBASTIEN FR \n2396510 TAQUET, JONATHAN FR \n2396534 Beijing Xiaomi Mobile Software Co., Ltd. CN \n2396535 LASSERRE, SEBASTIEN FR \n2396536 TAQUET, JONATHAN FR \n\n[4963 rows x 7 columns]", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_code
1354333078581EP491445710Collins, TomBE
1355333078581EP4930264901Huawei Technologies Co., Ltd.CN
1659365282689DE556700001Bayerische Motoren Werke AktiengesellschaftDE
1660365282689DE4034264320MOELLMANN, JOERGDE
1661365282689DE4313903710JOHN, CHRISTOPHDE
........................
2396509557244566EP8321391310LASSERRE, SEBASTIENFR
2396510557244566EP8323983620TAQUET, JONATHANFR
2396534557244564EP8317036701Beijing Xiaomi Mobile Software Co., Ltd.CN
2396535557244564EP8321391320LASSERRE, SEBASTIENFR
2396536557244564EP8323983610TAQUET, JONATHANFR
\n

4963 rows × 7 columns

\n
" + }, + "execution_count": 157, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_ch = appln_colab.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"]==\"CN\").any())\n", + "appln_scope = appln_ch.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"].isin(scope_countries)).any())\n", + "appln_scope" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 161, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n0 333078581 EP 4914457 1 0 \\\n1 365149571 EP 4914457 1 0 \n2 379191760 EP 4914457 1 0 \n3 333078581 EP 49302649 0 1 \n4 339456534 EP 49302649 0 1 \n... ... ... ... ... ... \n4436 549690891 EP 85841201 1 0 \n4437 549690895 EP 85841201 1 0 \n4438 549690901 EP 85841201 1 0 \n4439 549690897 EP 85841201 1 0 \n4440 549788919 EP 85774895 2 0 \n\n person_name person_ctry_code psn_sector han_id \n0 Collins, Tom BE NaN 104914457 \\\n1 Collins, Tom BE NaN 104914457 \n2 Collins, Tom BE NaN 104914457 \n3 Huawei Technologies Co., Ltd. CN COMPANY 1337324 \n4 Huawei Technologies Co., Ltd. CN COMPANY 1337324 \n... ... ... ... ... \n4436 JONSSON, Tony SE UNKNOWN 185841201 \n4437 JONSSON, Tony SE UNKNOWN 185841201 \n4438 JONSSON, Tony SE UNKNOWN 185841201 \n4439 JONSSON, Tony SE UNKNOWN 185841201 \n4440 TRAN NGUYEN, Johnny SE UNKNOWN 185774895 \n\n han_name \n0 Collins, Tom \n1 Collins, Tom \n2 Collins, Tom \n3 HUAWEI TECH CO LTD \n4 HUAWEI TECH CO LTD \n... ... \n4436 JONSSON, Tony \n4437 JONSSON, Tony \n4438 JONSSON, Tony \n4439 JONSSON, Tony \n4440 TRAN NGUYEN, Johnny \n\n[4441 rows x 10 columns]", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codepsn_sectorhan_idhan_name
0333078581EP491445710Collins, TomBENaN104914457Collins, Tom
1365149571EP491445710Collins, TomBENaN104914457Collins, Tom
2379191760EP491445710Collins, TomBENaN104914457Collins, Tom
3333078581EP4930264901Huawei Technologies Co., Ltd.CNCOMPANY1337324HUAWEI TECH CO LTD
4339456534EP4930264901Huawei Technologies Co., Ltd.CNCOMPANY1337324HUAWEI TECH CO LTD
.................................
4436549690891EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, Tony
4437549690895EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, Tony
4438549690901EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, Tony
4439549690897EP8584120110JONSSON, TonySEUNKNOWN185841201JONSSON, Tony
4440549788919EP8577489520TRAN NGUYEN, JohnnySEUNKNOWN185774895TRAN NGUYEN, Johnny
\n

4441 rows × 10 columns

\n
" + }, + "execution_count": 161, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope.merge(appln_pers_haninfo, on=\"person_id\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 160, + "outputs": [ + { + "data": { + "text/plain": "1155" + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope[\"appln_id\"].nunique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 162, + "outputs": [ + { + "data": { + "text/plain": "Empty DataFrame\nColumns: [appln_id_x, appln_auth_x, person_id, invt_seq_nr_x, applt_seq_nr_x, person_name_x, person_ctry_code_x, appln_id_y, appln_auth_y, invt_seq_nr_y, applt_seq_nr_y, person_name_y, person_ctry_code_y, psn_sector, han_id, han_name, psn_sector_primary, person_ctry_code_fullname, appln_auth_fullname, person_ctry_ISO3, person_ctry_type, auth_ISO3, auth_ctry_type]\nIndex: []\n\n[0 rows x 23 columns]", + "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
appln_id_xappln_auth_xperson_idinvt_seq_nr_xapplt_seq_nr_xperson_name_xperson_ctry_code_xappln_id_yappln_auth_yinvt_seq_nr_y...psn_sectorhan_idhan_namepsn_sector_primaryperson_ctry_code_fullnameappln_auth_fullnameperson_ctry_ISO3person_ctry_typeauth_ISO3auth_ctry_type
\n

0 rows × 23 columns

\n
" + }, + "execution_count": 162, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_scope[appln_scope[\"person_ctry_code\"]==\"GB\"].merge(appln_pers_f, on=\"person_id\")" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 153, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n6810 333031060 GB 42380482 1 0 \\\n27291 334469711 GB 42552873 0 1 \n31935 336159242 GB 5318110 0 1 \n55322 333031012 GB 42013453 1 1 \n128151 337007702 GB 5318110 0 1 \n... ... ... ... ... ... \n2130509 546501618 GB 87463236 1 0 \n2135530 546434937 GB 20149035 3 0 \n2135533 546434937 GB 88227411 0 2 \n2210955 550995729 GB 17999648 2 0 \n2210971 550995769 GB 17999648 2 0 \n\n person_name person_ctry_code \n6810 KA-SHUN CARRISON TONG CN \n27291 LE GROUP OF COMPANIES LIMITED CN \n31935 Huawei Technologies Co., Ltd. CN \n55322 BENJAMINO KAH HUNG LEE CN \n128151 Huawei Technologies Co., Ltd. CN \n... ... ... \n2130509 Santiago Ramon Alvarez Fernandez CN \n2135530 YU HUAI CN \n2135533 PICOCOM (HANGZHOU) CO., LTD. CN \n2210955 ZHANG LIN CN \n2210971 ZHANG LIN CN \n\n[278 rows x 7 columns]", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_code
6810333031060GB4238048210KA-SHUN CARRISON TONGCN
27291334469711GB4255287301LE GROUP OF COMPANIES LIMITEDCN
31935336159242GB531811001Huawei Technologies Co., Ltd.CN
55322333031012GB4201345311BENJAMINO KAH HUNG LEECN
128151337007702GB531811001Huawei Technologies Co., Ltd.CN
........................
2130509546501618GB8746323610Santiago Ramon Alvarez FernandezCN
2135530546434937GB2014903530YU HUAICN
2135533546434937GB8822741102PICOCOM (HANGZHOU) CO., LTD.CN
2210955550995729GB1799964820ZHANG LINCN
2210971550995769GB1799964820ZHANG LINCN
\n

278 rows × 7 columns

\n
" + }, + "execution_count": 153, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_colab[((appln_colab[\"appln_auth\"]==\"GB\")&(appln_colab[\"person_ctry_code\"]==\"CN\"))]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 163, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155\n" + ] + } + ], + "source": [ + "appln_ch = appln_colab.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"]==\"CN\").any())\n", + "appln_scope = appln_ch.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"].isin(scope_countries)).any())\n", + "\n", + "print(appln_scope[\"appln_id\"].nunique())\n" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 241, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 242, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155\n" + ] + } + ], + "source": [ + "appln_pers_f = pd.read_csv(f\"{fromdir}/first-filings-with-persons-raw.csv\", header=None,\n", + " names=[\"appln_id\",\"appln_auth\",\"person_id\",\"invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])\n", + "\n", + "\n", + "appln_ch = appln_pers_f.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"]==\"CN\").any())\n", + "appln_scope = appln_ch.groupby(\"appln_id\").filter(lambda gr: (gr[\"person_ctry_code\"].isin(scope_countries)).any())\n", + "\n", + "print(appln_scope[\"appln_id\"].nunique())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 243, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155\n" + ] + } + ], + "source": [ + "appln_pers_haninfo = pd.read_csv(f\"{fromdir}/tls_206_scope.csv\", usecols=[\"person_id\",\"han_id\",\"han_name\",\"psn_sector\"])\n", + "\n", + "appln_pers_haninfo[\"han_name\"] = appln_pers_haninfo[\"han_name\"].str.replace(\"Zhejiang Geely Holding Group Co., Ltd.\",\n", + " \"ZHEJIANG GEELY HOLDINGGROUP CO LTD\")\n", + "\n", + "\n", + "appln_pers_haninfo.loc[appln_pers_haninfo[\"han_name\"]==\"ZHEJIANG GEELY HOLDINGGROUP CO LTD\",\"han_id\"] = 3345915\n", + "\n", + "appln_pers_f = appln_scope.merge(appln_pers_haninfo[[\"person_id\",\"han_id\",\"han_name\"]].drop_duplicates(), on=\"person_id\")\n", + "print(appln_pers_f[\"appln_id\"].nunique())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 243, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 244, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155\n" + ] + } + ], + "source": [ + "pers_sector_primary = pers.groupby(\"han_id\", as_index=False)[\"psn_sector\"].agg(\n", + " lambda x: pd.Series.mode(x)[0]).rename(columns={\"psn_sector\":\"psn_sector_primary\"})\n", + "appln_pers_f = appln_pers_f.merge(pers_sector_primary, on='han_id', how=\"left\")\n", + "appln_pers_f[\"psn_sector_primary\"] = appln_pers_f[\"psn_sector_primary\"].fillna(\"UNKNOWN\")\n", + "print(appln_pers_f[\"appln_id\"].nunique())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 244, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 245, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155 1155\n" + ] + } + ], + "source": [ + "print(appln_pers_f[\"appln_id\"].nunique(), appln_scope[\"appln_id\"].nunique())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 246, + "outputs": [], + "source": [ + "tls_801 = pd.read_csv(r\"./EU_CH_scope/table_tls801.csv\", low_memory=False)\n", + "# tls_801.head()\n", + "scope_df = tls_801[((tls_801.eu_member==\"Y\")|\n", + " (tls_801.ctry_code == 'NO')|\n", + " (tls_801.ctry_code == 'CH')|\n", + " (tls_801.ctry_code == 'GB'))]\n", + "scope_countries = scope_df[\"ctry_code\"].unique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 247, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155 1155\n" + ] + } + ], + "source": [ + "appln_pers_f = appln_pers_f[appln_pers_f[\"person_ctry_code\"].isin(list(scope_countries)+[\"CN\"])]\n", + "print(appln_pers_f[\"appln_id\"].nunique(), appln_scope[\"appln_id\"].nunique())" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 248, + "outputs": [ + { + "data": { + "text/plain": "['AT',\n 'BE',\n 'BG',\n 'CH',\n 'CY',\n 'CZ',\n 'DE',\n 'DK',\n 'EE',\n 'ES',\n 'FI',\n 'FR',\n 'GB',\n 'GR',\n 'HR',\n 'HU',\n 'IE',\n 'IT',\n 'LT',\n 'LU',\n 'LV',\n 'MT',\n 'NL',\n 'NO',\n 'PL',\n 'PT',\n 'RO',\n 'SE',\n 'SI',\n 'SK',\n 'CN']" + }, + "execution_count": 248, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(scope_countries)+[\"CN\"]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 248, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 249, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth person_id invt_seq_nr applt_seq_nr \n0 333078581 EP 4914457 1 0 \\\n1 365149571 EP 4914457 1 0 \n2 379191760 EP 4914457 1 0 \n3 333078581 EP 49302649 0 1 \n4 339456534 EP 49302649 0 1 \n... ... ... ... ... ... \n4958 549690891 EP 85841201 1 0 \n4959 549690895 EP 85841201 1 0 \n4960 549690901 EP 85841201 1 0 \n4961 549690897 EP 85841201 1 0 \n4962 549788919 EP 85774895 2 0 \n\n person_name person_ctry_code han_id \n0 Collins, Tom BE 104914457 \\\n1 Collins, Tom BE 104914457 \n2 Collins, Tom BE 104914457 \n3 Huawei Technologies Co., Ltd. CN 1337324 \n4 Huawei Technologies Co., Ltd. CN 1337324 \n... ... ... ... \n4958 JONSSON, Tony SE 185841201 \n4959 JONSSON, Tony SE 185841201 \n4960 JONSSON, Tony SE 185841201 \n4961 JONSSON, Tony SE 185841201 \n4962 TRAN NGUYEN, Johnny SE 185774895 \n\n han_name psn_sector_primary \n0 Collins, Tom UNKNOWN \n1 Collins, Tom UNKNOWN \n2 Collins, Tom UNKNOWN \n3 HUAWEI TECH CO LTD COMPANY \n4 HUAWEI TECH CO LTD COMPANY \n... ... ... \n4958 JONSSON, Tony UNKNOWN \n4959 JONSSON, Tony UNKNOWN \n4960 JONSSON, Tony UNKNOWN \n4961 JONSSON, Tony UNKNOWN \n4962 TRAN NGUYEN, Johnny UNKNOWN \n\n[4814 rows x 10 columns]", + "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
appln_idappln_authperson_idinvt_seq_nrapplt_seq_nrperson_nameperson_ctry_codehan_idhan_namepsn_sector_primary
0333078581EP491445710Collins, TomBE104914457Collins, TomUNKNOWN
1365149571EP491445710Collins, TomBE104914457Collins, TomUNKNOWN
2379191760EP491445710Collins, TomBE104914457Collins, TomUNKNOWN
3333078581EP4930264901Huawei Technologies Co., Ltd.CN1337324HUAWEI TECH CO LTDCOMPANY
4339456534EP4930264901Huawei Technologies Co., Ltd.CN1337324HUAWEI TECH CO LTDCOMPANY
.................................
4958549690891EP8584120110JONSSON, TonySE185841201JONSSON, TonyUNKNOWN
4959549690895EP8584120110JONSSON, TonySE185841201JONSSON, TonyUNKNOWN
4960549690901EP8584120110JONSSON, TonySE185841201JONSSON, TonyUNKNOWN
4961549690897EP8584120110JONSSON, TonySE185841201JONSSON, TonyUNKNOWN
4962549788919EP8577489520TRAN NGUYEN, JohnnySE185774895TRAN NGUYEN, JohnnyUNKNOWN
\n

4814 rows × 10 columns

\n
" + }, + "execution_count": 249, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_pers_f" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 250, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1155\n" + ] + }, + { + "data": { + "text/plain": " appln_id appln_auth appln_kind filing_year nb_applicants \n3246 331546756 EP A 2011 1 \\\n194962 448860230 DE A 2014 1 \n588485 513966940 EP A 2019 1 \n206034 416859711 EP A 2014 1 \n670021 532224185 EP A 2020 2 \n... ... ... ... ... ... \n460742 491633486 EP A 2018 1 \n275339 446738785 FR A 2015 1 \n505075 504869364 EP A 2018 1 \n474988 524089197 DE A 2018 1 \n567305 509177273 EP A 2019 1 \n\n nb_inventors \n3246 1 \n194962 3 \n588485 1 \n206034 2 \n670021 2 \n... ... \n460742 3 \n275339 3 \n505075 4 \n474988 6 \n567305 1 \n\n[100 rows x 6 columns]", + "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
appln_idappln_authappln_kindfiling_yearnb_applicantsnb_inventors
3246331546756EPA201111
194962448860230DEA201413
588485513966940EPA201911
206034416859711EPA201412
670021532224185EPA202022
.....................
460742491633486EPA201813
275339446738785FRA201513
505075504869364EPA201814
474988524089197DEA201816
567305509177273EPA201911
\n

100 rows × 6 columns

\n
" + }, + "execution_count": 250, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_f = pd.read_csv(f\"{fromdir}/first-filings-raw.csv\", header=None,\n", + " names=[\"appln_id\",\"appln_auth\",\"appln_kind\",\"filing_year\",\"nb_applicants\",'nb_inventors'])\n", + "\n", + "appln_f[\"filing_year\"] = appln_f[\"filing_year\"].astype(int)\n", + "\n", + "appln_f = appln_f[appln_f[\"filing_year\"]>2010]\n", + "\n", + "appln_f[\"appln_auth\"] = appln_f[\"appln_auth\"].str.replace(\"MA\",\"CN\")\n", + "\n", + "appln_f = appln_f[appln_f[\"appln_id\"].isin(appln_scope['appln_id'])]\n", + "print(appln_f[\"appln_id\"].nunique())\n", + "\n", + "appln_f.sample(100)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 250, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 250, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 251, + "outputs": [ + { + "data": { + "text/plain": "appln_kind\nA 1164\nU 7\nName: count, dtype: int64" + }, + "execution_count": 251, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_f[\"appln_kind\"].value_counts()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 251, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 252, + "outputs": [], + "source": [ + "# Co-patents per year" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 253, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ + { + "hovertemplate": "Year:%{x:d}
Number of co-publications:%{y:d}", + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, "marker": { "symbol": "circle" }, @@ -587,17 +1616,17 @@ "orientation": "v", "showlegend": false, "text": [ - 48.0, - 42.0, + 54.0, + 49.0, + 69.0, 64.0, - 58.0, - 83.0, 94.0, - 148.0, - 174.0, - 151.0, - 135.0, - 58.0 + 103.0, + 158.0, + 184.0, + 170.0, + 146.0, + 64.0 ], "textfont": { "size": 12 @@ -618,17 +1647,17 @@ ], "xaxis": "x", "y": [ - 48, - 42, + 54, + 49, + 69, 64, - 58, - 83, 94, - 148, - 174, - 151, - 135, - 58 + 103, + 158, + 184, + 170, + 146, + 64 ], "yaxis": "y", "type": "scatter" @@ -649,16 +1678,16 @@ "showlegend": false, "text": [ 0.0, - -0.125, - 0.3333333333333333, - 0.20833333333333334, - 0.7291666666666666, - 0.9583333333333334, - 2.0833333333333335, - 2.625, - 2.1458333333333335, - 1.8125, - 0.20833333333333334 + -0.09259259259259259, + 0.2777777777777778, + 0.18518518518518517, + 0.7407407407407407, + 0.9074074074074074, + 1.9259259259259258, + 2.4074074074074074, + 2.1481481481481484, + 1.7037037037037037, + 0.18518518518518517 ], "textfont": { "size": 12 @@ -681,16 +1710,16 @@ "xaxis": "x2", "y": [ 0.0, - -0.125, - 0.3333333333333333, - 0.20833333333333334, - 0.7291666666666666, - 0.9583333333333334, - 2.0833333333333335, - 2.625, - 2.1458333333333335, - 1.8125, - 0.20833333333333334 + -0.09259259259259259, + 0.2777777777777778, + 0.18518518518518517, + 0.7407407407407407, + 0.9074074074074074, + 1.9259259259259258, + 2.4074074074074074, + 2.1481481481481484, + 1.7037037037037037, + 0.18518518518518517 ], "yaxis": "y2", "type": "scatter" @@ -1615,7 +2644,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -1683,7 +2712,7 @@ }, { "cell_type": "code", - "execution_count": 440, + "execution_count": 254, "outputs": [ { "name": "stderr", @@ -1912,7 +2941,7 @@ 0.0, 0.0, 0.0, - 0.0, + 1.0, 0.0, 0.0, 0.0, @@ -1966,17 +2995,17 @@ ], "xaxis": "x15", "y": [ - 17.0, - 15.0, + 21.0, 16.0, - 19.0, + 16.0, + 21.0, 28.0, - 34.0, - 56.0, - 102.0, - 109.0, - 86.0, - 33.0 + 36.0, + 57.0, + 104.0, + 114.0, + 90.0, + 35.0 ], "yaxis": "y15", "type": "scatter" @@ -2144,7 +3173,7 @@ 24.0, 18.0, 30.0, - 28.0, + 29.0, 19.0, 19.0, 15.0 @@ -2370,30 +3399,87 @@ 0.0, 1.0, 3.0, - 2.0, - 3.0, - 0.0, + 2.0, + 3.0, + 0.0, + 1.0, + 0.0, + 0.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden", + "Sweden" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x3", + "y": [ + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 1.0, + 3.0, 1.0, 0.0, + 1.0, 0.0 ], - "yaxis": "y2", + "yaxis": "y3", "type": "scatter" }, { "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", "hovertext": [ - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden", - "Sweden" + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland" ], "legendgroup": "", "line": { @@ -2420,21 +3506,21 @@ 2020, 2021 ], - "xaxis": "x3", + "xaxis": "x4", "y": [ 0.0, 0.0, 0.0, 0.0, - 1.0, - 1.0, - 3.0, - 1.0, + 2.0, + 0.0, + 0.0, + 0.0, + 0.0, 0.0, - 1.0, 0.0 ], - "yaxis": "y3", + "yaxis": "y4", "type": "scatter" }, { @@ -2477,21 +3563,21 @@ 2020, 2021 ], - "xaxis": "x4", + "xaxis": "x5", "y": [ - 0.0, - 0.0, - 1.0, - 1.0, - 10.0, - 24.0, - 36.0, - 29.0, + 2.0, + 6.0, + 6.0, 4.0, - 1.0, - 0.0 + 19.0, + 31.0, + 45.0, + 36.0, + 18.0, + 8.0, + 4.0 ], - "yaxis": "y4", + "yaxis": "y5", "type": "scatter" } ], @@ -2538,7 +3624,7 @@ }, { "showarrow": false, - "text": "United Kingdom", + "text": "Switzerland", "x": 0.7040000000000002, "xanchor": "center", "xref": "paper", @@ -2549,6 +3635,19 @@ "size": 22 } }, + { + "showarrow": false, + "text": "United Kingdom", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.2866666666666666, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, { "showarrow": false, "text": "Finland", @@ -4146,7 +5245,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -4211,7 +5310,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 254, "outputs": [], "source": [], "metadata": { @@ -4220,7 +5319,7 @@ }, { "cell_type": "code", - "execution_count": 442, + "execution_count": 255, "outputs": [ { "data": { @@ -4442,12 +5541,12 @@ -1.0, -1.0, -1.0, + 0.0, -1.0, -1.0, -1.0, -1.0, - -1.0, - 0.0, + 1.0, -1.0, -1.0 ], @@ -4497,16 +5596,16 @@ "xaxis": "x15", "y": [ 0.0, - -0.11764705882352941, - -0.058823529411764705, - 0.11764705882352941, - 0.6470588235294118, - 1.0, - 2.2941176470588234, - 5.0, - 5.411764705882353, - 4.0588235294117645, - 0.9411764705882353 + -0.23809523809523808, + -0.23809523809523808, + 0.0, + 0.3333333333333333, + 0.7142857142857143, + 1.7142857142857142, + 3.9523809523809526, + 4.428571428571429, + 3.2857142857142856, + 0.6666666666666666 ], "yaxis": "y15", "type": "scatter" @@ -4674,7 +5773,7 @@ 0.7142857142857143, 0.2857142857142857, 1.1428571428571428, - 1.0, + 1.0714285714285714, 0.35714285714285715, 0.35714285714285715, 0.07142857142857142 @@ -4967,6 +6066,63 @@ "yaxis": "y3", "type": "scatter" }, + { + "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", + "hovertext": [ + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland", + "Switzerland" + ], + "legendgroup": "", + "line": { + "color": "#636efa", + "dash": "solid" + }, + "marker": { + "symbol": "circle" + }, + "mode": "markers+lines", + "name": "", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x4", + "y": [ + -1.0, + -1.0, + -1.0, + -1.0, + 0.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0, + -1.0 + ], + "yaxis": "y4", + "type": "scatter" + }, { "hovertemplate": "%{hovertext}
%{x}
Co-publications: %{y}", "hovertext": [ @@ -5007,21 +6163,21 @@ 2020, 2021 ], - "xaxis": "x4", + "xaxis": "x5", "y": [ - -1.0, - -1.0, 0.0, - 0.0, - 9.0, - 23.0, - 35.0, - 28.0, + 2.0, + 2.0, + 1.0, + 8.5, + 14.5, + 21.5, + 17.0, + 8.0, 3.0, - 0.0, - -1.0 + 1.0 ], - "yaxis": "y4", + "yaxis": "y5", "type": "scatter" } ], @@ -5068,7 +6224,7 @@ }, { "showarrow": false, - "text": "United Kingdom", + "text": "Switzerland", "x": 0.7040000000000002, "xanchor": "center", "xref": "paper", @@ -5079,6 +6235,19 @@ "size": 22 } }, + { + "showarrow": false, + "text": "United Kingdom", + "x": 0.908, + "xanchor": "center", + "xref": "paper", + "y": 0.2866666666666666, + "yanchor": "bottom", + "yref": "paper", + "font": { + "size": 22 + } + }, { "showarrow": false, "text": "Finland", @@ -6736,7 +7905,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -6784,7 +7953,7 @@ }, { "cell_type": "code", - "execution_count": 405, + "execution_count": 255, "outputs": [], "source": [], "metadata": { @@ -6793,7 +7962,7 @@ }, { "cell_type": "code", - "execution_count": 446, + "execution_count": 256, "outputs": [ { "name": "stderr", @@ -6827,7 +7996,7 @@ 252, 89, 83, - 62, + 78, 13, 10, 9, @@ -6837,7 +8006,7 @@ 7, 6, 5, - 3, + 4, 3 ], "xaxis": "x", @@ -6849,14 +8018,14 @@ "CRRC QINGDAO SIFANG CO LTD (CHN)", "BEIJING XIAOMI MOBILE SOFTWARE CO LTD (CHN)", "ZF DRIVETECH SUZHOU CO LTD (CHN)", - "VENUS MEDTECH HANGZHOU INC (CHN)", "ZHANGJIAGANG KANGDE XIN OPTRONICS MATERIAL CO LTD (CHN)", - "CNBM BENGBU DESIGN
RESEARCH INSTITUTE FOR GLASS IND CO LTD (CHN)", + "VENUS MEDTECH HANGZHOU INC (CHN)", "SHENZHEN GOODIX TECH CO LTD (CHN)", + "CNBM BENGBU DESIGN
RESEARCH INSTITUTE FOR GLASS IND CO LTD (CHN)", "NOKIA SHANGHAI BELL CO LTD (CHN)", "KEIPER SEATING MECHANISMS CO LTD (CHN)", - "HANERGY HOLDINGGROUP LTD (CHN)", - "SHANGHAI HENGXU MATERIALS CO LTD (CHN)" + "GOODIX TECH HK CO LTD (CHN)", + "STRIX GUANGZHOU LTD (CHN)" ], "yaxis": "y", "type": "bar" @@ -7757,7 +8926,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -7795,9 +8964,7 @@ 9, 9, 8, - 6, - 6, - 5 + 6 ], "xaxis": "x", "y": [ @@ -7809,13 +8976,39 @@ "SIEMENS AG (DEU)", "BAYERISCHE MOTOREN WERKE AG (DEU)", "L OREAL (FRA)", - "SEB SA (FRA)", "SEW EURODRIVE GMBH
CO KG (DEU)", + "SEB SA (FRA)", "SCHAEFFLER TECH AG
CO KG (DEU)", "BOSTIK SA (FRA)", - "BASF SE (DEU)", - "BSH HAUSGERATE GMBH (DEU)", - "TELEFONICA SA (ESP)" + "BSH HAUSGERATE GMBH (DEU)" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Country type=Non-EU associate
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "Non-EU associate", + "marker": { + "color": "#00CC96", + "pattern": { + "shape": "" + } + }, + "name": "Non-EU associate", + "offsetgroup": "Non-EU associate", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 7, + 6 + ], + "xaxis": "x", + "y": [ + "RECKITT BENCKISER BRANDS LTD (GBR)", + "ALSTOM TECH LTD (CHE)" ], "yaxis": "y", "type": "bar" @@ -8716,7 +9909,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -8745,7 +9938,7 @@ 252, 89, 83, - 62, + 78, 13, 10, 9, @@ -8754,8 +9947,7 @@ 7, 7, 6, - 3, - 3 + 4 ], "xaxis": "x", "y": [ @@ -8766,13 +9958,12 @@ "CRRC QINGDAO SIFANG CO LTD (CHN)", "BEIJING XIAOMI MOBILE SOFTWARE CO LTD (CHN)", "ZF DRIVETECH SUZHOU CO LTD (CHN)", - "VENUS MEDTECH HANGZHOU INC (CHN)", "ZHANGJIAGANG KANGDE XIN OPTRONICS MATERIAL CO LTD (CHN)", - "CNBM BENGBU DESIGN
RESEARCH INSTITUTE FOR GLASS IND CO LTD (CHN)", + "VENUS MEDTECH HANGZHOU INC (CHN)", "SHENZHEN GOODIX TECH CO LTD (CHN)", + "CNBM BENGBU DESIGN
RESEARCH INSTITUTE FOR GLASS IND CO LTD (CHN)", "NOKIA SHANGHAI BELL CO LTD (CHN)", - "HANERGY HOLDINGGROUP LTD (CHN)", - "SHANGHAI HENGXU MATERIALS CO LTD (CHN)" + "GOODIX TECH HK CO LTD (CHN)" ], "yaxis": "y", "type": "bar" @@ -8794,11 +9985,13 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 5 + 5, + 3 ], "xaxis": "x", "y": [ - "KEIPER SEATING MECHANISMS CO LTD (CHN)" + "KEIPER SEATING MECHANISMS CO LTD (CHN)", + "STRIX GUANGZHOU LTD (CHN)" ], "yaxis": "y", "type": "bar" @@ -9699,7 +10892,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -9737,8 +10930,7 @@ 9, 8, 6, - 6, - 5 + 6 ], "xaxis": "x", "y": [ @@ -9749,13 +10941,12 @@ "SIEMENS AG (DEU)", "BAYERISCHE MOTOREN WERKE AG (DEU)", "L OREAL (FRA)", - "SEB SA (FRA)", "SEW EURODRIVE GMBH
CO KG (DEU)", + "SEB SA (FRA)", "SCHAEFFLER TECH AG
CO KG (DEU)", "BOSTIK SA (FRA)", - "BASF SE (DEU)", "BSH HAUSGERATE GMBH (DEU)", - "TELEFONICA SA (ESP)" + "ALSTOM TECH LTD (CHE)" ], "yaxis": "y", "type": "bar" @@ -9785,6 +10976,32 @@ ], "yaxis": "y", "type": "bar" + }, + { + "alignmentgroup": "True", + "hovertemplate": "Sector=UNKNOWN
Number of co-patents=%{x}
Name=%{y}", + "legendgroup": "UNKNOWN", + "marker": { + "color": "#FF6692", + "pattern": { + "shape": "" + } + }, + "name": "UNKNOWN", + "offsetgroup": "UNKNOWN", + "orientation": "h", + "showlegend": true, + "textposition": "auto", + "texttemplate": "%{x}", + "x": [ + 7 + ], + "xaxis": "x", + "y": [ + "RECKITT BENCKISER BRANDS LTD (GBR)" + ], + "yaxis": "y", + "type": "bar" } ], "layout": { @@ -10682,7 +11899,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -10783,7 +12000,7 @@ }, { "cell_type": "code", - "execution_count": 452, + "execution_count": 257, "outputs": [ { "name": "stderr", @@ -10807,6 +12024,7 @@ "Sweden", "Germany", "France", + "United Kingdom", "Austria", "Netherlands", "Finland", @@ -10828,12 +12046,12 @@ "SHENZHEN GOODIX TECH CO LTD", "NOKIA SHANGHAI BELL CO LTD", "KEIPER SEATING MECHANISMS CO LTD", + "GOODIX TECH HK CO LTD", "HANERGY HOLDINGGROUP LTD", "INKRON LTD", - "FOCUSLIGHT TECH INC", - "CHINA TRIUMPH INT ENGINEERING CO LTD", "MICRO TECH NANJING CO LTD", - "ANHUI MEIZHI COMPRESSOR CO LTD", + "FOCUSLIGHT TECH INC", + "SUZHOU RAINBOW MATERIALS CO LTD", "SHANGHAI HENGXU MATERIALS CO LTD" ], "z": [ @@ -10841,6 +12059,7 @@ 3.399673721481038, 0.0, 0.0, + 1.0, 0.0, 0.0, 0.0, @@ -10857,6 +12076,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10868,12 +12088,14 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ 1.9542425094393248, 2.681241237375587, 0.0, + 2.204119982655925, 0.0, 0.0, 1.0, @@ -10885,6 +12107,7 @@ 0.0, 1.9542425094393248, 0.0, + 0.0, 1.9542425094393248, 0.0, 0.0, @@ -10901,6 +12124,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10912,6 +12136,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10919,6 +12144,7 @@ 0.0, 0.0, 0.0, + 0.0, 1.9030899869919435, 0.0, 1.0, @@ -10934,6 +12160,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10945,6 +12172,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10956,6 +12184,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10967,6 +12196,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -10978,12 +12208,14 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ + 0.0, 1.0, - 1.4771212547196624, 0.0, + 1.6020599913279625, 0.0, 0.0, 0.0, @@ -10992,24 +12224,26 @@ 0.0 ], [ + 1.0, + 1.4771212547196624, 0.0, 0.0, 0.0, 0.0, 0.0, - 1.4771212547196624, 0.0, 0.0, 0.0 ], [ 0.0, - 1.4771212547196624, 0.0, 0.0, 0.0, 0.0, 0.0, + 1.4771212547196624, + 0.0, 0.0, 0.0 ], @@ -11022,6 +12256,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ @@ -11033,16 +12268,18 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ], [ 0.0, + 1.0, 0.0, - 0.0, - 1.4771212547196624, + 1.0, 0.0, 0.0, 0.0, + 1.0, 0.0, 0.0 ], @@ -11055,6 +12292,7 @@ 0.0, 0.0, 0.0, + 0.0, 0.0 ] ], @@ -11067,6 +12305,7 @@ 251, 0, 0, + 1, 0, 0, 0, @@ -11083,6 +12322,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11094,12 +12334,14 @@ 0, 0, 0, + 0, 0 ], [ 9, 48, 0, + 16, 0, 0, 1, @@ -11111,6 +12353,7 @@ 0, 9, 0, + 0, 9, 0, 0, @@ -11127,6 +12370,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11138,6 +12382,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11145,6 +12390,7 @@ 0, 0, 0, + 0, 8, 0, 1, @@ -11160,6 +12406,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11171,6 +12418,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11182,6 +12430,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11193,6 +12442,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11204,12 +12454,14 @@ 0, 0, 0, + 0, 0 ], [ + 0, 1, - 3, 0, + 4, 0, 0, 0, @@ -11218,24 +12470,26 @@ 0 ], [ + 1, + 3, 0, 0, 0, 0, 0, - 3, 0, 0, 0 ], [ 0, - 3, 0, 0, 0, 0, 0, + 3, + 0, 0, 0 ], @@ -11248,6 +12502,7 @@ 0, 0, 0, + 0, 0 ], [ @@ -11259,16 +12514,18 @@ 0, 0, 0, + 0, 0 ], [ 0, + 1, 0, - 0, - 3, + 1, 0, 0, 0, + 1, 0, 0 ], @@ -11281,6 +12538,7 @@ 0, 0, 0, + 0, 0 ] ] @@ -12210,7 +13468,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -12306,7 +13564,7 @@ }, { "cell_type": "code", - "execution_count": 453, + "execution_count": 258, "outputs": [], "source": [ "patstat_applt_dipol_2 = (patstat_applt_dipol\n", @@ -12337,7 +13595,7 @@ }, { "cell_type": "code", - "execution_count": 456, + "execution_count": 259, "outputs": [ { "data": { @@ -12360,24 +13618,24 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.026590693257359924, - 0.027540360873694207, - 0.005698005698005698, - 0.003798670465337132, - 0.012345679012345678, - 0.2222222222222222, - 0.3380816714150047, - 0.001899335232668566, - 0.002849002849002849, - 9.49667616334283E-4, - 0.020892687559354226, - 9.49667616334283E-4, - 0.023741690408357077, - 0.003798670465337132, - 9.49667616334283E-4, - 9.49667616334283E-4, - 0.02564102564102564, - 0.26020892687559355 + 0.024284475281873375, + 0.02515177797051171, + 0.005203816131830009, + 0.003469210754553339, + 0.011274934952298352, + 0.20294882914137033, + 0.30875975715524717, + 0.0017346053772766695, + 0.0026019080659150044, + 8.673026886383347E-4, + 0.019080659150043366, + 8.673026886383347E-4, + 0.02168256721595837, + 0.003469210754553339, + 8.673026886383347E-4, + 8.673026886383347E-4, + 0.023417172593235037, + 0.23764093668690373 ], "xaxis": "x", "y": [ @@ -12420,7 +13678,7 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.5042735042735043 + 0.5177797051170858 ], "xaxis": "x", "y": [ @@ -12446,13 +13704,15 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 9.49667616334283E-4, - 0.010446343779677113 + 8.673026886383347E-4, + 0.024284475281873375, + 0.07892454466608846 ], "xaxis": "x", "y": [ "Norway", - "Switzerland" + "Switzerland", + "United Kingdom" ], "yaxis": "y", "type": "bar" @@ -13352,7 +14612,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -13378,21 +14638,21 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.003872216844143272, - 0.007744433688286544, - 9.68054211035818E-4, - 0.002904162633107454, - 0.001936108422071636, - 0.013552758954501452, - 0.14908034849951599, - 0.2575024201355276, - 0.00484027105517909, - 0.00484027105517909, - 0.003872216844143272, - 0.011616650532429816, - 9.68054211035818E-4, - 0.021297192642787996, - 0.00968054211035818 + 0.00353045013239188, + 0.00706090026478376, + 8.8261253309797E-4, + 0.00264783759929391, + 0.00176522506619594, + 0.01235657546337158, + 0.13592233009708737, + 0.23477493380406, + 0.00441306266548985, + 0.00441306266548985, + 0.00353045013239188, + 0.01059135039717564, + 8.8261253309797E-4, + 0.019417475728155338, + 0.0088261253309797 ], "xaxis": "x", "y": [ @@ -13432,7 +14692,7 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.5575992255566312 + 0.5445719329214475 ], "xaxis": "x", "y": [ @@ -13458,13 +14718,15 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 9.68054211035818E-4, - 0.018393030009680542 + 8.8261253309797E-4, + 0.0353045013239188, + 0.04236540158870256 ], "xaxis": "x", "y": [ "Norway", - "Switzerland" + "Switzerland", + "United Kingdom" ], "yaxis": "y", "type": "bar" @@ -14364,7 +15626,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -14390,18 +15652,18 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.005687203791469194, - 0.0018957345971563982, - 0.0037914691943127963, - 0.0018957345971563982, - 0.01042654028436019, - 0.10710900473933649, - 0.22843601895734597, - 0.004739336492890996, - 0.025592417061611375, - 9.478672985781991E-4, - 0.014218009478672985, - 0.006635071090047393 + 0.005194805194805195, + 0.0017316017316017316, + 0.003463203463203463, + 0.0025974025974025974, + 0.009523809523809525, + 0.09783549783549783, + 0.20952380952380953, + 0.004329004329004329, + 0.023376623376623377, + 8.658008658008658E-4, + 0.012987012987012988, + 0.006060606060606061 ], "xaxis": "x", "y": [ @@ -14438,7 +15700,7 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.4881516587677725 + 0.4658008658008658 ], "xaxis": "x", "y": [ @@ -14464,10 +15726,12 @@ "textposition": "auto", "texttemplate": "%{x}", "x": [ - 0.1004739336492891 + 0.0017316017316017316, + 0.15497835497835497 ], "xaxis": "x", "y": [ + "Switzerland", "United Kingdom" ], "yaxis": "y", @@ -15368,7 +16632,7 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" @@ -15461,7 +16725,7 @@ }, { "cell_type": "code", - "execution_count": 420, + "execution_count": 259, "outputs": [], "source": [], "metadata": { @@ -15470,7 +16734,7 @@ }, { "cell_type": "code", - "execution_count": 420, + "execution_count": 259, "outputs": [], "source": [], "metadata": { @@ -15479,7 +16743,7 @@ }, { "cell_type": "code", - "execution_count": 420, + "execution_count": 259, "outputs": [], "source": [], "metadata": { @@ -15488,7 +16752,7 @@ }, { "cell_type": "code", - "execution_count": 457, + "execution_count": 260, "outputs": [], "source": [ "appln_ipc_f = pd.read_csv(f\"{fromdir}/first-filings-with-IPC-raw.csv\", header=None,\n", @@ -15519,7 +16783,16 @@ }, { "cell_type": "code", - "execution_count": 458, + "execution_count": 260, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 261, "outputs": [], "source": [ "group = 'ipc_class'\n", @@ -15563,7 +16836,7 @@ }, { "cell_type": "code", - "execution_count": 459, + "execution_count": 262, "outputs": [], "source": [ "data = (appln_ipc_f.groupby(['filing_year','ipc_class'])[record_col].nunique(dropna=False).unstack()\n", @@ -15584,7 +16857,7 @@ }, { "cell_type": "code", - "execution_count": 460, + "execution_count": 263, "outputs": [], "source": [ "group = ['filing_year','ipc_class']\n", @@ -15687,277 +16960,1002 @@ }, { "cell_type": "code", - "execution_count": 463, + "execution_count": 264, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "data": [ { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", - "legendgroup": "A-Human necessities", + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "A-Human necessities", + "marker": { + "color": "#636efa", + "pattern": { + "shape": "" + } + }, + "name": "A-Human necessities", + "offsetgroup": "A-Human necessities", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 132 + ], + "xaxis": "x", + "y": [ + "A-Human necessities" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "B-Operations; transporting", + "marker": { + "color": "#EF553B", + "pattern": { + "shape": "" + } + }, + "name": "B-Operations; transporting", + "offsetgroup": "B-Operations; transporting", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 363 + ], + "xaxis": "x", + "y": [ + "B-Operations; transporting" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "C-Chemistry; metallurgy", + "marker": { + "color": "#00cc96", + "pattern": { + "shape": "" + } + }, + "name": "C-Chemistry; metallurgy", + "offsetgroup": "C-Chemistry; metallurgy", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 153 + ], + "xaxis": "x", + "y": [ + "C-Chemistry; metallurgy" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "D-Textiles; paper", + "marker": { + "color": "#ab63fa", + "pattern": { + "shape": "" + } + }, + "name": "D-Textiles; paper", + "offsetgroup": "D-Textiles; paper", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 14 + ], + "xaxis": "x", + "y": [ + "D-Textiles; paper" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "E-Fixed constructions", + "marker": { + "color": "#FFA15A", + "pattern": { + "shape": "" + } + }, + "name": "E-Fixed constructions", + "offsetgroup": "E-Fixed constructions", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 51 + ], + "xaxis": "x", + "y": [ + "E-Fixed constructions" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "F-Engineering", + "marker": { + "color": "#19d3f3", + "pattern": { + "shape": "" + } + }, + "name": "F-Engineering", + "offsetgroup": "F-Engineering", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 157 + ], + "xaxis": "x", + "y": [ + "F-Engineering" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "G-Physics", + "marker": { + "color": "#FF6692", + "pattern": { + "shape": "" + } + }, + "name": "G-Physics", + "offsetgroup": "G-Physics", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 263 + ], + "xaxis": "x", + "y": [ + "G-Physics" + ], + "yaxis": "y", + "type": "bar" + }, + { + "alignmentgroup": "True", + "cliponaxis": true, + "hovertemplate": "%{x:d}", + "legendgroup": "H-Electricity", + "marker": { + "color": "#B6E880", + "pattern": { + "shape": "" + } + }, + "name": "H-Electricity", + "offsetgroup": "H-Electricity", + "orientation": "h", + "showlegend": false, + "textangle": 0, + "textfont": { + "size": 12 + }, + "textposition": "outside", + "texttemplate": "%{x}", + "x": [ + 350 + ], + "xaxis": "x", + "y": [ + "H-Electricity" + ], + "yaxis": "y", + "type": "bar" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "A-Human necessities", + "line": { + "color": "#636efa" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "A-Human necessities", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 11.0, + 19.0, + 37.0, + 46.0, + 60.0, + 74.0, + 89.0, + 102.0, + 120.0, + 125.0, + 132.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "B-Operations; transporting", + "line": { + "color": "#EF553B" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "B-Operations; transporting", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 16.0, + 26.0, + 41.0, + 58.0, + 76.0, + 98.0, + 141.0, + 204.0, + 277.0, + 336.0, + 363.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "C-Chemistry; metallurgy", + "line": { + "color": "#00cc96" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "C-Chemistry; metallurgy", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 9.0, + 20.0, + 33.0, + 43.0, + 53.0, + 63.0, + 80.0, + 89.0, + 115.0, + 143.0, + 153.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "D-Textiles; paper", + "line": { + "color": "#ab63fa" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "D-Textiles; paper", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 1.0, + 1.0, + 1.0, + 2.0, + 5.0, + 6.0, + 9.0, + 11.0, + 13.0, + 14.0, + 14.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "E-Fixed constructions", + "line": { + "color": "#FFA15A" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "E-Fixed constructions", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 2.0, + 4.0, + 5.0, + 6.0, + 7.0, + 11.0, + 15.0, + 25.0, + 32.0, + 46.0, + 51.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "F-Engineering", + "line": { + "color": "#19d3f3" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "F-Engineering", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 7.0, + 10.0, + 26.0, + 34.0, + 43.0, + 51.0, + 68.0, + 96.0, + 124.0, + 150.0, + 157.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "G-Physics", + "line": { + "color": "#FF6692" + }, + "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "G-Physics", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 7.0, + 21.0, + 33.0, + 49.0, + 74.0, + 94.0, + 122.0, + 162.0, + 210.0, + 245.0, + 263.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "fillpattern": { + "shape": "" + }, + "hovertemplate": "%{y:d}", + "legendgroup": "H-Electricity", + "line": { + "color": "#B6E880" + }, "marker": { + "symbol": "circle" + }, + "mode": "lines", + "name": "H-Electricity", + "orientation": "v", + "showlegend": false, + "stackgroup": "1", + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x2", + "y": [ + 16.0, + 32.0, + 43.0, + 62.0, + 98.0, + 143.0, + 216.0, + 280.0, + 308.0, + 337.0, + 350.0 + ], + "yaxis": "y2", + "type": "scatter" + }, + { + "hovertemplate": "%{y:d}", + "legendgroup": "A-Human necessities", + "line": { "color": "#636efa", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "A-Human necessities", - "offsetgroup": "A-Human necessities", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 99 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "A-Human necessities" + 11.0, + 8.0, + 18.0, + 9.0, + 14.0, + 14.0, + 15.0, + 13.0, + 18.0, + 5.0, + 7.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "B-Operations; transporting", - "marker": { + "line": { "color": "#EF553B", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "B-Operations; transporting", - "offsetgroup": "B-Operations; transporting", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 341 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "B-Operations; transporting" + 16.0, + 10.0, + 15.0, + 17.0, + 18.0, + 22.0, + 43.0, + 63.0, + 73.0, + 59.0, + 27.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "C-Chemistry; metallurgy", - "marker": { + "line": { "color": "#00cc96", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "C-Chemistry; metallurgy", - "offsetgroup": "C-Chemistry; metallurgy", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 145 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "C-Chemistry; metallurgy" + 9.0, + 11.0, + 13.0, + 10.0, + 10.0, + 10.0, + 17.0, + 9.0, + 26.0, + 28.0, + 10.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "D-Textiles; paper", - "marker": { + "line": { "color": "#ab63fa", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "D-Textiles; paper", - "offsetgroup": "D-Textiles; paper", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 14 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "D-Textiles; paper" + 1.0, + 0.0, + 0.0, + 1.0, + 3.0, + 1.0, + 3.0, + 2.0, + 2.0, + 1.0, + 0.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "E-Fixed constructions", - "marker": { + "line": { "color": "#FFA15A", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "E-Fixed constructions", - "offsetgroup": "E-Fixed constructions", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 49 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "E-Fixed constructions" + 2.0, + 2.0, + 1.0, + 1.0, + 1.0, + 4.0, + 4.0, + 10.0, + 7.0, + 14.0, + 5.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "F-Engineering", - "marker": { + "line": { "color": "#19d3f3", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "F-Engineering", - "offsetgroup": "F-Engineering", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 148 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "F-Engineering" + 7.0, + 3.0, + 16.0, + 8.0, + 9.0, + 8.0, + 17.0, + 28.0, + 28.0, + 26.0, + 7.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "G-Physics", - "marker": { + "line": { "color": "#FF6692", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "G-Physics", - "offsetgroup": "G-Physics", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 231 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "G-Physics" + 7.0, + 14.0, + 12.0, + 16.0, + 25.0, + 20.0, + 28.0, + 40.0, + 48.0, + 35.0, + 18.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "alignmentgroup": "True", - "cliponaxis": true, - "hovertemplate": "%{x:d}", + "hovertemplate": "%{y:d}", "legendgroup": "H-Electricity", - "marker": { + "line": { "color": "#B6E880", - "pattern": { - "shape": "" - } + "dash": "solid" + }, + "marker": { + "symbol": "circle" }, + "mode": "markers+lines", "name": "H-Electricity", - "offsetgroup": "H-Electricity", - "orientation": "h", + "orientation": "v", "showlegend": false, - "textangle": 0, - "textfont": { - "size": 12 - }, - "textposition": "outside", - "texttemplate": "%{x}", "x": [ - 328 + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 ], - "xaxis": "x", + "xaxis": "x3", "y": [ - "H-Electricity" + 16.0, + 16.0, + 11.0, + 19.0, + 36.0, + 45.0, + 73.0, + 64.0, + 28.0, + 29.0, + 13.0 ], - "yaxis": "y", - "type": "bar" + "yaxis": "y3", + "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "A-Human necessities", "line": { - "color": "#636efa" + "color": "#636efa", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "A-Human necessities", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -15971,40 +17969,37 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ - 7.0, - 10.0, - 25.0, - 33.0, - 43.0, - 53.0, - 66.0, - 75.0, - 90.0, - 94.0, - 99.0 + 0.0, + -0.2727272727272727, + 0.6363636363636364, + -0.18181818181818182, + 0.2727272727272727, + 0.2727272727272727, + 0.36363636363636365, + 0.18181818181818182, + 0.6363636363636364, + -0.5454545454545454, + -0.36363636363636365 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "B-Operations; transporting", "line": { - "color": "#EF553B" + "color": "#EF553B", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "B-Operations; transporting", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -16018,40 +18013,37 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ - 15.0, - 23.0, - 38.0, - 52.0, - 65.0, - 85.0, - 126.0, - 186.0, - 258.0, - 317.0, - 341.0 + 0.0, + -0.375, + -0.0625, + 0.0625, + 0.125, + 0.375, + 1.6875, + 2.9375, + 3.5625, + 2.6875, + 0.6875 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "C-Chemistry; metallurgy", "line": { - "color": "#00cc96" + "color": "#00cc96", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "C-Chemistry; metallurgy", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -16065,40 +18057,37 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ - 9.0, - 20.0, - 33.0, - 42.0, - 52.0, - 62.0, - 78.0, - 87.0, - 111.0, - 136.0, - 145.0 + 0.0, + 0.2222222222222222, + 0.4444444444444444, + 0.1111111111111111, + 0.1111111111111111, + 0.1111111111111111, + 0.8888888888888888, + 0.0, + 1.8888888888888888, + 2.111111111111111, + 0.1111111111111111 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "D-Textiles; paper", "line": { - "color": "#ab63fa" + "color": "#ab63fa", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "D-Textiles; paper", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -16112,40 +18101,37 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ + 0.0, + -1.0, + -1.0, + 0.0, + 2.0, + 0.0, + 2.0, 1.0, 1.0, - 1.0, - 2.0, - 5.0, - 6.0, - 9.0, - 11.0, - 13.0, - 14.0, - 14.0 + 0.0, + -1.0 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "E-Fixed constructions", "line": { - "color": "#FFA15A" + "color": "#FFA15A", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "E-Fixed constructions", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -16159,40 +18145,37 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ - 2.0, - 4.0, + 0.0, + 0.0, + -0.5, + -0.5, + -0.5, + 1.0, + 1.0, 4.0, - 5.0, + 2.5, 6.0, - 9.0, - 13.0, - 23.0, - 30.0, - 44.0, - 49.0 + 1.5 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "F-Engineering", "line": { - "color": "#19d3f3" + "color": "#19d3f3", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "F-Engineering", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -16206,40 +18189,37 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ - 7.0, - 10.0, - 26.0, - 32.0, - 39.0, - 46.0, - 62.0, - 88.0, - 115.0, - 141.0, - 148.0 + 0.0, + -0.5714285714285714, + 1.2857142857142858, + 0.14285714285714285, + 0.2857142857142857, + 0.14285714285714285, + 1.4285714285714286, + 3.0, + 3.0, + 2.7142857142857144, + 0.0 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "G-Physics", "line": { - "color": "#FF6692" + "color": "#FF6692", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", + "mode": "markers+lines", "name": "G-Physics", "orientation": "v", "showlegend": false, - "stackgroup": "1", "x": [ 2011, 2012, @@ -16253,425 +18233,1371 @@ 2020, 2021 ], - "xaxis": "x2", + "xaxis": "x4", "y": [ - 5.0, - 17.0, - 29.0, - 44.0, - 69.0, - 87.0, - 110.0, - 147.0, - 185.0, - 215.0, - 231.0 + 0.0, + 1.0, + 0.7142857142857143, + 1.2857142857142858, + 2.5714285714285716, + 1.8571428571428572, + 3.0, + 4.714285714285714, + 5.857142857142857, + 4.0, + 1.5714285714285714 ], - "yaxis": "y2", + "yaxis": "y4", "type": "scatter" }, { - "fillpattern": { - "shape": "" - }, - "hovertemplate": "%{y:d}", + "hovertemplate": "%{y:.0f}00%", "legendgroup": "H-Electricity", "line": { - "color": "#B6E880" + "color": "#B6E880", + "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "lines", - "name": "H-Electricity", - "orientation": "v", - "showlegend": false, - "stackgroup": "1", - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x2", - "y": [ - 14.0, - 28.0, - 38.0, - 55.0, - 90.0, - 133.0, - 204.0, - 268.0, - 291.0, - 317.0, - 328.0 - ], - "yaxis": "y2", - "type": "scatter" + "mode": "markers+lines", + "name": "H-Electricity", + "orientation": "v", + "showlegend": false, + "x": [ + 2011, + 2012, + 2013, + 2014, + 2015, + 2016, + 2017, + 2018, + 2019, + 2020, + 2021 + ], + "xaxis": "x4", + "y": [ + 0.0, + 0.0, + -0.3125, + 0.1875, + 1.25, + 1.8125, + 3.5625, + 3.0, + 0.75, + 0.8125, + -0.1875 + ], + "yaxis": "y4", + "type": "scatter" + } + ], + "layout": { + "template": { + "data": { + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0.0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1.0, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "A-Human necessities", - "line": { - "color": "#636efa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "A-Human necessities", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 7.0, - 3.0, - 15.0, - 8.0, - 10.0, - 10.0, - 13.0, - 9.0, - 15.0, - 4.0, - 5.0 + "xaxis": { + "anchor": "y", + "domain": [ + 0.0, + 0.45 ], - "yaxis": "y3", - "type": "scatter" + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickformat": ".0f", + "range": [ + 0, + 400 + ] }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "B-Operations; transporting", - "line": { - "color": "#EF553B", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "B-Operations; transporting", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 15.0, - 8.0, - 15.0, - 14.0, - 13.0, - 20.0, - 41.0, - 60.0, - 72.0, - 59.0, - 24.0 + "yaxis": { + "anchor": "x", + "domain": [ + 0.625, + 1.0 ], - "yaxis": "y3", - "type": "scatter" + "categoryorder": "total ascending", + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "C-Chemistry; metallurgy", - "line": { - "color": "#00cc96", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "C-Chemistry; metallurgy", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 9.0, - 11.0, - 13.0, - 9.0, - 10.0, - 10.0, - 16.0, - 9.0, - 24.0, - 25.0, - 9.0 + "xaxis2": { + "anchor": "y2", + "domain": [ + 0.55, + 1.0 ], - "yaxis": "y3", - "type": "scatter" + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "range": [ + 2010.8, + 2022.2 + ] }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "D-Textiles; paper", - "line": { - "color": "#ab63fa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "D-Textiles; paper", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 1.0, - 0.0, - 0.0, - 1.0, - 3.0, - 1.0, - 3.0, - 2.0, - 2.0, - 1.0, - 0.0 + "yaxis2": { + "anchor": "x2", + "domain": [ + 0.625, + 1.0 ], - "yaxis": "y3", - "type": "scatter" + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "tickformat": ".0f" }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "E-Fixed constructions", - "line": { - "color": "#FFA15A", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "E-Fixed constructions", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 2.0, - 2.0, + "xaxis3": { + "anchor": "y3", + "domain": [ 0.0, - 1.0, - 1.0, - 3.0, - 4.0, - 10.0, - 7.0, - 14.0, - 5.0 + 0.45 ], - "yaxis": "y3", - "type": "scatter" + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "range": [ + 2010.8, + 2022.2 + ] }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "F-Engineering", - "line": { - "color": "#19d3f3", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "F-Engineering", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 7.0, - 3.0, - 16.0, - 6.0, - 7.0, - 7.0, - 16.0, - 26.0, - 27.0, - 26.0, - 7.0 + "yaxis3": { + "anchor": "x3", + "domain": [ + 0.0, + 0.375 ], - "yaxis": "y3", - "type": "scatter" + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside" }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "G-Physics", - "line": { - "color": "#FF6692", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "G-Physics", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 + "xaxis4": { + "anchor": "y4", + "domain": [ + 0.55, + 1.0 ], - "xaxis": "x3", - "y": [ - 5.0, - 12.0, - 12.0, - 15.0, - 25.0, - 18.0, - 23.0, - 37.0, - 38.0, - 30.0, - 16.0 + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "range": [ + 2010.8, + 2022.2 + ] + }, + "yaxis4": { + "anchor": "x4", + "domain": [ + 0.0, + 0.375 ], - "yaxis": "y3", - "type": "scatter" + "showgrid": true, + "showline": true, + "linewidth": 1, + "linecolor": "black", + "mirror": true, + "ticks": "outside", + "zeroline": true, + "zerolinewidth": 0.5, + "zerolinecolor": "grey", + "tickformat": ".0%" }, - { - "hovertemplate": "%{y:d}", - "legendgroup": "H-Electricity", - "line": { - "color": "#B6E880", - "dash": "solid" + "annotations": [ + { + "font": { + "size": 14 + }, + "showarrow": false, + "text": "Distribution of IPC classes", + "x": 0.225, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper" }, - "marker": { - "symbol": "circle" + { + "font": { + "size": 14 + }, + "showarrow": false, + "text": "Cumulative sum of related co-patents", + "x": 0.775, + "xanchor": "center", + "xref": "paper", + "y": 1.0, + "yanchor": "bottom", + "yref": "paper" }, - "mode": "markers+lines", - "name": "H-Electricity", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x3", - "y": [ - 14.0, - 14.0, - 10.0, - 17.0, - 35.0, - 43.0, - 71.0, - 64.0, - 23.0, - 26.0, - 11.0 - ], - "yaxis": "y3", - "type": "scatter" - }, + { + "font": { + "size": 14 + }, + "showarrow": false, + "text": "Related co-patents per year", + "x": 0.225, + "xanchor": "center", + "xref": "paper", + "y": 0.375, + "yanchor": "bottom", + "yref": "paper" + }, + { + "font": { + "size": 14 + }, + "showarrow": false, + "text": "Relative growth of co-patents", + "x": 0.775, + "xanchor": "center", + "xref": "paper", + "y": 0.375, + "yanchor": "bottom", + "yref": "paper" + } + ], + "barmode": "relative", + "font": { + "family": "Montserrat", + "size": 14 + } + }, + "config": { + "displayModeBar": false, + "responsive": true, + "plotlyServerURL": "https://plotly.com" + } + }, + "text/html": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from plotly.subplots import make_subplots\n", + "import plotly.graph_objects as go\n", + "\n", + "# dom_distr\n", + "# year_output_by_domain\n", + "# rel_output_by_domain\n", + "# cumsum_by_domain\n", + "\n", + "figsuper = make_subplots(rows=2, cols=2, subplot_titles=[\"Distribution of IPC classes\",\"Cumulative sum of related co-patents\",\n", + " \"Related co-patents per year\",\"Relative growth of co-patents\"])\n", + "\n", + "\n", + "for trace in list(dom_distr.select_traces()):\n", + " trace.showlegend=False\n", + " # trace.barmode\n", + " figsuper.add_trace(trace,\n", + " row=1, col=1\n", + " )\n", + "\n", + "for trace in list(cumsum_by_domain.select_traces()):\n", + " trace.showlegend=False\n", + " figsuper.add_trace(trace,\n", + " row=1, col=2\n", + " )\n", + "\n", + "for trace in list(year_output_by_domain.select_traces()):\n", + " trace.showlegend=False\n", + " figsuper.add_trace(trace,\n", + " row=2, col=1\n", + " )\n", + "\n", + "for trace in list(rel_output_by_domain.select_traces()):\n", + " trace.showlegend=False\n", + " figsuper.add_trace(trace,\n", + " row=2, col=2\n", + " )\n", + "\n", + "\n", + "figsuper.update_layout(yaxis={'categoryorder':'total ascending'}, barmode='relative')\n", + "figsuper.update_yaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "figsuper.update_xaxes(\n", + " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", + " ticks=\"outside\")\n", + "\n", + "figsuper.update_layout({'template':\"plotly\",\"font_family\":\"Montserrat\"})\n", + "figsuper['layout']['xaxis1'].update(tickformat=\".0f\")\n", + "figsuper['layout']['yaxis2'].update(tickformat=\".0f\")\n", + "figsuper['layout']['yaxis4'].update(zeroline=True, zerolinewidth=0.5, zerolinecolor='grey',tickformat=\".0%\")\n", + "figsuper['layout'][f'xaxis'][\"range\"] = [0,400]\n", + "for i in range(2,5):\n", + " figsuper['layout'][f'xaxis{i}'][\"range\"] = [2010.8,2022.2]\n", + "figsuper['layout'][\"font\"][\"size\"]=14\n", + "for a in figsuper['layout'][\"annotations\"]:\n", + " a[\"font\"][\"size\"] = 14\n", + "figsuper.show(config= dict(displayModeBar = False, responsive = True),height=800,width=1600,scale = 4)\n", + "figsuper.write_image(rf\"{fromdir}/plots/ipc_classes.png\",height=900,width=1600,scale = 4)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 265, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\radvanyi\\.conda\\envs\\MOME_BIGDATA\\lib\\site-packages\\openpyxl\\reader\\workbook.py:118: UserWarning:\n", + "\n", + "Print area cannot be set to Defined name: Sheet1!$A:$B.\n", + "\n" + ] + }, + { + "data": { + "text/plain": " TOPIC IPC \n2 Solid fuels C10L5/00,5/40-5/48 \\\n3 Torrefaction of biomass C10B53/02 \n5 Liquid fuels C10L1/00,1/02,1/14 \n6 Vegetable oils C10L1/02,1/19 \n7 Biodiesel C07C67/00,69/00 \n.. ... ... \n287 Nuclear engineering G21 \n288 Fusion reactors G21B \n289 Nuclear (fission) reactors G21C \n290 Nuclear power plant G21D \n291 Gas turbine power plants using heat source of ... F02C1/05 \n\n IPC_f \n2 C10L5/00 \n3 C10B53/02 \n5 C10L1/00 \n6 C10L1/02 \n7 C07C67/00 \n.. ... \n287 G21 \n288 G21B \n289 G21C \n290 G21D \n291 F02C1/05 \n\n[186 rows x 3 columns]", + "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
TOPICIPCIPC_f
2Solid fuelsC10L5/00,5/40-5/48C10L5/00
3Torrefaction of biomassC10B53/02C10B53/02
5Liquid fuelsC10L1/00,1/02,1/14C10L1/00
6Vegetable oilsC10L1/02,1/19C10L1/02
7BiodieselC07C67/00,69/00C07C67/00
............
287Nuclear engineeringG21G21
288Fusion reactorsG21BG21B
289Nuclear (fission) reactorsG21CG21C
290Nuclear power plantG21DG21D
291Gas turbine power plants using heat source of ...F02C1/05F02C1/05
\n

186 rows × 3 columns

\n
" + }, + "execution_count": 265, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import re\n", + "#\n", + "# https://gitlab.com/area-science-park-sustainability/green-patents/-/tree/main\n", + "#\n", + "clean_codes = pd.read_excel(f'{fromdir}/2IPCGreenInventoryList_2022WIPO.xlsx')\n", + "ipc_green = clean_codes[[\"TOPIC\",\"IPC\"]].dropna()\n", + "ipc_green[\"IPC\"] = ipc_green[\"IPC\"].apply(lambda x: re.sub(r\"\\s+\", '', x))\n", + "ipc_green[\"IPC_f\"] = ipc_green[\"IPC\"].str.split(\",\").str[0].str.split(\"-\").str[0]\n", + "ipc_green" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 266, + "outputs": [ + { + "data": { + "text/plain": "'C10L5/00,5/40-5/48; C10B53/02; C10L1/00,1/02,1/14; C10L1/02,1/19; C07C67/00,69/00; C10L1/02,1/182; C02F3/28,11/04; C12N1/13,1/15,1/21,5/10,15/00; C10L3/00; H01M4/86-4/98,8/00-8/24,12/00-12/08; H01M4/86-4/98; H01M8/00-8/24,50/00-50/171; H01M12/00-12/08; C10B53/00; C10L5/00; C10L5/42,5/44; F23G7/00,7/10; C10J3/02,3/46; B09B3/00; C10L5/48; C21B5/06; D21C11/00; A62D3/02; B09B; B01D53/02,53/04,53/047,53/14,53/22,53/24; C10L5/46; E02B9/00-9/06; E02B9/08; F03B; F03B13/12-13/26; F03B15/00-15/22; B63H19/02,19/04; F03G7/05; F03D; H02K7/18; B63B35/00; B60K16/00; B60L8/00; B63H13/00; F24S; H01L27/142,31/00-31/078; H01L27/30,51/42-51/48; H01L25/00,25/03,25/16,25/18,31/042; C01B33/02; G05F1/67; F21L4/00; H02J7/35; H01G9/20; F24D17/00,18/00; F24D3/00,5/00,11/00,19/00; F24S90/00; F03D1/04,9/00,13/20; C02F1/14; F02C1/05; H01L31/0525; F03G6/00-6/06; E04D13/00,13/18; F22B1/00; F25B27/00; F26B3/00,3/28; F24S23/00; F24S10/10; F24T; F01K; F03G4/00-4/06,7/04; F24T10/00-50/00; F24D11/02; F24D15/04; F24D17/02,18/00; F24H4/00; F25B30/00; F01K27/00; F01K23/06-23/10; F01K17/00,23/04; F02C6/18; F25B27/02; C02F1/16; D21F5/20; F22B1/02; F23G5/46; F24F12/00; F27D17/00; F28D17/00-20/00; C10J3/86; F03G5/00-5/08; B60K6/00,6/20; B60W20/00; F16H3/00-3/78,48/00-48/30; H02K29/08; H02K49/10; B60L7/10-7/22; B60L9/00; B60L50/50-58/40; F02B43/00; H02J7/00; B62D35/00,35/02; B62K; B61; B61D17/02; B63H9/00; B63H16/00; B63H21/18; B64G1/44; B60K6/28; H02J; H02J9/00; B60L3/00; C09K5/00; F21K99/00; E04B1/62,1/74-1/80,1/88,1/90; E04C1/40,1/41,2/284-2/296; E06B3/263; E04B2/00; E04B5/00; E04B7/00; E04B9/00; F03G7/08; B60K6/10,6/30; A61L11/00; A62D3/00,101/00; G21F9/00; B03B9/06; B09C; D21B1/08,1/32; F23G; A43B1/12,21/14; B22F8/00; C04B7/24-7/30; C04B18/04-18/10; C05F; C08J11/00-11/28; B29B17/00; B62D67/00; C08J11/04-11/28; C10G1/10; C10L5/46,5/48; C22B7/00-7/04,19/30,25/06; D01G11/00; D21C5/02; H01J9/50,9/52; H01M6/52,10/54; B01D53/14,53/22,53/62; B01D53/00-53/96; F01N3/00-3/38; B01D53/92; C21C5/38; C10B21/18; F23G7/06; F01N9/00; B01D45/00-51/00; C21B7/22; C10L10/02,10/06; F23J15/00; C09K3/22; G08B21/12; B63J4/00; C05F7/00; C09K3/32; B63B35/32; E03C1/12; C02F1/00,3/00,9/00; G21C13/10; A01G23/00; A01G25/00; A01N25/00-65/00; C09K17/00; G06Q; E04H1/00; G21; G21B; G21C; G21D'" + }, + "execution_count": 266, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ipc_codes = \"; \".join(ipc_green[\"IPC\"].drop_duplicates())\n", + "ipc_codes" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 267, + "outputs": [], + "source": [ + "chat_gpt_convert = \"\"\"C10L5/00; C10L5/40; C10L5/41; C10L5/42; C10L5/43; C10L5/44; C10L5/45; C10L5/46; C10L5/47; C10L5/48; C10B53/02; C10L1/00; C10L1/02; C10L1/14; C10L1/02; C10L1/19; C07C67/00; C07C69/00; C10L1/02; C10L1/182; C02F3/28; C02F3/11; C02F11/04; C12N1/13; C12N1/15; C12N1/21; C12N5/10; C12N15/00; C10L3/00; H01M4/86; H01M4/87; H01M4/88; H01M4/89; H01M4/90; H01M4/91; H01M4/92; H01M4/93; H01M4/94; H01M4/95; H01M4/96; H01M4/97; H01M4/98; H01M8/00; H01M8/01; H01M8/02; H01M8/03; H01M8/04; H01M8/05; H01M8/06; H01M8/07; H01M8/08; H01M8/09; H01M8/10; H01M8/11; H01M8/12; H01M8/13; H01M8/14; H01M8/15; H01M8/16; H01M8/17; H01M8/18; H01M8/19; H01M8/50; H01M8/51; H01M8/52; H01M8/53; H01M8/54; H01M8/55; H01M8/56; H01M8/57; H01M8/58; H01M12/00; H01M12/01; H01M12/02; H01M12/03; H01M12/04; H01M12/05; H01M12/06; H01M12/07; H01M12/08; C10B53/00; C10L5/00; C10L5/42; C10L5/44; F23G7/00; F23G7/10; C10J3/02; C10J3/03; B09B3/00; C10L5/48; C21B5/06; D21C11/00; A62D3/02; F23G7/00; F23G7/10; B09B3/00; B09B; B01D53/02; B01D53/04; B01D53/047; B01D53/14; B01D53/22; B01D53/24; C10L5/46; E02B9/00; E02B9/01; E02B9/02; E02B9/03; E02B9/04; E02B9/05; E02B9/06; E02B9/08; F03B; F03B13/12; F03B13/13; F03B13/14; F03B13/15; F03B13/16; F03B13/17; F03B13/18; F03B13/19; F03B13/20; F03B13/21; F03B13/22; F03B13/23; F03B13/24; F03B13/25; F03B13/26; F03B15/00; F03B15/01; F03B15/02; F03B15/03; F03B15/04; F03B15/05; F03B15/06; F03B15/07; F03B15/08; F03B15/09; F03B15/10; F03B15/11; F03B15/12; F03B15/13; F03B15/14; F03B15/15; F03B15/16; F03B15/17; F03B15/18; F03B15/19; F03B15/20; F03B15/21; B63H19/02; B63H19/04; F03G7/05; F03D; H02K7/18; B63B35/00; B60K16/00; B60L8/00; B63H13/00; F24S; H01L27/142; H01L27/31; H01L27/31; H01L27/32; H01L27/33; H01L27/34; H01L27/35; H01L27/36; H01L27/37; H01L27/38; H01L27/39; H01L27/40; H01L27/41; H01L27/42; H01L27/43; H01L27/44; H01L27/45; H01L27/46; H01L27/47; H01L27/48; C01B33/02; G05F1/67; F21L4/00; H02J7/35; H01G9/20; F24S; F24D17/00; F24D18/00; F24D3/00; F24D5/00; F24D11/00; F24D19/00; F24S90/00; F03D1/04; F03D1/09; F03D1/13; F03D1/20; C02F1/14; F02C1/05; H01L31/0525; B60K16/00; B60L8/00; F03G6/00; F03G6/01; F03G6/02; F03G6/03; F03G6/04; F03G6/05; F03G6/06; E04D13/00; E04D13/18; F22B1/00; F25B27/00; F26B3/00; F26B3/28; F24S23/00; F24S10/10; F24T; F01K; F03G4/00; F03G4/01; F03G4/02; F03G4/03; F03G4/04; F03G4/05; F03G4/06; F24T10/00; F24T50/00; F24T50/10; F24T50/20; F24T50/30; F24T50/40; F24T50/50; F24D11/02; F24D15/04; F24D17/02; F24D18/00; F24H4/00; F25B30/00; F01K27/00; F01K23/06; F01K23/07; F01K23/08; F01K23/09; F01K23/10; F01K17/00; F01K23/04; F02C6/18; F25B27/02; C02F1/16; D21F5/20; F22B1/02; F23G5/46; F24F12/00; F27D17/00; F28D17/00; F28D18/00; F28D19/00; F28D20/00; C10J3/86; F03G5/00; F03G5/01; F03G5/02; F03G5/03; F03G5/04; F03G5/05; B60K6/00; B60K6/20; B60W20/00; F16H3/00; F16H3/01; F16H3/02; F16H3/03; F16H3/04; F16H3/05; F16H3/06; F16H3/07; F16H3/08; F16H3/09; F16H3/10; F16H3/11; F16H3/12; F16H3/13; F16H3/14; F16H3/15; F16H3/16; F16H3/17; F16H3/18; F16H3/19; F16H3/20; F16H3/21; F16H3/22; F16H3/23; F16H3/24; F16H3/25; F16H3/26; F16H3/27; F16H3/28; F16H3/29; F16H3/30; F16H3/31; F16H3/32; F16H3/33; F16H3/34; F16H3/35; F16H3/36; F16H3/37; F16H3/38; F16H3/48; F16H3/49; F16H3/50; F16H3/51; F16H3/52; F16H3/53; F16H3/54; F16H3/55; F16H3/56; F16H3/57; F16H3/58; H02K29/08; H02K49/10; B60L7/10; B60L7/11; B60L7/12; B60L7/13; B60L7/14; B60L7/15; B60L7/16; B60L7/17; B60L7/18; B60L7/19; B60L7/20; B60L7/21; B60L7/22; B60L8/00; B60L9/00; B60L50/50; B60L50/51; B60L50/52; B60L50/53; B60L50/54; B60L50/55; B60L50/56; B60L50/57; B60L50/58; F02B43/00; B60K16/00; H02J7/00; B62D35/00; B62D35/02; B62K; B61; B61D17/02; B63H9/00; B63H13/00; B63H19/02; B63H19/04; B63H16/00; B63H21/18; B64G1/44; B60K6/28; H02J; H02J9/00; B60L3/00; C09K5/00; F21K99/00; E04B1/62; E04B1/74; E04B1/75; E04B1/76; E04B1/77; E04B1/78; E04B1/79; E04B1/80; E04B1/88; E04B1/90; E06B3/263; E04B2/00; E04B5/00; E04B7/00; E04B9/00; F03G7/08; B60K6/10; B60K6/30; B09B; A61L11/00; A62D3/00; A62D101/00; G21F9/00; B03B9/06; B09C; D21B1/08; D21B1/32; F23G; A43B1/12; A43B21/14; B22F8/00; C04B7/24; C04B7/25; C04B7/26; C04B7/27; C04B7/28; C04B7/29; C04B7/30; C04B18/04; C04B18/05; C04B18/06; C04B18/07; C04B18/08; C04B18/09; C05F; C08J11/00; C08J11/01; C08J11/02; C08J11/03; C08J11/04; C08J11/05; C08J11/06; C08J11/07; C08J11/08; C08J11/09; C08J11/10; C08J11/11; C08J11/12; C08J11/13; C08J11/14; C08J11/15; C08J11/16; C08J11/17; C08J11/18; C08J11/19; C08J11/20; C08J11/21; C08J11/22; C08J11/23; C08J11/24; C08J11/25; C08J11/26; C08J11/27; C08J11/28; C08J11/29; C08J11/30; C08J11/31; C08J11/32; C08J11/33; C08J11/34; C08J11/35; C08J11/36; C08J11/37; C08J11/38; C08J11/39; B29B17/00; B62D67/00; C08J11/04; C08J11/05; C08J11/06; C08J11/07; C08J11/08; C08J11/09; C08J11/10; C08J11/11; C08J11/12; C08J11/13; C08J11/14; C08J11/15; C08J11/16; C08J11/17; C08J11/18; C08J11/19; C08J11/20; C08J11/21; C08J11/22; C08J11/23; C08J11/24; C08J11/25; C08J11/26; C08J11/27; C08J11/28; C08J11/29; C08J11/30; C08J11/31; C08J11/32; C08J11/33; C08J11/34; C08J11/35; C08J11/36; C08J11/37; C08J11/38; C08J11/39; C08J11/40; C08J11/41; C08J11/42; C08J11/43; C08J11/44; C08J11/45; C08J11/46; C08J11/47; C08J11/48; C08J11/49; C08J11/50; C08J11/51; C08J11/52; C08J11/53; C08J11/54; C08J11/55; C08J11/56; C08J11/57; C08J11/58; C08J11/59; C08J11/60; C08J11/61; C08J11/62; C08J11/63; C08J11/64; C08J11/65; C08J11/66; C08J11/67; C08J11/68; C08J11/69; C08J11/70; C08J11/71; C08J11/72; C08J11/73; C08J11/74; C08J11/75; C08J11/76; C08J11/77; C08J11/78; C08J11/79; C08J11/80; C08J11/81; C08J11/82; C08J11/83; C08J11/84; C08J11/85; C08J11/86; C08J11/87; C08J11/88; C08J11/89; C08J11/90; C08J11/91; C08J11/92; C08J11/93; C08J11/94; C08J11/95; C08J11/96; C08J11/97; C08J11/98; C08J11/99; C10G1/10; C10L5/46; C10L5/48; C22B7/00; C22B7/01; C22B7/02; C22B7/03; C22B7/04; C22B7/19; C22B7/30; C22B7/25; C22B7/06; D01G11/00; D21C5/02; H01J9/50; H01J9/52; H01M6/52; H01M10/54; B01D53/14; B01D53/22; B01D53/62; B01D53/92; C21C5/38; C10B21/18; F23G7/06; F01N9/00; B01D45/00; B01D45/01; B01D45/02; B01D45/03; B01D45/04; B01D45/05; B01D45/06; B01D45/07; B01D45/08; B01D45/09; B01D45/10; B01D45/11; B01D45/12; B01D45/13; B01D45/14; B01D45/15; B01D45/16; B01D45/17; B01D45/18; B01D45/19; B01D45/20; B01D45/21; B01D45/22; B01D45/23; B01D45/24; B01D45/25; B01D45/26; B01D45/27; B01D45/28; B01D45/29; B01D45/30; B01D45/31; B01D45/32; B01D45/33; B01D45/34; B01D45/35; B01D45/36; B01D45/37; B01D45/38; B01D45/39; B01D45/40; B01D45/41; B01D45/42; B01D45/43; B01D45/44; B01D45/45; B01D45/46; B01D45/47; B01D45/48; B01D45/49; B01D45/50; B01D45/51; B01D45/52; B01D45/53; B01D45/54; B01D45/55; B01D45/56; B01D45/57; B01D45/58; B01D45/59; B01D45/60; B01D45/61; B01D45/62; B01D45/63; B01D45/64; B01D45/65; B01D45/66; B01D45/67; B01D45/68; B01D45/69; B01D45/70; B01D45/71; B01D45/72; B01D45/73; B01D45/74; B01D45/75; B01D45/76; B01D45/77; B01D45/78; B01D45/79; B01D45/80; B01D45/81; B01D45/82; B01D45/83; B01D45/84; B01D45/85; B01D45/86; B01D45/87; B01D45/88; B01D45/89; B01D45/90; B01D45/91; B01D45/92; B01D45/93; B01D45/94; B01D45/95; B01D45/96; B01D45/97; B01D45/98; B01D45/99; C21B7/22; C10L10/02; C10L10/06; F23J15/00; C09K3/22; G08B21/12; B63J4/00; C05F7/00; C09K3/32; B63B35/32; E03C1/12; C02F1/00; C02F3/00; C02F9/00; G21C13/10; A01G23/00; A01G25/00; A01N25/00; A01N25/01; A01N25/02; A01N25/03; A01N25/04; A01N25/05; A01N25/06; A01N25/07; A01N25/08; A01N25/09; A01N25/10; A01N25/11; A01N25/12; A01N25/13; A01N25/14; A01N25/15; A01N25/16; A01N25/17; A01N25/18; A01N25/19; A01N25/20; A01N25/21; A01N25/22; A01N25/23; A01N25/24; A01N25/25; A01N25/26; A01N25/27; A01N25/28; A01N25/29; A01N25/30; A01N25/31; A01N25/32; A01N25/33; A01N25/34; A01N25/35; A01N25/36; A01N25/37; A01N25/38; A01N25/39; A01N25/40; A01N25/41; A01N25/42; A01N25/43; A01N25/44; A01N25/45; A01N25/46; A01N25/47; A01N25/48; A01N25/49; A01N25/50; A01N25/51; A01N25/52; A01N25/53; A01N25/54; A01N25/55; A01N25/56; A01N25/57; A01N25/58; A01N25/59; A01N25/60; A01N25/61; A01N25/62; A01N25/63; A01N25/64; A01N25/65; A01N25/66; A01N25/67; A01N25/68; A01N25/69; A01N25/70; A01N25/71; A01N25/72; A01N25/73; A01N25/74; A01N25/75; A01N25/76; A01N25/77; A01N25/78; A01N25/79; A01N25/80; A01N25/81; A01N25/82; A01N25/83; A01N25/84; A01N25/85; A01N25/86; A01N25/87; A01N25/88; A01N25/89; A01N25/90; A01N25/91; A01N25/92; A01N25/93; A01N25/94; A01N25/95; A01N25/96; A01N25/97; A01N25/98; A01N25/99; C09K17/00; C05F; G06Q; E04H1/00; G21; G21B; G21C; G21D; F02C1/05\"\"\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 268, + "outputs": [ + { + "data": { + "text/plain": "'C10L5/00|C10L5/40|C10L5/41|C10L5/42|C10L5/43|C10L5/44|C10L5/45|C10L5/46|C10L5/47|C10L5/48|C10B53/02|C10L1/00|C10L1/02|C10L1/14|C10L1/02|C10L1/19|C07C67/00|C07C69/00|C10L1/02|C10L1/182|C02F3/28|C02F3/11|C02F11/04|C12N1/13|C12N1/15|C12N1/21|C12N5/10|C12N15/00|C10L3/00|H01M4/86|H01M4/87|H01M4/88|H01M4/89|H01M4/90|H01M4/91|H01M4/92|H01M4/93|H01M4/94|H01M4/95|H01M4/96|H01M4/97|H01M4/98|H01M8/00|H01M8/01|H01M8/02|H01M8/03|H01M8/04|H01M8/05|H01M8/06|H01M8/07|H01M8/08|H01M8/09|H01M8/10|H01M8/11|H01M8/12|H01M8/13|H01M8/14|H01M8/15|H01M8/16|H01M8/17|H01M8/18|H01M8/19|H01M8/50|H01M8/51|H01M8/52|H01M8/53|H01M8/54|H01M8/55|H01M8/56|H01M8/57|H01M8/58|H01M12/00|H01M12/01|H01M12/02|H01M12/03|H01M12/04|H01M12/05|H01M12/06|H01M12/07|H01M12/08|C10B53/00|C10L5/00|C10L5/42|C10L5/44|F23G7/00|F23G7/10|C10J3/02|C10J3/03|B09B3/00|C10L5/48|C21B5/06|D21C11/00|A62D3/02|F23G7/00|F23G7/10|B09B3/00|B09B|B01D53/02|B01D53/04|B01D53/047|B01D53/14|B01D53/22|B01D53/24|C10L5/46|E02B9/00|E02B9/01|E02B9/02|E02B9/03|E02B9/04|E02B9/05|E02B9/06|E02B9/08|F03B|F03B13/12|F03B13/13|F03B13/14|F03B13/15|F03B13/16|F03B13/17|F03B13/18|F03B13/19|F03B13/20|F03B13/21|F03B13/22|F03B13/23|F03B13/24|F03B13/25|F03B13/26|F03B15/00|F03B15/01|F03B15/02|F03B15/03|F03B15/04|F03B15/05|F03B15/06|F03B15/07|F03B15/08|F03B15/09|F03B15/10|F03B15/11|F03B15/12|F03B15/13|F03B15/14|F03B15/15|F03B15/16|F03B15/17|F03B15/18|F03B15/19|F03B15/20|F03B15/21|B63H19/02|B63H19/04|F03G7/05|F03D|H02K7/18|B63B35/00|B60K16/00|B60L8/00|B63H13/00|F24S|H01L27/142|H01L27/31|H01L27/31|H01L27/32|H01L27/33|H01L27/34|H01L27/35|H01L27/36|H01L27/37|H01L27/38|H01L27/39|H01L27/40|H01L27/41|H01L27/42|H01L27/43|H01L27/44|H01L27/45|H01L27/46|H01L27/47|H01L27/48|C01B33/02|G05F1/67|F21L4/00|H02J7/35|H01G9/20|F24S|F24D17/00|F24D18/00|F24D3/00|F24D5/00|F24D11/00|F24D19/00|F24S90/00|F03D1/04|F03D1/09|F03D1/13|F03D1/20|C02F1/14|F02C1/05|H01L31/0525|B60K16/00|B60L8/00|F03G6/00|F03G6/01|F03G6/02|F03G6/03|F03G6/04|F03G6/05|F03G6/06|E04D13/00|E04D13/18|F22B1/00|F25B27/00|F26B3/00|F26B3/28|F24S23/00|F24S10/10|F24T|F01K|F03G4/00|F03G4/01|F03G4/02|F03G4/03|F03G4/04|F03G4/05|F03G4/06|F24T10/00|F24T50/00|F24T50/10|F24T50/20|F24T50/30|F24T50/40|F24T50/50|F24D11/02|F24D15/04|F24D17/02|F24D18/00|F24H4/00|F25B30/00|F01K27/00|F01K23/06|F01K23/07|F01K23/08|F01K23/09|F01K23/10|F01K17/00|F01K23/04|F02C6/18|F25B27/02|C02F1/16|D21F5/20|F22B1/02|F23G5/46|F24F12/00|F27D17/00|F28D17/00|F28D18/00|F28D19/00|F28D20/00|C10J3/86|F03G5/00|F03G5/01|F03G5/02|F03G5/03|F03G5/04|F03G5/05|B60K6/00|B60K6/20|B60W20/00|F16H3/00|F16H3/01|F16H3/02|F16H3/03|F16H3/04|F16H3/05|F16H3/06|F16H3/07|F16H3/08|F16H3/09|F16H3/10|F16H3/11|F16H3/12|F16H3/13|F16H3/14|F16H3/15|F16H3/16|F16H3/17|F16H3/18|F16H3/19|F16H3/20|F16H3/21|F16H3/22|F16H3/23|F16H3/24|F16H3/25|F16H3/26|F16H3/27|F16H3/28|F16H3/29|F16H3/30|F16H3/31|F16H3/32|F16H3/33|F16H3/34|F16H3/35|F16H3/36|F16H3/37|F16H3/38|F16H3/48|F16H3/49|F16H3/50|F16H3/51|F16H3/52|F16H3/53|F16H3/54|F16H3/55|F16H3/56|F16H3/57|F16H3/58|H02K29/08|H02K49/10|B60L7/10|B60L7/11|B60L7/12|B60L7/13|B60L7/14|B60L7/15|B60L7/16|B60L7/17|B60L7/18|B60L7/19|B60L7/20|B60L7/21|B60L7/22|B60L8/00|B60L9/00|B60L50/50|B60L50/51|B60L50/52|B60L50/53|B60L50/54|B60L50/55|B60L50/56|B60L50/57|B60L50/58|F02B43/00|B60K16/00|H02J7/00|B62D35/00|B62D35/02|B62K|B61|B61D17/02|B63H9/00|B63H13/00|B63H19/02|B63H19/04|B63H16/00|B63H21/18|B64G1/44|B60K6/28|H02J|H02J9/00|B60L3/00|C09K5/00|F21K99/00|E04B1/62|E04B1/74|E04B1/75|E04B1/76|E04B1/77|E04B1/78|E04B1/79|E04B1/80|E04B1/88|E04B1/90|E06B3/263|E04B2/00|E04B5/00|E04B7/00|E04B9/00|F03G7/08|B60K6/10|B60K6/30|B09B|A61L11/00|A62D3/00|A62D101/00|G21F9/00|B03B9/06|B09C|D21B1/08|D21B1/32|F23G|A43B1/12|A43B21/14|B22F8/00|C04B7/24|C04B7/25|C04B7/26|C04B7/27|C04B7/28|C04B7/29|C04B7/30|C04B18/04|C04B18/05|C04B18/06|C04B18/07|C04B18/08|C04B18/09|C05F|C08J11/00|C08J11/01|C08J11/02|C08J11/03|C08J11/04|C08J11/05|C08J11/06|C08J11/07|C08J11/08|C08J11/09|C08J11/10|C08J11/11|C08J11/12|C08J11/13|C08J11/14|C08J11/15|C08J11/16|C08J11/17|C08J11/18|C08J11/19|C08J11/20|C08J11/21|C08J11/22|C08J11/23|C08J11/24|C08J11/25|C08J11/26|C08J11/27|C08J11/28|C08J11/29|C08J11/30|C08J11/31|C08J11/32|C08J11/33|C08J11/34|C08J11/35|C08J11/36|C08J11/37|C08J11/38|C08J11/39|B29B17/00|B62D67/00|C08J11/04|C08J11/05|C08J11/06|C08J11/07|C08J11/08|C08J11/09|C08J11/10|C08J11/11|C08J11/12|C08J11/13|C08J11/14|C08J11/15|C08J11/16|C08J11/17|C08J11/18|C08J11/19|C08J11/20|C08J11/21|C08J11/22|C08J11/23|C08J11/24|C08J11/25|C08J11/26|C08J11/27|C08J11/28|C08J11/29|C08J11/30|C08J11/31|C08J11/32|C08J11/33|C08J11/34|C08J11/35|C08J11/36|C08J11/37|C08J11/38|C08J11/39|C08J11/40|C08J11/41|C08J11/42|C08J11/43|C08J11/44|C08J11/45|C08J11/46|C08J11/47|C08J11/48|C08J11/49|C08J11/50|C08J11/51|C08J11/52|C08J11/53|C08J11/54|C08J11/55|C08J11/56|C08J11/57|C08J11/58|C08J11/59|C08J11/60|C08J11/61|C08J11/62|C08J11/63|C08J11/64|C08J11/65|C08J11/66|C08J11/67|C08J11/68|C08J11/69|C08J11/70|C08J11/71|C08J11/72|C08J11/73|C08J11/74|C08J11/75|C08J11/76|C08J11/77|C08J11/78|C08J11/79|C08J11/80|C08J11/81|C08J11/82|C08J11/83|C08J11/84|C08J11/85|C08J11/86|C08J11/87|C08J11/88|C08J11/89|C08J11/90|C08J11/91|C08J11/92|C08J11/93|C08J11/94|C08J11/95|C08J11/96|C08J11/97|C08J11/98|C08J11/99|C10G1/10|C10L5/46|C10L5/48|C22B7/00|C22B7/01|C22B7/02|C22B7/03|C22B7/04|C22B7/19|C22B7/30|C22B7/25|C22B7/06|D01G11/00|D21C5/02|H01J9/50|H01J9/52|H01M6/52|H01M10/54|B01D53/14|B01D53/22|B01D53/62|B01D53/92|C21C5/38|C10B21/18|F23G7/06|F01N9/00|B01D45/00|B01D45/01|B01D45/02|B01D45/03|B01D45/04|B01D45/05|B01D45/06|B01D45/07|B01D45/08|B01D45/09|B01D45/10|B01D45/11|B01D45/12|B01D45/13|B01D45/14|B01D45/15|B01D45/16|B01D45/17|B01D45/18|B01D45/19|B01D45/20|B01D45/21|B01D45/22|B01D45/23|B01D45/24|B01D45/25|B01D45/26|B01D45/27|B01D45/28|B01D45/29|B01D45/30|B01D45/31|B01D45/32|B01D45/33|B01D45/34|B01D45/35|B01D45/36|B01D45/37|B01D45/38|B01D45/39|B01D45/40|B01D45/41|B01D45/42|B01D45/43|B01D45/44|B01D45/45|B01D45/46|B01D45/47|B01D45/48|B01D45/49|B01D45/50|B01D45/51|B01D45/52|B01D45/53|B01D45/54|B01D45/55|B01D45/56|B01D45/57|B01D45/58|B01D45/59|B01D45/60|B01D45/61|B01D45/62|B01D45/63|B01D45/64|B01D45/65|B01D45/66|B01D45/67|B01D45/68|B01D45/69|B01D45/70|B01D45/71|B01D45/72|B01D45/73|B01D45/74|B01D45/75|B01D45/76|B01D45/77|B01D45/78|B01D45/79|B01D45/80|B01D45/81|B01D45/82|B01D45/83|B01D45/84|B01D45/85|B01D45/86|B01D45/87|B01D45/88|B01D45/89|B01D45/90|B01D45/91|B01D45/92|B01D45/93|B01D45/94|B01D45/95|B01D45/96|B01D45/97|B01D45/98|B01D45/99|C21B7/22|C10L10/02|C10L10/06|F23J15/00|C09K3/22|G08B21/12|B63J4/00|C05F7/00|C09K3/32|B63B35/32|E03C1/12|C02F1/00|C02F3/00|C02F9/00|G21C13/10|A01G23/00|A01G25/00|A01N25/00|A01N25/01|A01N25/02|A01N25/03|A01N25/04|A01N25/05|A01N25/06|A01N25/07|A01N25/08|A01N25/09|A01N25/10|A01N25/11|A01N25/12|A01N25/13|A01N25/14|A01N25/15|A01N25/16|A01N25/17|A01N25/18|A01N25/19|A01N25/20|A01N25/21|A01N25/22|A01N25/23|A01N25/24|A01N25/25|A01N25/26|A01N25/27|A01N25/28|A01N25/29|A01N25/30|A01N25/31|A01N25/32|A01N25/33|A01N25/34|A01N25/35|A01N25/36|A01N25/37|A01N25/38|A01N25/39|A01N25/40|A01N25/41|A01N25/42|A01N25/43|A01N25/44|A01N25/45|A01N25/46|A01N25/47|A01N25/48|A01N25/49|A01N25/50|A01N25/51|A01N25/52|A01N25/53|A01N25/54|A01N25/55|A01N25/56|A01N25/57|A01N25/58|A01N25/59|A01N25/60|A01N25/61|A01N25/62|A01N25/63|A01N25/64|A01N25/65|A01N25/66|A01N25/67|A01N25/68|A01N25/69|A01N25/70|A01N25/71|A01N25/72|A01N25/73|A01N25/74|A01N25/75|A01N25/76|A01N25/77|A01N25/78|A01N25/79|A01N25/80|A01N25/81|A01N25/82|A01N25/83|A01N25/84|A01N25/85|A01N25/86|A01N25/87|A01N25/88|A01N25/89|A01N25/90|A01N25/91|A01N25/92|A01N25/93|A01N25/94|A01N25/95|A01N25/96|A01N25/97|A01N25/98|A01N25/99|C09K17/00|C05F|G06Q|E04H1/00|G21|G21B|G21C|G21D|F02C1/05'" + }, + "execution_count": 268, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tokens = \"|\".join(chat_gpt_convert.split('; '))\n", + "tokens" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 269, + "outputs": [], + "source": [ + "ipc_green_codes_csv = pd.read_excel(f'{fromdir}/IPC_green_codes.xlsx')\n", + "ipc_green_codes_csv.columns=[\"IPC_code\",\"name\"]\n", + "ipc_green_codes_csv\n", + "\n", + "eu_tokens=\"solar energy|wind|hydrogen|biofuel|biogas|bioethanol|carbon capture|heat pump\"\n", + "eu_ipc_green_codes_csv = ipc_green_codes_csv[ipc_green_codes_csv[\"name\"].str.lower().str.contains(eu_tokens)]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 270, + "outputs": [ + { + "data": { + "text/plain": "'A01G23/00|A01G25/00|A01H|A01N25/00|A01N25/02|A01N25/04|A01N25/06|A01N25/08|A01N25/10|A01N25/12|A01N25/14|A01N25/16|A01N25/18|A01N25/20|A01N25/22|A01N25/24|A01N25/26|A01N25/28|A01N25/30|A01N25/32|A01N25/34|A01N27/00|A01N29/00|A01N29/02|A01N29/04|A01N29/06|A01N29/08|A01N29/10|A01N29/12|A01N31/00|A01N31/02|A01N31/04|A01N31/06|A01N31/08|A01N31/10|A01N31/12|A01N31/14|A01N31/16|A01N33/00|A01N33/02|A01N33/04|A01N33/06|A01N33/08|A01N33/10|A01N33/12|A01N33/14|A01N33/16|A01N33/18|A01N33/20|A01N33/22|A01N33/24|A01N33/26|A01N35/00|A01N35/02|A01N35/04|A01N35/06|A01N35/08|A01N35/10|A01N37/00|A01N37/02|A01N37/04|A01N37/06|A01N37/08|A01N37/10|A01N37/12|A01N37/14|A01N37/16|A01N37/18|A01N37/20|A01N37/22|A01N37/24|A01N37/26|A01N37/28|A01N37/30|A01N37/32|A01N37/34|A01N37/36|A01N37/38|A01N37/40|A01N37/42|A01N37/44|A01N37/46|A01N37/48|A01N37/50|A01N37/52|A01N39/00|A01N39/02|A01N39/04|A01N41/00|A01N41/02|A01N41/04|A01N41/06|A01N41/08|A01N41/10|A01N41/12|A01N43/00|A01N43/02|A01N43/04|A01N43/06|A01N43/08|A01N43/10|A01N43/12|A01N43/14|A01N43/16|A01N43/18|A01N43/20|A01N43/22|A01N43/24|A01N43/26|A01N43/28|A01N43/30|A01N43/32|A01N43/34|A01N43/36|A01N43/38|A01N43/40|A01N43/42|A01N43/44|A01N43/46|A01N43/48|A01N43/50|A01N43/52|A01N43/54|A01N43/56|A01N43/58|A01N43/60|A01N43/62|A01N43/64|A01N43/647|A01N43/653|A01N43/66|A01N43/68|A01N43/70|A01N43/707|A01N43/713|A01N43/72|A01N43/74|A01N43/76|A01N43/78|A01N43/80|A01N43/82|A01N43/824|A01N43/828|A01N43/832|A01N43/836|A01N43/84|A01N43/86|A01N43/88|A01N43/90|A01N43/92|A01N45/00|A01N45/02|A01N47/00|A01N47/02|A01N47/04|A01N47/06|A01N47/08|A01N47/10|A01N47/12|A01N47/14|A01N47/16|A01N47/18|A01N47/20|A01N47/22|A01N47/24|A01N47/26|A01N47/28|A01N47/30|A01N47/32|A01N47/34|A01N47/36|A01N47/38|A01N47/40|A01N47/42|A01N47/44|A01N47/46|A01N47/48|A01N49/00|A01N51/00|A01N53/00|A01N53/02|A01N53/04|A01N53/06|A01N53/08|A01N53/10|A01N53/12|A01N53/14|A01N55/00|A01N55/02|A01N55/04|A01N55/06|A01N55/08|A01N55/10|A01N57/00|A01N57/02|A01N57/04|A01N57/06|A01N57/08|A01N57/10|A01N57/12|A01N57/14|A01N57/16|A01N57/18|A01N57/20|A01N57/22|A01N57/24|A01N57/26|A01N57/28|A01N57/30|A01N57/32|A01N57/34|A01N57/36|A01N59/00|A01N59/02|A01N59/04|A01N59/06|A01N59/08|A01N59/10|A01N59/12|A01N59/14|A01N59/16|A01N59/18|A01N59/20|A01N59/22|A01N59/24|A01N59/26|A01N61/00|A01N61/02|A01N63/00|A01N63/02|A01N63/04|A01N63/10|A01N63/12|A01N63/14|A01N63/16|A01N63/20|A01N63/22|A01N63/23|A01N63/25|A01N63/27|A01N63/28|A01N63/30|A01N63/32|A01N63/34|A01N63/36|A01N63/38|A01N63/40|A01N63/50|A01N63/60|A01N65/00|A43B1/12|A43B21/14|A61L11/00|A62D101/00|A62D3/00|A62D3/02|B01D45/00|B01D45/02|B01D45/04|B01D45/06|B01D45/08|B01D45/10|B01D45/12|B01D45/14|B01D45/16|B01D45/18|B01D46/00|B01D46/02|B01D46/04|B01D46/06|B01D46/08|B01D46/10|B01D46/12|B01D46/14|B01D46/16|B01D46/18|B01D46/20|B01D46/22|B01D46/24|B01D46/26|B01D46/28|B01D46/30|B01D46/32|B01D46/34|B01D46/36|B01D46/38|B01D46/40|B01D46/42|B01D46/44|B01D46/46|B01D46/48|B01D46/50|B01D46/52|B01D46/54|B01D47/00|B01D47/02|B01D47/04|B01D47/05|B01D47/06|B01D47/08|B01D47/10|B01D47/12|B01D47/14|B01D47/16|B01D47/18|B01D49/00|B01D49/02|B01D50/00|B01D51/00|B01D53/00|B01D53/02|B01D53/04|B01D53/047|B01D53/053|B01D53/06|B01D53/08|B01D53/10|B01D53/12|B01D53/14|B01D53/18|B01D53/22|B01D53/24|B01D53/26|B01D53/28|B01D53/30|B01D53/32|B01D53/34|B01D53/38|B01D53/40|B01D53/42|B01D53/44|B01D53/46|B01D53/48|B01D53/50|B01D53/52|B01D53/54|B01D53/56|B01D53/58|B01D53/60|B01D53/62|B01D53/64|B01D53/66|B01D53/68|B01D53/70|B01D53/72|B01D53/73|B01D53/74|B01D53/75|B01D53/76|B01D53/77|B01D53/78|B01D53/79|B01D53/80|B01D53/81|B01D53/82|B01D53/83|B01D53/84|B01D53/85|B01D53/86|B01D53/88|B01D53/90|B01D53/92|B01D53/94|B01D53/96|B03B9/06|B03C3/00|B09B|B09B3/00|B09C|B22F8/00|B29B17/00|B60K16/00|B60K6/00|B60K6/10|B60K6/20|B60K6/28|B60K6/30|B60L3/00|B60L50/30|B60L50/50|B60L50/51|B60L50/52|B60L50/53|B60L50/60|B60L50/61|B60L50/62|B60L50/64|B60L50/70|B60L50/71|B60L50/72|B60L50/75|B60L50/90|B60L53/00|B60L53/10|B60L53/12|B60L53/122|B60L53/124|B60L53/126|B60L53/14|B60L53/16|B60L53/18|B60L53/20|B60L53/22|B60L53/24|B60L53/30|B60L53/302|B60L53/31|B60L53/34|B60L53/35|B60L53/36|B60L53/37|B60L53/38|B60L53/39|B60L53/50|B60L53/51|B60L53/52|B60L53/53|B60L53/54|B60L53/55|B60L53/56|B60L53/57|B60L53/60|B60L53/62|B60L53/63|B60L53/64|B60L53/65|B60L53/66|B60L53/67|B60L53/68|B60L53/80|B60L55/00|B60L58/00|B60L58/10|B60L58/12|B60L58/13|B60L58/14|B60L58/15|B60L58/16|B60L58/18|B60L58/19|B60L58/20|B60L58/21|B60L58/22|B60L58/24|B60L58/25|B60L58/26|B60L58/27|B60L58/30|B60L58/31|B60L58/32|B60L58/33|B60L58/34|B60L58/40|B60L7/10|B60L7/12|B60L7/14|B60L7/16|B60L7/18|B60L7/20|B60L7/22|B60L8/00|B60L9/00|B60W10/26|B60W20/00|B61|B61D17/02|B62D35/00|B62D35/02|B62D67/00|B62K|B62M1/00|B62M3/00|B62M5/00|B62M6/00|B63B1/34|B63B1/36|B63B1/38|B63B1/40|B63B35/00|B63B35/32|B63H13/00|B63H16/00|B63H19/02|B63H19/04|B63H21/18|B63H9/00|B63J4/00|B64G1/44|B65F|B65G5/00|C01B32/50|C01B33/02|C02F|C02F1/00|C02F1/14|C02F1/16|C02F11/04|C02F11/14|C02F3/00|C02F3/28|C02F9/00|C04B18/04|C04B18/06|C04B18/08|C04B18/10|C04B7/24|C04B7/26|C04B7/28|C04B7/30|C05F|C05F7/00|C07C67/00|C07C69/00|C08J11/00|C08J11/02|C08J11/04|C08J11/06|C08J11/08|C08J11/10|C08J11/12|C08J11/14|C08J11/16|C08J11/18|C08J11/20|C08J11/22|C08J11/24|C08J11/26|C08J11/28|C09K11/01|C09K17/00|C09K3/22|C09K3/32|C09K5/00|C10B21/18|C10B53/00|C10B53/02|C10G|C10G1/10|C10J|C10J3/02|C10J3/46|C10J3/86|C10L1/00|C10L1/02|C10L1/14|C10L1/182|C10L1/19|C10L10/02|C10L10/06|C10L3/00|C10L5/00|C10L5/40|C10L5/42|C10L5/44|C10L5/46|C10L5/48|C10L9/00|C11B11/00|C11B13/00|C11B13/02|C11B13/04|C11C3/10|C12M1/107|C12N1/13|C12N1/15|C12N1/21|C12N15/00|C12N5/10|C12N9/24|C12P5/02|C12P7/06|C12P7/08|C12P7/10|C12P7/12|C12P7/14|C12P7/649|C14C3/32|C21B3/04|C21B5/06|C21B7/22|C21C5/38|C22B19/30|C22B25/06|C22B7/00|C22B7/02|C22B7/04|C23C14/14|C23C16/24|C25C1/00|C30B29/06|D01F13/00|D01F13/02|D01F13/04|D01G11/00|D21B1/08|D21B1/32|D21C11/00|D21C5/02|D21F5/20|E02B15/04|E02B9/00|E02B9/02|E02B9/04|E02B9/06|E02B9/08|E02D3/00|E03C1/12|E03F|E04B1/62|E04B1/74|E04B1/76|E04B1/78|E04B1/80|E04B1/88|E04B1/90|E04B2/00|E04B5/00|E04B7/00|E04B9/00|E04C1/40|E04C1/41|E04C2/284|E04C2/288|E04C2/292|E04C2/296|E04D1/28|E04D13/00|E04D13/16|E04D13/18|E04D3/35|E04F13/08|E04F15/18|E04H1/00|E04H12/00|E06B3/263|E21B41/00|E21B43/16|E21F17/16|F01K|F01K17/00|F01K23/04|F01K23/06|F01K23/08|F01K23/10|F01K27/00|F01N3/00|F01N3/01|F01N3/02|F01N3/021|F01N3/022|F01N3/023|F01N3/025|F01N3/027|F01N3/028|F01N3/029|F01N3/031|F01N3/032|F01N3/033|F01N3/035|F01N3/037|F01N3/038|F01N3/04|F01N3/05|F01N3/06|F01N3/08|F01N3/10|F01N3/18|F01N3/20|F01N3/22|F01N3/24|F01N3/26|F01N3/28|F01N3/30|F01N3/32|F01N3/34|F01N3/36|F01N3/38|F01N5/00|F01N9/00|F02B43/00|F02B75/10|F02C1/05|F02C3/28|F02C6/18|F02G5/00|F02G5/02|F02G5/04|F02M21/02|F02M27/02|F03B|F03B13/12|F03B13/14|F03B13/16|F03B13/18|F03B13/20|F03B13/22|F03B13/24|F03B13/26|F03B15/00|F03B15/02|F03B15/04|F03B15/06|F03B15/08|F03B15/10|F03B15/12|F03B15/14|F03B15/16|F03B15/18|F03B15/20|F03B15/22|F03C|F03D|F03D1/04|F03D13/00|F03D13/20|F03D9/00|F03G4/00|F03G4/02|F03G4/04|F03G4/06|F03G5/00|F03G5/02|F03G5/04|F03G5/06|F03G5/08|F03G6/00|F03G6/02|F03G6/04|F03G6/06|F03G7/04|F03G7/05|F03G7/08|F16H3/00|F16H3/02|F16H3/04|F16H3/06|F16H3/08|F16H3/083|F16H3/085|F16H3/087|F16H3/089|F16H3/091|F16H3/093|F16H3/095|F16H3/097|F16H3/10|F16H3/12|F16H3/14|F16H3/16|F16H3/18|F16H3/20|F16H3/22|F16H3/24|F16H3/26|F16H3/28|F16H3/30|F16H3/32|F16H3/34|F16H3/36|F16H3/38|F16H3/40|F16H3/42|F16H3/44|F16H3/46|F16H3/48|F16H3/50|F16H3/52|F16H3/54|F16H3/56|F16H3/58|F16H3/60|F16H3/62|F16H3/64|F16H3/66|F16H3/68|F16H3/70|F16H3/72|F16H3/74|F16H3/76|F16H3/78|F16H48/00|F16H48/02|F16H48/04|F16H48/05|F16H48/06|F16H48/08|F16H48/10|F16H48/11|F16H48/12|F16H48/14|F16H48/16|F16H48/18|F16H48/19|F16H48/20|F16H48/22|F16H48/24|F16H48/26|F16H48/27|F16H48/28|F16H48/285|F16H48/29|F16H48/295|F16H48/30|F21K99/00|F21L4/00|F21L4/02|F21S9/03|F22B1/00|F22B1/02|F23B80/02|F23B90/00|F23C9/00|F23G|F23G5/00|F23G5/027|F23G5/46|F23G7/00|F23G7/06|F23G7/10|F23J15/00|F23J7/00|F24D11/00|F24D11/02|F24D15/04|F24D17/00|F24D17/02|F24D18/00|F24D19/00|F24D3/00|F24D5/00|F24F12/00|F24F5/00|F24H4/00|F24H7/00|F24S|F24S10/10|F24S23/00|F24S90/00|F24T|F24T10/00|F24T10/10|F24T10/13|F24T10/15|F24T10/17|F24T10/20|F24T10/30|F24T10/40|F24T50/00|F24V30/00|F24V40/00|F24V40/10|F24V50/00|F25B27/00|F25B27/02|F25B30/00|F25B30/06|F25J3/02|F26B3/00|F26B3/28|F27B1/18|F27B15/12|F27D17/00|F28D17/00|F28D17/02|F28D17/04|F28D19/00|F28D19/02|F28D19/04|F28D20/00|F28D20/02|G01R|G02B7/183|G05F1/67|G06Q|G08B21/12|G08G|G21|G21B|G21C|G21C13/10|G21D|G21F9/00|H01G11/00|H01G9/20|H01J9/50|H01J9/52|H01L25/00|H01L25/03|H01L25/16|H01L25/18|H01L27/142|H01L27/30|H01L31/00|H01L31/02|H01L31/0203|H01L31/0216|H01L31/0224|H01L31/0232|H01L31/0236|H01L31/024|H01L31/0248|H01L31/0256|H01L31/0264|H01L31/0272|H01L31/028|H01L31/0288|H01L31/0296|H01L31/0304|H01L31/0312|H01L31/032|H01L31/0328|H01L31/0336|H01L31/0352|H01L31/036|H01L31/0368|H01L31/0376|H01L31/0384|H01L31/0392|H01L31/04|H01L31/041|H01L31/042|H01L31/043|H01L31/044|H01L31/0443|H01L31/0445|H01L31/045|H01L31/046|H01L31/0463|H01L31/0465|H01L31/0468|H01L31/047|H01L31/0475|H01L31/048|H01L31/049|H01L31/05|H01L31/052|H01L31/0525|H01L31/053|H01L31/054|H01L31/055|H01L31/056|H01L31/058|H01L31/06|H01L31/061|H01L31/062|H01L31/065|H01L31/068|H01L31/0687|H01L31/0693|H01L31/07|H01L31/072|H01L31/0725|H01L31/073|H01L31/0735|H01L31/074|H01L31/0745|H01L31/0747|H01L31/0749|H01L31/075|H01L31/076|H01L31/077|H01L31/078|H01L33/00|H01L33/02|H01L33/04|H01L33/06|H01L33/08|H01L33/10|H01L33/12|H01L33/14|H01L33/16|H01L33/18|H01L33/20|H01L33/22|H01L33/24|H01L33/26|H01L33/28|H01L33/30|H01L33/32|H01L33/34|H01L33/36|H01L33/38|H01L33/40|H01L33/42|H01L33/44|H01L33/46|H01L33/48|H01L33/50|H01L33/52|H01L33/54|H01L33/56|H01L33/58|H01L33/60|H01L33/62|H01L33/64|H01L51/42|H01L51/44|H01L51/46|H01L51/48|H01L51/50|H01M10/44|H01M10/46|H01M10/54|H01M12/00|H01M12/02|H01M12/04|H01M12/06|H01M12/08|H01M14/00|H01M4/86|H01M4/88|H01M4/90|H01M4/92|H01M4/94|H01M4/96|H01M4/98|H01M50/00|H01M50/10|H01M50/102|H01M50/103|H01M50/105|H01M50/107|H01M50/109|H01M50/11|H01M50/112|H01M50/114|H01M50/116|H01M50/117|H01M50/119|H01M50/121|H01M50/122|H01M50/124|H01M50/126|H01M50/128|H01M50/129|H01M50/131|H01M50/133|H01M50/134|H01M50/136|H01M50/138|H01M50/14|H01M50/141|H01M50/143|H01M50/145|H01M50/147|H01M50/148|H01M50/15|H01M50/152|H01M50/153|H01M50/155|H01M50/157|H01M50/159|H01M50/16|H01M50/162|H01M50/164|H01M50/166|H01M50/167|H01M50/169|H01M50/171|H01M6/52|H01M8/00|H01M8/008|H01M8/02|H01M8/0202|H01M8/0204|H01M8/0206|H01M8/0208|H01M8/021|H01M8/0213|H01M8/0215|H01M8/0217|H01M8/0221|H01M8/0223|H01M8/0226|H01M8/0228|H01M8/023|H01M8/0232|H01M8/0234|H01M8/0236|H01M8/0239|H01M8/0241|H01M8/0243|H01M8/0245|H01M8/0247|H01M8/025|H01M8/0252|H01M8/0254|H01M8/0256|H01M8/0258|H01M8/026|H01M8/0263|H01M8/0265|H01M8/0267|H01M8/0271|H01M8/0273|H01M8/0276|H01M8/028|H01M8/0282|H01M8/0284|H01M8/0286|H01M8/0289|H01M8/0293|H01M8/0295|H01M8/0297|H01M8/04|H01M8/04007|H01M8/04014|H01M8/04029|H01M8/04044|H01M8/04082|H01M8/04089|H01M8/04111|H01M8/04119|H01M8/04186|H01M8/04223|H01M8/04225|H01M8/04228|H01M8/04276|H01M8/04291|H01M8/04298|H01M8/043|H01M8/04302|H01M8/04303|H01M8/04313|H01M8/0432|H01M8/0438|H01M8/0444|H01M8/04492|H01M8/04537|H01M8/04664|H01M8/04694|H01M8/04701|H01M8/04746|H01M8/04791|H01M8/04828|H01M8/04858|H01M8/04955|H01M8/04992|H01M8/06|H01M8/0606|H01M8/0612|H01M8/0637|H01M8/065|H01M8/0656|H01M8/0662|H01M8/0668|H01M8/08|H01M8/083|H01M8/086|H01M8/10|H01M8/1004|H01M8/1006|H01M8/1007|H01M8/1009|H01M8/1011|H01M8/1016|H01M8/1018|H01M8/102|H01M8/1023|H01M8/1025|H01M8/1027|H01M8/103|H01M8/1032|H01M8/1034|H01M8/1037|H01M8/1039|H01M8/1041|H01M8/1044|H01M8/1046|H01M8/1048|H01M8/1051|H01M8/1053|H01M8/1058|H01M8/106|H01M8/1062|H01M8/1065|H01M8/1067|H01M8/1069|H01M8/1072|H01M8/1081|H01M8/1086|H01M8/1088|H01M8/1097|H01M8/12|H01M8/1213|H01M8/122|H01M8/1226|H01M8/1231|H01M8/1233|H01M8/124|H01M8/1246|H01M8/1253|H01M8/126|H01M8/1286|H01M8/14|H01M8/16|H01M8/18|H01M8/20|H01M8/22|H01M8/24|H02J|H02J15/00|H02J3/28|H02J7/00|H02J7/35|H02J9/00|H02K29/08|H02K49/10|H02K7/18|H02N10/00|H02S|H02S10/00|H02S40/44|H05B33/00'" + }, + "execution_count": 270, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eu_tokens_csv = \"|\".join(eu_ipc_green_codes_csv[\"IPC_code\"].str.strip(\" \").drop_duplicates())\n", + "tokens_csv = \"|\".join(ipc_green_codes_csv[\"IPC_code\"].str.strip(\" \").drop_duplicates())\n", + "tokens_csv" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 271, + "outputs": [ + { + "data": { + "text/plain": "(801, 1214)" + }, + "execution_count": 271, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(tokens.split(\"|\")),len(tokens_csv.split(\"|\"))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 272, + "outputs": [ + { + "data": { + "text/plain": "337" + }, + "execution_count": 272, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(set(tokens.split(\"|\")).intersection(set(tokens_csv.split(\"|\"))))" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 273, + "outputs": [ + { + "data": { + "text/plain": " appln_id appln_auth appln_kind filing_year nb_applicants \n5162 375545706 DE A 2011 1 \\\n108346 408613474 DE A 2012 2 \n121711 411146713 AT A 2012 1 \n122555 410825570 DE A 2012 1 \n125815 364242878 FR A 2012 1 \n... ... ... ... ... ... \n1640264 546368267 EP A 2021 2 \n1711712 577493769 DE A 2021 1 \n1711714 577493769 DE A 2021 1 \n1712528 544509389 EP A 2021 1 \n1719335 546393918 EP A 2021 1 \n\n nb_inventors ipc_class_symbol ipc_class_level cpc_id \n5162 3 H01L 33/60 A H01L33/60 \\\n108346 6 H01M 50/159 A H01M50/159 \n121711 5 G01R 31/36 A G01R31/36 \n122555 4 H01L 31/0224 A H01L31/0224 \n125815 4 H01L 51/46 A H01L51/46 \n... ... ... ... ... \n1640264 2 F16H 48/24 A F16H48/24 \n1711712 3 H01L 31/0224 A H01L31/0224 \n1711714 3 H01L 33/42 A H01L33/42 \n1712528 2 B01D 53/58 A B01D53/58 \n1719335 13 A01N 25/28 A A01N25/28 \n\n ipc_class ipc_classname ipc_id \n5162 H-Electricity Electricity H01L33/60 \n108346 H-Electricity Electricity H01M50/159 \n121711 G-Physics Physics G01R31/36 \n122555 H-Electricity Electricity H01L31/0224 \n125815 H-Electricity Electricity H01L51/46 \n... ... ... ... \n1640264 F-Engineering Engineering F16H48/24 \n1711712 H-Electricity Electricity H01L31/0224 \n1711714 H-Electricity Electricity H01L33/42 \n1712528 B-Operations; transporting Operations; transporting B01D53/58 \n1719335 A-Human necessities Human necessities A01N25/28 \n\n[333 rows x 12 columns]", + "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
appln_idappln_authappln_kindfiling_yearnb_applicantsnb_inventorsipc_class_symbolipc_class_levelcpc_idipc_classipc_classnameipc_id
5162375545706DEA201113H01L 33/60AH01L33/60H-ElectricityElectricityH01L33/60
108346408613474DEA201226H01M 50/159AH01M50/159H-ElectricityElectricityH01M50/159
121711411146713ATA201215G01R 31/36AG01R31/36G-PhysicsPhysicsG01R31/36
122555410825570DEA201214H01L 31/0224AH01L31/0224H-ElectricityElectricityH01L31/0224
125815364242878FRA201214H01L 51/46AH01L51/46H-ElectricityElectricityH01L51/46
.......................................
1640264546368267EPA202122F16H 48/24AF16H48/24F-EngineeringEngineeringF16H48/24
1711712577493769DEA202113H01L 31/0224AH01L31/0224H-ElectricityElectricityH01L31/0224
1711714577493769DEA202113H01L 33/42AH01L33/42H-ElectricityElectricityH01L33/42
1712528544509389EPA202112B01D 53/58AB01D53/58B-Operations; transportingOperations; transportingB01D53/58
1719335546393918EPA2021113A01N 25/28AA01N25/28A-Human necessitiesHuman necessitiesA01N25/28
\n

333 rows × 12 columns

\n
" + }, + "execution_count": 273, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_ipc_f[\"ipc_id\"] = appln_ipc_f[\"cpc_id\"]\n", + "appln_ipc_f[appln_ipc_f[\"ipc_id\"].str.contains(tokens_csv, regex=True)]" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 274, + "outputs": [ + { + "data": { + "text/plain": "174" + }, + "execution_count": 274, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "appln_ipc_f[appln_ipc_f[\"ipc_id\"].str.contains(tokens_csv, regex=True)][\"appln_id\"].nunique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 275, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "data": [ { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "A-Human necessities", + "hovertemplate": "Year:%{x:d}
Number of co-publications:%{y:d}", + "legendgroup": "", "line": { "color": "#636efa", "dash": "solid" @@ -16679,230 +19605,27 @@ "marker": { "symbol": "circle" }, - "mode": "markers+lines", - "name": "A-Human necessities", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x4", - "y": [ - 0.0, - -0.5714285714285714, - 1.1428571428571428, - 0.14285714285714285, - 0.42857142857142855, - 0.42857142857142855, - 0.8571428571428571, - 0.2857142857142857, - 1.1428571428571428, - -0.42857142857142855, - -0.2857142857142857 - ], - "yaxis": "y4", - "type": "scatter" - }, - { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "B-Operations; transporting", - "line": { - "color": "#EF553B", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "B-Operations; transporting", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x4", - "y": [ - 0.0, - -0.4666666666666667, - 0.0, - -0.06666666666666667, - -0.13333333333333333, - 0.3333333333333333, - 1.7333333333333334, - 3.0, - 3.8, - 2.933333333333333, - 0.6 - ], - "yaxis": "y4", - "type": "scatter" - }, - { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "C-Chemistry; metallurgy", - "line": { - "color": "#00cc96", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "C-Chemistry; metallurgy", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x4", - "y": [ - 0.0, - 0.2222222222222222, - 0.4444444444444444, - 0.0, - 0.1111111111111111, - 0.1111111111111111, - 0.7777777777777778, - 0.0, - 1.6666666666666667, - 1.7777777777777777, - 0.0 - ], - "yaxis": "y4", - "type": "scatter" - }, - { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "D-Textiles; paper", - "line": { - "color": "#ab63fa", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "D-Textiles; paper", - "orientation": "v", - "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x4", - "y": [ - 0.0, - -1.0, - -1.0, - 0.0, - 2.0, - 0.0, - 2.0, - 1.0, - 1.0, - 0.0, - -1.0 - ], - "yaxis": "y4", - "type": "scatter" - }, - { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "E-Fixed constructions", - "line": { - "color": "#FFA15A", - "dash": "solid" - }, - "marker": { - "symbol": "circle" - }, - "mode": "markers+lines", - "name": "E-Fixed constructions", + "mode": "markers+text+lines", + "name": "", "orientation": "v", "showlegend": false, - "x": [ - 2011, - 2012, - 2013, - 2014, - 2015, - 2016, - 2017, - 2018, - 2019, - 2020, - 2021 - ], - "xaxis": "x4", - "y": [ - 0.0, - 0.0, - -1.0, - -0.5, - -0.5, - 0.5, + "text": [ 1.0, - 4.0, - 2.5, - 6.0, - 1.5 + 8.0, + 8.0, + 7.0, + 7.0, + 12.0, + 29.0, + 28.0, + 34.0, + 32.0, + 8.0 ], - "yaxis": "y4", - "type": "scatter" - }, - { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "F-Engineering", - "line": { - "color": "#19d3f3", - "dash": "solid" - }, - "marker": { - "symbol": "circle" + "textfont": { + "size": 12 }, - "mode": "markers+lines", - "name": "F-Engineering", - "orientation": "v", - "showlegend": false, + "textposition": "top center", "x": [ 2011, 2012, @@ -16916,37 +19639,55 @@ 2020, 2021 ], - "xaxis": "x4", + "xaxis": "x", "y": [ - 0.0, - -0.5714285714285714, - 1.2857142857142858, - -0.14285714285714285, - 0.0, - 0.0, - 1.2857142857142858, - 2.7142857142857144, - 2.857142857142857, - 2.7142857142857144, - 0.0 + 1, + 8, + 8, + 7, + 7, + 12, + 29, + 28, + 34, + 32, + 8 ], - "yaxis": "y4", + "yaxis": "y", "type": "scatter" }, { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "G-Physics", + "hovertemplate": "Year:%{x:d}
Rel.growth in co-publications:%{y:.0%}", + "legendgroup": "", "line": { - "color": "#FF6692", + "color": "#636efa", "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "markers+lines", - "name": "G-Physics", + "mode": "markers+text+lines", + "name": "", "orientation": "v", "showlegend": false, + "text": [ + 0.0, + 7.0, + 7.0, + 6.0, + 6.0, + 11.0, + 28.0, + 27.0, + 33.0, + 31.0, + 7.0 + ], + "textfont": { + "size": 12 + }, + "textposition": "top center", + "texttemplate": "%{y:.0%}", "x": [ 2011, 2012, @@ -16960,37 +19701,55 @@ 2020, 2021 ], - "xaxis": "x4", + "xaxis": "x2", "y": [ 0.0, - 1.4, - 1.4, - 2.0, - 4.0, - 2.6, - 3.6, - 6.4, - 6.6, - 5.0, - 2.2 + 7.0, + 7.0, + 6.0, + 6.0, + 11.0, + 28.0, + 27.0, + 33.0, + 31.0, + 7.0 ], - "yaxis": "y4", + "yaxis": "y2", "type": "scatter" }, { - "hovertemplate": "%{y:.0f}00%", - "legendgroup": "H-Electricity", + "hovertemplate": "Year:%{x:d}
Rel.growth in co-publications:%{y:.0%}", + "legendgroup": "", "line": { - "color": "#B6E880", + "color": "#636efa", "dash": "solid" }, "marker": { "symbol": "circle" }, - "mode": "markers+lines", - "name": "H-Electricity", + "mode": "markers+text+lines", + "name": "", "orientation": "v", "showlegend": false, + "text": [ + 0.018518518518518517, + 0.16326530612244897, + 0.11594202898550725, + 0.109375, + 0.07446808510638298, + 0.11650485436893204, + 0.18354430379746836, + 0.15217391304347827, + 0.2, + 0.2191780821917808, + 0.125 + ], + "textfont": { + "size": 12 + }, + "textposition": "top center", + "texttemplate": "%{y:.0%}", "x": [ 2011, 2012, @@ -17004,21 +19763,21 @@ 2020, 2021 ], - "xaxis": "x4", + "xaxis": "x3", "y": [ - 0.0, - 0.0, - -0.2857142857142857, - 0.21428571428571427, - 1.5, - 2.0714285714285716, - 4.071428571428571, - 3.5714285714285716, - 0.6428571428571429, - 0.8571428571428571, - -0.21428571428571427 + 0.018518518518518517, + 0.16326530612244897, + 0.11594202898550725, + 0.109375, + 0.07446808510638298, + 0.11650485436893204, + 0.18354430379746836, + 0.15217391304347827, + 0.2, + 0.2191780821917808, + 0.125 ], - "yaxis": "y4", + "yaxis": "y3", "type": "scatter" } ], @@ -17843,24 +20602,19 @@ "anchor": "y", "domain": [ 0.0, - 0.45 + 1.0 ], "showgrid": true, "showline": true, "linewidth": 1, "linecolor": "black", "mirror": true, - "ticks": "outside", - "tickformat": ".0f", - "range": [ - 0, - 400 - ] + "ticks": "outside" }, "yaxis": { "anchor": "x", "domain": [ - 0.625, + 0.7777777777777778, 1.0 ], "categoryorder": "total ascending", @@ -17869,12 +20623,16 @@ "linewidth": 1, "linecolor": "black", "mirror": true, - "ticks": "outside" + "ticks": "outside", + "range": [ + 0, + 45 + ] }, "xaxis2": { "anchor": "y2", "domain": [ - 0.55, + 0.0, 1.0 ], "showgrid": true, @@ -17882,17 +20640,13 @@ "linewidth": 1, "linecolor": "black", "mirror": true, - "ticks": "outside", - "range": [ - 2010.8, - 2022.2 - ] + "ticks": "outside" }, "yaxis2": { "anchor": "x2", "domain": [ - 0.625, - 1.0 + 0.3888888888888889, + 0.6111111111111112 ], "showgrid": true, "showline": true, @@ -17900,43 +20654,31 @@ "linecolor": "black", "mirror": true, "ticks": "outside", - "tickformat": ".0f" + "zerolinecolor": "grey", + "tickformat": ".0%", + "range": [ + -1, + 40 + ] }, "xaxis3": { "anchor": "y3", "domain": [ 0.0, - 0.45 + 1.0 ], "showgrid": true, "showline": true, "linewidth": 1, "linecolor": "black", "mirror": true, - "ticks": "outside", - "range": [ - 2010.8, - 2022.2 - ] + "ticks": "outside" }, "yaxis3": { "anchor": "x3", "domain": [ 0.0, - 0.375 - ], - "showgrid": true, - "showline": true, - "linewidth": 1, - "linecolor": "black", - "mirror": true, - "ticks": "outside" - }, - "xaxis4": { - "anchor": "y4", - "domain": [ - 0.55, - 1.0 + 0.22222222222222224 ], "showgrid": true, "showline": true, @@ -17944,49 +20686,21 @@ "linecolor": "black", "mirror": true, "ticks": "outside", + "zerolinecolor": "grey", + "tickformat": ".0%", "range": [ - 2010.8, - 2022.2 + 0, + 0.3 ] }, - "yaxis4": { - "anchor": "x4", - "domain": [ - 0.0, - 0.375 - ], - "showgrid": true, - "showline": true, - "linewidth": 1, - "linecolor": "black", - "mirror": true, - "ticks": "outside", - "zeroline": true, - "zerolinewidth": 0.5, - "zerolinecolor": "grey", - "tickformat": ".0%" - }, "annotations": [ { "font": { - "size": 14 - }, - "showarrow": false, - "text": "Distribution of IPC classes", - "x": 0.225, - "xanchor": "center", - "xref": "paper", - "y": 1.0, - "yanchor": "bottom", - "yref": "paper" - }, - { - "font": { - "size": 14 + "size": 16 }, "showarrow": false, - "text": "Cumulative sum of related co-patents", - "x": 0.775, + "text": "IPC green inventory co-patents per year", + "x": 0.5, "xanchor": "center", "xref": "paper", "y": 1.0, @@ -17995,35 +20709,34 @@ }, { "font": { - "size": 14 + "size": 16 }, "showarrow": false, - "text": "Related co-patents per year", - "x": 0.225, + "text": "Relative growth of IPC green inventory co-patents", + "x": 0.5, "xanchor": "center", "xref": "paper", - "y": 0.375, + "y": 0.6111111111111112, "yanchor": "bottom", "yref": "paper" }, { "font": { - "size": 14 + "size": 16 }, "showarrow": false, - "text": "Relative growth of co-patents", - "x": 0.775, + "text": "Ratio of IPC green inventory co-patents to all co-patents", + "x": 0.5, "xanchor": "center", "xref": "paper", - "y": 0.375, + "y": 0.22222222222222224, "yanchor": "bottom", "yref": "paper" } ], "barmode": "relative", "font": { - "family": "Montserrat", - "size": 14 + "family": "Montserrat" } }, "config": { @@ -18032,51 +20745,70 @@ "plotlyServerURL": "https://plotly.com" } }, - "text/html": "
" + "text/html": "
" }, "metadata": {}, "output_type": "display_data" } ], "source": [ - "from plotly.subplots import make_subplots\n", - "import plotly.graph_objects as go\n", + "green_applns = appln_ipc_f[appln_ipc_f[\"ipc_id\"].str.contains(tokens_csv, regex=True)][\"appln_id\"].unique()\n", + "appln_f_greenset = appln_f[appln_f[\"appln_id\"].isin(green_applns)]\n", "\n", - "# dom_distr\n", - "# year_output_by_domain\n", - "# rel_output_by_domain\n", - "# cumsum_by_domain\n", + "datafull = (appln_f.groupby(['filing_year'])[record_col].nunique(dropna=False)\n", + " .reset_index()\n", + " .rename(columns={0:record_col}))\n", + "datafull[record_col+\"_relative_growth_full\"] = datafull[datafull[record_col]>0].sort_values(by=[\"filing_year\"], ascending=True)[record_col][0]\n", + "datafull[record_col+\"_relative_growth_full\"] = (datafull[record_col]-datafull[record_col+\"_relative_growth_full\"])/datafull[record_col+\"_relative_growth_full\"]\n", + "datafull = datafull.rename(columns={record_col:f\"{record_col}_full\"})\n", "\n", - "figsuper = make_subplots(rows=2, cols=2, subplot_titles=[\"Distribution of IPC classes\",\"Cumulative sum of related co-patents\",\n", - " \"Related co-patents per year\",\"Relative growth of co-patents\"])\n", "\n", + "data = (appln_f_greenset.groupby(['filing_year'])[record_col].nunique(dropna=False)\n", + " .reset_index()\n", + " .rename(columns={0:record_col}))\n", + "data[record_col+\"_relative_growth\"] = data[data[record_col]>0].sort_values(by=[\"filing_year\"], ascending=True)[record_col][0]\n", + "data[record_col+\"_relative_growth\"] = (data[record_col]-data[record_col+\"_relative_growth\"])/data[record_col+\"_relative_growth\"]\n", "\n", - "for trace in list(dom_distr.select_traces()):\n", - " trace.showlegend=False\n", - " # trace.barmode\n", - " figsuper.add_trace(trace,\n", - " row=1, col=1\n", - " )\n", + "data = data.sort_values(by =[\"filing_year\"], ascending=[True])\n", + "# data[record_col+\"_cumsum\"] = (data[record_col].cumsum())\n", "\n", - "for trace in list(cumsum_by_domain.select_traces()):\n", - " trace.showlegend=False\n", + "data = data.merge(datafull, on=\"filing_year\")\n", + "data[\"green_ratio\"] = data[record_col]/data[f\"{record_col}_full\"]\n", + "\n", + "year_output = px.line(data,x=\"filing_year\", y=record_col, markers=True, text=record_col)\n", + "year_output.update_traces(textposition='top center',textfont_size=12)\n", + "year_output.update_traces(hovertemplate='Year:%{x:d}
Number of co-publications:%{y:d}')\n", + "\n", + "year_rel_output = px.line(data,x=\"filing_year\", y=record_col+\"_relative_growth\", markers=True, text=record_col+\"_relative_growth\")\n", + "year_rel_output.update_traces(textposition='top center',textfont_size=12, texttemplate='%{y:.0%}')\n", + "year_rel_output.update_traces(hovertemplate='Year:%{x:d}
Rel.growth in co-publications:%{y:.0%}')\n", + "\n", + "year_ratio_output = px.line(data,x=\"filing_year\", y=\"green_ratio\", markers=True, text=\"green_ratio\")\n", + "year_ratio_output.update_traces(textposition='top center',textfont_size=12, texttemplate='%{y:.0%}')\n", + "year_ratio_output.update_traces(hovertemplate='Year:%{x:d}
Rel.growth in co-publications:%{y:.0%}')\n", + "\n", + "figsuper = make_subplots(rows=3, cols=1, subplot_titles=[\"IPC green inventory co-patents per year\",\"Relative growth of IPC green inventory co-patents\", \"Ratio of IPC green inventory co-patents to all co-patents\"],\n", + " specs=[\n", + " [{\"type\": \"xy\"}],\n", + " [{\"type\": \"xy\"}],\n", + " [{\"type\": \"xy\"}]\n", + " ])\n", + "\n", + "for trace in list(year_output.select_traces()):\n", " figsuper.add_trace(trace,\n", - " row=1, col=2\n", + " row=1, col=1\n", " )\n", "\n", - "for trace in list(year_output_by_domain.select_traces()):\n", - " trace.showlegend=False\n", + "for trace in list(year_rel_output.select_traces()):\n", " figsuper.add_trace(trace,\n", " row=2, col=1\n", " )\n", "\n", - "for trace in list(rel_output_by_domain.select_traces()):\n", - " trace.showlegend=False\n", + "for trace in list(year_ratio_output.select_traces()):\n", " figsuper.add_trace(trace,\n", - " row=2, col=2\n", + " row=3, col=1\n", " )\n", "\n", - "\n", "figsuper.update_layout(yaxis={'categoryorder':'total ascending'}, barmode='relative')\n", "figsuper.update_yaxes(\n", " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", @@ -18084,19 +20816,22 @@ "figsuper.update_xaxes(\n", " showgrid=True,showline=True, linewidth=1, linecolor='black', mirror=True,\n", " ticks=\"outside\")\n", - "\n", "figsuper.update_layout({'template':\"plotly\",\"font_family\":\"Montserrat\"})\n", - "figsuper['layout']['xaxis1'].update(tickformat=\".0f\")\n", - "figsuper['layout']['yaxis2'].update(tickformat=\".0f\")\n", - "figsuper['layout']['yaxis4'].update(zeroline=True, zerolinewidth=0.5, zerolinecolor='grey',tickformat=\".0%\")\n", - "figsuper['layout'][f'xaxis'][\"range\"] = [0,400]\n", - "for i in range(2,5):\n", - " figsuper['layout'][f'xaxis{i}'][\"range\"] = [2010.8,2022.2]\n", - "figsuper['layout'][\"font\"][\"size\"]=14\n", - "for a in figsuper['layout'][\"annotations\"]:\n", - " a[\"font\"][\"size\"] = 14\n", + "figsuper['layout']['yaxis2'].update(zerolinecolor='grey',tickformat=\".0%\")\n", + "figsuper['layout']['yaxis3'].update(zerolinecolor='grey',tickformat=\".0%\")\n", + "# for i in[\"xaxis\",\"xaxis2\"]:\n", + "# figsuper['layout'][f'{i}'][\"range\"] = [2010.8,2022.5]\n", + "#\n", + "figsuper['layout'][\"yaxis\"][\"range\"] = [0,45]\n", + "figsuper['layout'][\"yaxis2\"][\"range\"] = [-1,40]\n", + "figsuper['layout'][\"yaxis3\"][\"range\"] = [0,0.3]\n", + "#\n", + "# figsuper['layout']['yaxis'].update(tickformat=\".0f\")\n", + "# figsuper['layout']['yaxis3'].update(tickformat=\".0f\")\n", + "\n", "figsuper.show(config= dict(displayModeBar = False, responsive = True),height=800,width=1600,scale = 4)\n", - "figsuper.write_image(rf\"{fromdir}/plots/ipc_classes.png\",height=900,width=1600,scale = 4)" + "\n", + "figsuper.write_image(f\"{fromdir}/plots/green_trends.png\",height=900,width=900,scale = 4)" ], "metadata": { "collapsed": false @@ -18104,9 +20839,21 @@ }, { "cell_type": "code", - "execution_count": 425, - "outputs": [], - "source": [], + "execution_count": 276, + "outputs": [ + { + "data": { + "text/plain": " filing_year appln_id appln_id_relative_growth appln_id_full \n0 2011 1 0.0 54 \\\n1 2012 8 7.0 49 \n2 2013 8 7.0 69 \n3 2014 7 6.0 64 \n4 2015 7 6.0 94 \n5 2016 12 11.0 103 \n6 2017 29 28.0 158 \n7 2018 28 27.0 184 \n8 2019 34 33.0 170 \n9 2020 32 31.0 146 \n10 2021 8 7.0 64 \n\n appln_id_relative_growth_full green_ratio \n0 0.000000 0.018519 \n1 -0.092593 0.163265 \n2 0.277778 0.115942 \n3 0.185185 0.109375 \n4 0.740741 0.074468 \n5 0.907407 0.116505 \n6 1.925926 0.183544 \n7 2.407407 0.152174 \n8 2.148148 0.200000 \n9 1.703704 0.219178 \n10 0.185185 0.125000 ", + "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
filing_yearappln_idappln_id_relative_growthappln_id_fullappln_id_relative_growth_fullgreen_ratio
0201110.0540.0000000.018519
1201287.049-0.0925930.163265
2201387.0690.2777780.115942
3201476.0640.1851850.109375
4201576.0940.7407410.074468
520161211.01030.9074070.116505
620172928.01581.9259260.183544
720182827.01842.4074070.152174
820193433.01702.1481480.200000
920203231.01461.7037040.219178
10202187.0640.1851850.125000
\n
" + }, + "execution_count": 276, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data" + ], "metadata": { "collapsed": false } diff --git a/PATSTAT/person_minipipe.ipynb b/PATSTAT/person_minipipe.ipynb index a21687b..b9743f3 100644 --- a/PATSTAT/person_minipipe.ipynb +++ b/PATSTAT/person_minipipe.ipynb @@ -54,9 +54,9 @@ "execution_count": 3, "outputs": [], "source": [ - "import pandas as pd\n", - "appln_pers_f = pd.read_csv(r\"C:\\Users\\radvanyi\\PycharmProjects\\ZSI_analytics\\PATSTAT\\first_round\\first-filings-with-persons-raw.csv\", header=None,\n", - " names=[\"appln_id\",\"appln_auth\",\"person_id\",\" invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])" + "# import pandas as pd\n", + "# appln_pers_f = pd.read_csv(r\"C:\\Users\\radvanyi\\PycharmProjects\\ZSI_analytics\\PATSTAT\\first_round\\first-filings-with-persons-raw.csv\", header=None,\n", + "# names=[\"appln_id\",\"appln_auth\",\"person_id\",\" invt_seq_nr\",\"applt_seq_nr\",'person_name',\"person_ctry_code\"])" ], "metadata": { "collapsed": false @@ -67,7 +67,10 @@ "execution_count": 4, "outputs": [], "source": [ - "pers_id_scope =appln_pers_f[\"person_id\"].unique()" + "import pandas as pd\n", + "\n", + "outdir=\"raw_files_csv\"\n", + "appln_pers_f = pd.read_csv(r\"C:/Users/radvanyi/PycharmProjects/ZSI_analytics/PATSTAT/raw_files_csv/02_persons_2011_2022.csv\",low_memory=False)" ], "metadata": { "collapsed": false @@ -77,9 +80,61 @@ "cell_type": "code", "execution_count": 5, "outputs": [], + "source": [ + "pers_id_scope = appln_pers_f[\"person_id\"].unique()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [], "source": [ "tls_206_scope = tls_206_p[tls_206_p['person_id'].isin(pers_id_scope)]\n", - "tls_206_scope.compute().to_csv(r\"C:\\Users\\radvanyi\\PycharmProjects\\ZSI_analytics\\PATSTAT\\first_round\\tls_206_scope.csv\",index=False)" + "tls_206_scope.compute().to_csv(r\"C:\\Users\\radvanyi\\PycharmProjects\\ZSI_analytics\\PATSTAT\\first_round\\tls_206_scope_v2.csv\",index=False)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 7, + "outputs": [], + "source": [ + "df_206 = tls_206_scope.compute()" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 8, + "outputs": [ + { + "data": { + "text/plain": " person_id person_name \n4023 4025 Meritor Heavy Vehicle Braking Systems (UK) Lim... \\\n4347 4349 Fraser, Stuart \n5627 5629 Xaar Technology Limited \n5811 5813 SIEMENS PLC \n6499 6501 BAE Systems PLC \n... ... ... \n366118 88823960 WARD, Lauren \n366119 88823961 WÄRTSILÄ UK LIMITED \n366130 88823972 Xavier Erdödy \n366135 88823977 Zeg.AI Ltd \n366137 88823979 Zhiyang Pan \n\n person_name_orig_lg \n4023 Meritor Heavy Vehicle Braking Systems (UK) Lim... \\\n4347 Fraser, Stuart \n5627 Xaar Technology Limited \n5811 SIEMENS PLC \n6499 BAE Systems PLC \n... ... \n366118 WARD, Lauren \n366119 WÄRTSILÄ UK LIMITED \n366130 Xavier Erdödy \n366135 Zeg.AI Ltd \n366137 Zhiyang Pan \n\n person_address person_ctry_code \n4023 Grange Road Cwmbran,Gwent NP44 3XU GB \\\n4347 Fernhill Lees Lane,Little Neston Cheshire CH64... GB \n5627 Unit 316, Science Park,Cambridge CB4 0XR GB \n5811 Faraday House Sir William Siemens Square Friml... GB \n6499 6 Carlton Gardens,London SW1Y 5AD GB \n... ... ... \n366118 None GB \n366119 None GB \n366130 None GB \n366135 None GB \n366137 None GB \n\n nuts nuts_level doc_std_name_id \n4023 UKL16 3 25273975 \\\n4347 UKD63 3 3738 \n5627 UKH12 3 4824 \n5811 UKJ25 3 4979 \n6499 UKI32 3 5583 \n... ... ... ... \n366118 UK 0 40301088 \n366119 UK 0 21929085 \n366130 UK 0 40578262 \n366135 UK 0 37017676 \n366137 UK 0 17409767 \n\n doc_std_name psn_id \n4023 MERITOR HEAVY VEHICLE BRAKING SYSTEMS UK LTD 21718818 \\\n4347 FRASER STUART 9243356 \n5627 XAAR TECHNOLOGY LTD 35706185 \n5811 SIEMENS PLC 30138991 \n6499 BAE SYSTEMS PLC 1787059 \n... ... ... \n366118 WARD LAUREN 188823960 \n366119 RTSIL UK LTD W 188823961 \n366130 XAVIER ERDÖDY 188823972 \n366135 ZEG AI LTD 188823977 \n366137 ZHIYANG PAN 188823979 \n\n psn_name psn_level psn_sector \n4023 MERITOR HEAVY VEHICLE BRAKING SYSTEMS (UK) 1 COMPANY \\\n4347 FRASER, STUART 0 None \n5627 XAAR TECHNOLOGY 1 COMPANY \n5811 SIEMENS 2 COMPANY \n6499 BAE SYSTEMS 2 COMPANY \n... ... ... ... \n366118 WARD, Lauren 0 UNKNOWN \n366119 WÄRTSILÄ UK LIMITED 0 UNKNOWN \n366130 Xavier Erdödy 0 UNKNOWN \n366135 Zeg.AI Ltd 0 UNKNOWN \n366137 Zhiyang Pan 0 UNKNOWN \n\n han_id han_name \n4023 1940089 MERITOR HEAVY VEHICLE BRAKING SYSTEMS UK LTD \\\n4347 100004349 Fraser, Stuart \n5627 3228426 XAAR TECH LTD \n5811 2755905 SIEMENS PLC \n6499 208539 BAE SYSTEMS PLC \n... ... ... \n366118 188823960 WARD, Lauren \n366119 188823961 WÄRTSILÄ UK LIMITED \n366130 188823972 Xavier Erdödy \n366135 188823977 Zeg.AI Ltd \n366137 188823979 Zhiyang Pan \n\n han_harmonized \n4023 2 \n4347 0 \n5627 2 \n5811 2 \n6499 2 \n... ... \n366118 0 \n366119 0 \n366130 0 \n366135 0 \n366137 0 \n\n[77303 rows x 16 columns]", + "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
person_idperson_nameperson_name_orig_lgperson_addressperson_ctry_codenutsnuts_leveldoc_std_name_iddoc_std_namepsn_idpsn_namepsn_levelpsn_sectorhan_idhan_namehan_harmonized
40234025Meritor Heavy Vehicle Braking Systems (UK) Lim...Meritor Heavy Vehicle Braking Systems (UK) Lim...Grange Road Cwmbran,Gwent NP44 3XUGBUKL16325273975MERITOR HEAVY VEHICLE BRAKING SYSTEMS UK LTD21718818MERITOR HEAVY VEHICLE BRAKING SYSTEMS (UK)1COMPANY1940089MERITOR HEAVY VEHICLE BRAKING SYSTEMS UK LTD2
43474349Fraser, StuartFraser, StuartFernhill Lees Lane,Little Neston Cheshire CH64...GBUKD6333738FRASER STUART9243356FRASER, STUART0None100004349Fraser, Stuart0
56275629Xaar Technology LimitedXaar Technology LimitedUnit 316, Science Park,Cambridge CB4 0XRGBUKH1234824XAAR TECHNOLOGY LTD35706185XAAR TECHNOLOGY1COMPANY3228426XAAR TECH LTD2
58115813SIEMENS PLCSIEMENS PLCFaraday House Sir William Siemens Square Friml...GBUKJ2534979SIEMENS PLC30138991SIEMENS2COMPANY2755905SIEMENS PLC2
64996501BAE Systems PLCBAE Systems PLC6 Carlton Gardens,London SW1Y 5ADGBUKI3235583BAE SYSTEMS PLC1787059BAE SYSTEMS2COMPANY208539BAE SYSTEMS PLC2
...................................................
36611888823960WARD, LaurenWARD, LaurenNoneGBUK040301088WARD LAUREN188823960WARD, Lauren0UNKNOWN188823960WARD, Lauren0
36611988823961WÄRTSILÄ UK LIMITEDWÄRTSILÄ UK LIMITEDNoneGBUK021929085RTSIL UK LTD W188823961WÄRTSILÄ UK LIMITED0UNKNOWN188823961WÄRTSILÄ UK LIMITED0
36613088823972Xavier ErdödyXavier ErdödyNoneGBUK040578262XAVIER ERDÖDY188823972Xavier Erdödy0UNKNOWN188823972Xavier Erdödy0
36613588823977Zeg.AI LtdZeg.AI LtdNoneGBUK037017676ZEG AI LTD188823977Zeg.AI Ltd0UNKNOWN188823977Zeg.AI Ltd0
36613788823979Zhiyang PanZhiyang PanNoneGBUK017409767ZHIYANG PAN188823979Zhiyang Pan0UNKNOWN188823979Zhiyang Pan0
\n

77303 rows × 16 columns

\n
" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_206[df_206[\"person_ctry_code\"]==\"GB\"]" ], "metadata": { "collapsed": false diff --git a/PATSTAT/raw_files_csv/plots/CN_EU_coapplt.png b/PATSTAT/raw_files_csv/plots/CN_EU_coapplt.png new file mode 100644 index 0000000..935d101 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/CN_EU_coapplt.png differ diff --git a/PATSTAT/raw_files_csv/plots/CN_applt_ctry.png b/PATSTAT/raw_files_csv/plots/CN_applt_ctry.png new file mode 100644 index 0000000..714424e Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/CN_applt_ctry.png differ diff --git a/PATSTAT/raw_files_csv/plots/_ships.xlsx b/PATSTAT/raw_files_csv/plots/_ships.xlsx new file mode 100644 index 0000000..be892e6 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/_ships.xlsx differ diff --git a/PATSTAT/raw_files_csv/plots/applt_loc_ctry.png b/PATSTAT/raw_files_csv/plots/applt_loc_ctry.png new file mode 100644 index 0000000..4427d10 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/applt_loc_ctry.png differ diff --git a/PATSTAT/raw_files_csv/plots/applt_table.xlsx b/PATSTAT/raw_files_csv/plots/applt_table.xlsx new file mode 100644 index 0000000..d3231a2 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/applt_table.xlsx differ diff --git a/PATSTAT/raw_files_csv/plots/auth_loc_ctry.png b/PATSTAT/raw_files_csv/plots/auth_loc_ctry.png new file mode 100644 index 0000000..a6cef23 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/auth_loc_ctry.png differ diff --git a/PATSTAT/raw_files_csv/plots/invt_loc_ctry.png b/PATSTAT/raw_files_csv/plots/invt_loc_ctry.png new file mode 100644 index 0000000..7dc3a89 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/invt_loc_ctry.png differ diff --git a/PATSTAT/raw_files_csv/plots/overall_distr&trends.png b/PATSTAT/raw_files_csv/plots/overall_distr&trends.png new file mode 100644 index 0000000..e61ce34 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/overall_distr&trends.png differ diff --git a/PATSTAT/raw_files_csv/plots/patent_ships.xlsx b/PATSTAT/raw_files_csv/plots/patent_ships.xlsx new file mode 100644 index 0000000..4c53ec8 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/patent_ships.xlsx differ diff --git a/PATSTAT/raw_files_csv/plots/top15_applt_person_ctry_type_China.png b/PATSTAT/raw_files_csv/plots/top15_applt_person_ctry_type_China.png new file mode 100644 index 0000000..6b6f23d Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/top15_applt_person_ctry_type_China.png differ diff --git a/PATSTAT/raw_files_csv/plots/top15_applt_person_ctry_type_EU.png b/PATSTAT/raw_files_csv/plots/top15_applt_person_ctry_type_EU.png new file mode 100644 index 0000000..92f2841 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/top15_applt_person_ctry_type_EU.png differ diff --git a/PATSTAT/raw_files_csv/plots/top15_applt_psn_sector_primary_China.png b/PATSTAT/raw_files_csv/plots/top15_applt_psn_sector_primary_China.png new file mode 100644 index 0000000..f1c21c0 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/top15_applt_psn_sector_primary_China.png differ diff --git a/PATSTAT/raw_files_csv/plots/top15_applt_psn_sector_primary_EU.png b/PATSTAT/raw_files_csv/plots/top15_applt_psn_sector_primary_EU.png new file mode 100644 index 0000000..baa3e73 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/top15_applt_psn_sector_primary_EU.png differ diff --git a/PATSTAT/raw_files_csv/plots/yearly_outputs.png b/PATSTAT/raw_files_csv/plots/yearly_outputs.png new file mode 100644 index 0000000..a658777 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/yearly_outputs.png differ diff --git a/PATSTAT/raw_files_csv/plots/yearly_rel_outputs.png b/PATSTAT/raw_files_csv/plots/yearly_rel_outputs.png new file mode 100644 index 0000000..ba8c387 Binary files /dev/null and b/PATSTAT/raw_files_csv/plots/yearly_rel_outputs.png differ