Initial
This commit is contained in:
92
notebooks/plot_detector_comparison.ipynb
Normal file
92
notebooks/plot_detector_comparison.ipynb
Normal file
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "imports",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import numpy as np\n",
|
||||
"from pyprojroot import here"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "load",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"data = pd.read_csv(here() / 'data/base/data.csv')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "plot",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"fig, axes = plt.subplots(2, 2, figsize=(14, 10))\n",
|
||||
"\n",
|
||||
"# Group by detector type\n",
|
||||
"detector_groups = data.groupby('Detector Type')\n",
|
||||
"\n",
|
||||
"# Bell parameter by detector\n",
|
||||
"ax1 = axes[0, 0]\n",
|
||||
"detector_bell = detector_groups['Bell Parameter (S)'].mean().sort_values(ascending=False)\n",
|
||||
"ax1.bar(range(len(detector_bell)), detector_bell.values, color='steelblue', edgecolor='black')\n",
|
||||
"ax1.set_xticks(range(len(detector_bell)))\n",
|
||||
"ax1.set_xticklabels(detector_bell.index, rotation=45)\n",
|
||||
"ax1.set_ylabel('Mean Bell Parameter (S)', fontsize=11)\n",
|
||||
"ax1.set_title('Bell Parameter by Detector Type', fontsize=12)\n",
|
||||
"ax1.grid(True, alpha=0.3, axis='y')\n",
|
||||
"\n",
|
||||
"# Fidelity by detector\n",
|
||||
"ax2 = axes[0, 1]\n",
|
||||
"detector_fid = detector_groups['Entanglement Fidelity'].mean().sort_values(ascending=False)\n",
|
||||
"ax2.bar(range(len(detector_fid)), detector_fid.values, color='coral', edgecolor='black')\n",
|
||||
"ax2.set_xticks(range(len(detector_fid)))\n",
|
||||
"ax2.set_xticklabels(detector_fid.index, rotation=45)\n",
|
||||
"ax2.set_ylabel('Mean Entanglement Fidelity', fontsize=11)\n",
|
||||
"ax2.set_title('Fidelity by Detector Type', fontsize=12)\n",
|
||||
"ax2.grid(True, alpha=0.3, axis='y')\n",
|
||||
"\n",
|
||||
"# Detection efficiency by detector\n",
|
||||
"ax3 = axes[1, 0]\n",
|
||||
"detector_eff = detector_groups['Detection Efficiency A (%)'].mean().sort_values(ascending=False)\n",
|
||||
"ax3.bar(range(len(detector_eff)), detector_eff.values, color='mediumseagreen', edgecolor='black')\n",
|
||||
"ax3.set_xticks(range(len(detector_eff)))\n",
|
||||
"ax3.set_xticklabels(detector_eff.index, rotation=45)\n",
|
||||
"ax3.set_ylabel('Mean Detection Efficiency (%)', fontsize=11)\n",
|
||||
"ax3.set_title('Detection Efficiency by Detector Type', fontsize=12)\n",
|
||||
"ax3.grid(True, alpha=0.3, axis='y')\n",
|
||||
"\n",
|
||||
"# Sample counts\n",
|
||||
"ax4 = axes[1, 1]\n",
|
||||
"detector_counts = data['Detector Type'].value_counts()\n",
|
||||
"ax4.bar(range(len(detector_counts)), detector_counts.values, color='mediumpurple', edgecolor='black')\n",
|
||||
"ax4.set_xticks(range(len(detector_counts)))\n",
|
||||
"ax4.set_xticklabels(detector_counts.index, rotation=45)\n",
|
||||
"ax4.set_ylabel('Number of Experiments', fontsize=11)\n",
|
||||
"ax4.set_title('Sample Size by Detector Type', fontsize=12)\n",
|
||||
"ax4.grid(True, alpha=0.3, axis='y')\n",
|
||||
"\n",
|
||||
"plt.tight_layout()\n",
|
||||
"plt.savefig(here() / 'output/plots/detector_comparison.png', dpi=300, bbox_inches='tight')"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Reference in New Issue
Block a user