-
Notifications
You must be signed in to change notification settings - Fork 0
/
00_bibliographic_count.py
67 lines (55 loc) · 1.95 KB
/
00_bibliographic_count.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
from bibliobanana import compute_yearly_citations, load_results_from_file, \
plot_yearly_count
from matplotlib import pyplot
# Define the search terms of interest.
search_terms = [ \
"k-means", \
"hierarchical clustering", \
"c-means", \
"latent class analysis", \
"latent profile analysis", \
]
# Define the comperison terms.
comparison_terms = ["t-test"]
# Define the search range.
start_date = 1990
end_date = 2022
# Construct the name of the file to which we should save the data.
save_file_name = "bibliobanana_clustering_{}-{}".format(start_date, end_date)
# Files and folders.
this_dir = os.path.dirname(os.path.abspath(__file__))
out_dir = os.path.join(this_dir, "output_bibliobanana")
if not os.path.isdir(out_dir):
os.mkdir(out_dir)
save_file = os.path.join(out_dir, save_file_name)
# Get the results from PubMed.
if not os.path.isfile(save_file+".csv"):
print("Getting data from PubMed...")
result = compute_yearly_citations(search_terms, start_date, end_date, \
comparison_terms=comparison_terms, database="pubmed", \
exact_phrase=True, pause=0.5, verbose=True, \
save_to_file=save_file+".csv", plot_to_file=None)
# Load from an existing file.
else:
print("Loading data from file...")
result = load_results_from_file(save_file+".csv")
print("Plotting results...")
# Plot the results.
fig, ax = plot_yearly_count(result, plot_ratio=False, \
plot_average_comparison=False, scale_to_max=False, \
figsize=(8.0,6.0), dpi=100.0)
fig.savefig(save_file+".png")
pyplot.close(fig)
# Plot the results as ratios of the comparison terms.
fig, ax = plot_yearly_count(result, plot_ratio=True, \
plot_average_comparison=False, scale_to_max=False, \
figsize=(8.0,6.0), dpi=900.0)
# Move the legend to the top-left.
ax.legend(loc="upper left", fontsize=14)
# Save the figure.
fig.savefig(save_file+"_ratios.png")
pyplot.close(fig)
print("All done!")