In [3]:
import json
import numpy as np
In [41]:
qutip_citation_pacs_json = """
[
{
"author": "Prado",
"pacs": ["32.80.-t", "42.50.Ct", "42.50.Dv"]
},
{
"author": "Gessner",
"pacs": ["03.67.Ac", "05.30.Rt", "37.10.Ty"]
},
{
"author": "Migdal",
"pacs": [""]
},
{
"author": "Haikka",
"pacs": [""]
},
{
"author": "Peuntinger",
"pacs": ["03.67.Hk", "42.50.Dv", "42.68.Bz"]
},
{
"author": "Johansson2014",
"pacs": ["85.85.+j", "05.45.-a", "03.65.Ud"]
},
{
"author": "Xu",
"pacs": ["03.65.Yz", "03.67.-a", "42.50.Dv"]
},
{
"author": "Nigg",
"pacs": ["03.67.Lx", "42.50.Dv", "42.50.Pq", "85.25.-j"]
},
{
"author": "Gessner",
"pacs": ["78.47.jh", "37.10.Jk", "42.50.Ar", "42.50.Lc"]
},
{
"author": "Chen",
"pacs": [""]
},
{
"author": "Dajka",
"pacs": [""]
},
{
"author": "Lörch",
"pacs": [""]
},
{
"author": "Wan",
"pacs": [""]
},
{
"author": "Puzzouli",
"pacs": [""]
},
{
"author": "Liao",
"pacs": ["42.50.Pq", "42.50.Ar", "42.50.Wk", "07.10.Cm"]
},
{
"author": "Nation",
"pacs": ["42.50.Wk", "42.50.Ct", "42.50.Pq"]
},
{
"author": "Settnes",
"pacs": ["78.67.Hc", "42.50.Pq", "78.55.-m", "78.67.De"]
},
{
"author": "Genway",
"pacs": [""]
},
{
"author": "Daniilidis",
"pacs": [""]
},
{
"author": "Ostermann",
"pacs": ["42.50.-p", "42.50.Ar", "42.50.Lc", "42.72.-g"]
},
{
"author": "Armour",
"pacs": ["85.25.Cp", "42.50.Lc", "42.50.Dv"]
},
{
"author": "Kovalev",
"pacs": [""]
},
{
"author": "Grimsmo",
"pacs": ["42.50.Pq", "37.30.+i", "42.50.Ct", "05.70.Fh"]
},
{
"author": "Johansson",
"pacs": ["42.50.Lc", "85.25.Cp", "03.70.+k"]
},
{
"author": "Majumdar",
"pacs": ["78.67.Hc", "03.67.Hk", "42.50.Pq", "85.35.Be"]
},
{
"author": "Hardal",
"pacs": ["42.50.Pq", "42.50.Ar", "42.65.Lm"]
},
{
"author": "Reiter",
"pacs": ["03.67.Bg", "42.50.Dv", "42.50.Lc", "85.25.-j"]
},
{
"author": "Moelbjerg",
"pacs": ["42.55.Sa", "42.55.Ah", "42.50.Pq", "42.50.Ct"]
},
{
"author": "Xu",
"pacs": ["73.23.-b", "73.63.Kv", "42.50.Hz", "73.50.Pz"]
},
{
"author": "Li",
"pacs": ["74.45.+c", "85.35.Gv", "74.20.Mn"]
},
{
"author": "Hardal",
"pacs": ["03.67.Lx", "05.40.Fb", "03.65.Yz"]
},
{
"author": "Grimsmo",
"pacs": ["42.50.Pq", "37.30.+i", "42.50.Ct", "05.70.Fh"]
},
{
"author": "Tipsmark",
"pacs": ["42.50.-p", "42.50.Ar", "42.50.Dv", "42.50.Ex"]
},
{
"author": "Nigg",
"pacs": ["42.50.Ct", "03.67.-a", "42.50.Pq", "85.25.Am"]
},
{
"author": "Holloway",
"pacs": ["03.67.Dd", "42.65.-k", "07.05.Kf", "42.50.Dv"]
},
{
"author": "Murch",
"pacs": ["42.50.Dv", "03.65.Yz", "42.50.Pq", "85.25.-j"]
},
{
"author": "Tezak",
"pacs": [""]
},
{
"author": "Dereli",
"pacs": ["42.50.Pq", "71.70.Ej", "85.25.-j"]
}
]
"""
In [42]:
data = json.loads(qutip_citation_pacs_json)
In [43]:
print("Number of papers %d" % len(data))
In [44]:
unique_pacs = np.unique(np.array([item for sublist in data for item in sublist['pacs']]))
In [45]:
unique_pacs
Out[45]:
In [46]:
print("Number of unique pacs %d" % len(unique_pacs))
In [47]:
count_pacs = np.array([sum([pacs in item['pacs'] for item in data]) for pacs in unique_pacs])
count_pacs
Out[47]:
In [48]:
%matplotlib inline
In [49]:
import matplotlib.pyplot as plt
In [52]:
pacs_table = {
'': 'PACS not specified',
'03.65.Yz': 'Decoherence, quantum mechanics',
'03.67.-a': 'Quantum information',
'03.67.Bg': 'Quantum information, entanglement production',
'03.67.Dd': 'Quantum cryptography',
'03.67.Hk': 'Quantum communication',
'03.67.Lx': 'Quantum computation',
'03.70.+k': 'Quantum field theory',
'05.40.Fb': 'Random walks',
'05.70.Fh': 'Phase transitions in statistical mechanics and thermodynamics',
'07.05.Kf': 'Data management',
'37.30.+i': 'Ions in cavities',
'42.50.-p': 'Population inversion',
'42.50.Ar': 'Coherence quantum optics',
'42.50.Ct': 'Light interaction with matter',
'42.50.Dv': 'Phase (electromagnetic fields)',
'42.50.Ex': 'Quantum information optical implementations',
'42.50.Hz': 'Relaxation processes in quantum optics',
'42.50.Lc': 'Fluctuation phenomena quantum optics',
'42.50.Pq': 'Cavity quantum electrodynamics',
'42.50.Wk': 'Radiation pressure on atoms and molecules',
'42.55.Ah': 'Stimulated emission laser theory',
'42.55.Sa': 'Microcavity and microdisk lasers',
'42.65.-k': 'Nonlinear optics',
'42.65.Lm': 'Entanglement and quantum nonlocality nonlinear optics',
'42.72.-g': 'Light sources',
'71.70.Ej': 'Spin-orbit coupling in condensed matter',
'73.23.-b': 'Aharonov-Bohm effect mesoscopic systems',
'73.50.Pz': 'Photoconductivity thin films',
'73.63.Kv': 'Quantum dots, electronic transport',
'74.20.Mn': 'Spin fluctuations (superconductivity)',
'74.45.+c': 'Superconducting junctions (SN and SNS)',
'78.55.-m': 'Emission spectra, condensed matter',
'78.67.De': 'Optical properties of nanoscale materials and structures, quantum wells',
'78.67.Hc': 'Optical properties of nanoscale materials and structures, quantum dots',
'85.25.-j': 'Superconducting devices',
'85.25.Am': 'Superconducting device characterization, design, and modeling',
'85.25.Cp': 'Josephson devices',
'85.35.Be': 'Low-dimensional structures devices',
'85.35.Gv': 'Single-electron devices',
'07.10.Cm': 'Micromechanical devices and systems',
'03.65.Ud': 'Entanglement and quantum nonlocality',
'03.67.Ac': 'Quantum algorithms and protocols',
'05.30.Rt': 'Quantum phase transitions',
'05.45.-a': 'Nonlinear dynamics',
'32.80.-t': 'Photon-atom interactions',
'37.10.Jk': 'Optical cooling and trapping of atoms',
'37.10.Ty': 'Ion traps',
'42.68.Bz': 'Meteorological factors atmospheric optics',
'78.47.jh': 'Nonlinear optical spectroscopy coherent',
'85.25.-j': 'Superconducting devices',
'85.85.+j': 'Microelectromechanical systems (MEMS)',
}
In [53]:
translated_pacs = [pacs_table[pacs] for pacs in unique_pacs]
In [59]:
with plt.xkcd():
fig, ax = plt.subplots(1, 1, figsize=(12, 10))
y_pos = np.arange(len(unique_pacs))
axR = ax.twinx()
axR.yaxis.tick_right()
axR.yaxis.set_label_position("right")
axR.set_yticks(y_pos)
axR.set_yticklabels(translated_pacs)
axR.set_ylim(0-1, max(y_pos)+1)
axR.set_xlim(0, max(count_pacs)+1)
ax.barh(y_pos, count_pacs, align='center', alpha=1.0, color="#1E90B3")
ax.set_yticks(y_pos)
ax.set_yticklabels(unique_pacs)
ax.set_xlabel('Count')
ax.set_ylim(0-1, max(y_pos)+1)
ax.set_xlim(0, max(count_pacs)+1)
ax.set_title('PACS codes from papers that cite QuTiP');
fig.tight_layout()
In [60]:
fig.savefig("qutip_citation_pacs.png", dpi=100)
In [61]:
%reload_ext version_information
In [62]:
%version_information json, numpy, matplotlib
Out[62]:
In [ ]: