aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Janovsky2023-06-30 14:12:56 +0200
committerAdam Janovsky2023-06-30 14:12:56 +0200
commit5fb73f13ec96778dcb19fdb4585019e1291f59fa (patch)
tree97d03a38a24e24ca8951b032c0180aaeb7a41c83
parent9799a40709fac5346a4770ab9870682cbeab8e54 (diff)
downloadsec-certs-5fb73f13ec96778dcb19fdb4585019e1291f59fa.tar.gz
sec-certs-5fb73f13ec96778dcb19fdb4585019e1291f59fa.tar.zst
sec-certs-5fb73f13ec96778dcb19fdb4585019e1291f59fa.zip
more plots about summary of references
-rw-r--r--notebooks/cc/references.ipynb73
1 files changed, 70 insertions, 3 deletions
diff --git a/notebooks/cc/references.ipynb b/notebooks/cc/references.ipynb
index 28e589ec..bb79f585 100644
--- a/notebooks/cc/references.ipynb
+++ b/notebooks/cc/references.ipynb
@@ -342,18 +342,26 @@
"outputs": [],
"source": [
"date_range = pd.date_range(df_id_rich.not_valid_before.min(), df_id_rich.not_valid_before.max())\n",
+ "dct_active_all = {}\n",
+ "dct_reference_rich_all = {}\n",
+ "dct_referenced_all = {}\n",
+ "dct_isolated_all = {}\n",
"dct_active_others = {}\n",
"dct_reference_rich_others = {}\n",
"dct_active_smartcards = {}\n",
"dct_reference_rich_smartcards = {}\n",
"for date in tqdm(date_range):\n",
" active_certs = df_id_rich.loc[(date >= df_id_rich.not_valid_before) & (date <= df_id_rich.not_valid_after)]\n",
+ " dct_active_all[date] = active_certs.shape[0]\n",
+ " dct_isolated_all[date] = active_certs.loc[(active_certs.n_references == 0) & (active_certs.n_referenced_by == 0)].shape[0]\n",
" dct_active_others[date] = active_certs.loc[\n",
" active_certs.category != \"ICs, Smart Cards and Smart Card-Related Devices and Systems\"\n",
" ].shape[0]\n",
" dct_active_smartcards[date] = active_certs.loc[\n",
" active_certs.category == \"ICs, Smart Cards and Smart Card-Related Devices and Systems\"\n",
" ].shape[0]\n",
+ " dct_reference_rich_all[date] = active_certs.loc[active_certs.n_references > 0].shape[0]\n",
+ " dct_referenced_all[date] = active_certs.loc[active_certs.n_referenced_by > 0].shape[0]\n",
" dct_reference_rich_others[date] = active_certs.loc[\n",
" (active_certs.category != \"ICs, Smart Cards and Smart Card-Related Devices and Systems\")\n",
" & (active_certs.n_references > 0)\n",
@@ -376,11 +384,70 @@
"df_active_vs_ref_rich.index.name = \"date\"\n",
"df_active_vs_ref_rich = df_active_vs_ref_rich.reset_index()\n",
"\n",
- "\n",
- "df_active_vs_ref_rich_melted = df_active_vs_ref_rich.melt(id_vars=[\"date\"], var_name=\"category\", value_name=\"number of certificates\")\n",
+ "df_active_vs_ref_rich_melted = df_active_vs_ref_rich.melt(\n",
+ " id_vars=[\"date\"], var_name=\"category\", value_name=\"number of certificates\"\n",
+ ")\n",
"g = sns.lineplot(data=df_active_vs_ref_rich_melted, x=\"date\", y=\"number of certificates\", hue=\"category\")\n",
- "g.set(title=\"Number of active certificates vs. reference-rich certificates in time\", xlabel=\"Time\", ylabel=\"Number of certificates\")\n",
+ "g.set(\n",
+ " title=\"Number of active certificates vs. reference-rich certificates in time\",\n",
+ " xlabel=\"Time\",\n",
+ " ylabel=\"Number of certificates\",\n",
+ ")\n",
"plt.savefig(RESULTS_DIR / \"lienplot_n_active_certs_vs_n_references.pdf\", bbox_inches=\"tight\")\n",
+ "plt.show()\n",
+ "\n",
+ "\n",
+ "df_summary_references = pd.concat(\n",
+ " [\n",
+ " pd.Series(dct_active_all, name=\"active certificates\"),\n",
+ " pd.Series(dct_reference_rich_all, name=\"ref. rich certificates\"),\n",
+ " pd.Series(dct_referenced_all, name=\"referenced certificates\"),\n",
+ " pd.Series(dct_isolated_all, name=\"isolated certificates\"),\n",
+ " ], axis=1\n",
+ ")\n",
+ "df_summary_references.index.name = \"date\"\n",
+ "df_summary_references = df_summary_references.reset_index()\n",
+ "df_summary_references_melted = df_summary_references.melt(id_vars=[\"date\"], var_name=\"category\", value_name=\"number of certificates\")\n",
+ "\n",
+ "g = sns.lineplot(data=df_summary_references_melted, x=\"date\", y=\"number of certificates\", hue=\"category\", errorbar=None)\n",
+ "g.set(\n",
+ " title=\"Number of active certificates vs. reference-rich vs. referenced certificates in time\",\n",
+ " xlabel=\"Time\",\n",
+ " ylabel=\"Number of certificates\",\n",
+ ")\n",
+ "plt.savefig(RESULTS_DIR / \"lineplot_references_summary.pdf\", bbox_inches=\"tight\")\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_summary_references"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df_ratios = df_summary_references.copy()\n",
+ "df_ratios[\"ref. rich certificates\"] = df_ratios[\"ref. rich certificates\"] / df_ratios[\"active certificates\"]\n",
+ "df_ratios[\"referenced certificates\"] = df_ratios[\"referenced certificates\"] / df_ratios[\"active certificates\"]\n",
+ "df_ratios[\"isolated certificates\"] = df_ratios[\"isolated certificates\"] / df_ratios[\"active certificates\"]\n",
+ "df_ratios = df_ratios.drop(columns=[\"active certificates\"])\n",
+ "df_ratios_melted = df_ratios.melt(id_vars=[\"date\"], var_name=\"category\", value_name=\"ratio of certificates\")\n",
+ "\n",
+ "g = sns.lineplot(data=df_ratios_melted, x=\"date\", y=\"ratio of certificates\", hue=\"category\", errorbar=None)\n",
+ "g.set(\n",
+ " title=\"ratio of reference-rich vs. referenced vs. isolated certificates in time\",\n",
+ " xlabel=\"Time\",\n",
+ " ylabel=\"Number of certificates\",\n",
+ ")\n",
+ "plt.savefig(RESULTS_DIR / \"lineplot_reference_ratio.pdf\", bbox_inches=\"tight\")\n",
"plt.show()"
]
},