diff options
| author | Adam Janovsky | 2023-06-30 14:12:56 +0200 |
|---|---|---|
| committer | Adam Janovsky | 2023-06-30 14:12:56 +0200 |
| commit | 5fb73f13ec96778dcb19fdb4585019e1291f59fa (patch) | |
| tree | 97d03a38a24e24ca8951b032c0180aaeb7a41c83 | |
| parent | 9799a40709fac5346a4770ab9870682cbeab8e54 (diff) | |
| download | sec-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.ipynb | 73 |
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()" ] }, |
