Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
5
5Give
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Ashwin Rao
5Give
Commits
f9e0c8d2
Commit
f9e0c8d2
authored
3 years ago
by
Ashwin Rao
Browse files
Options
Downloads
Patches
Plain Diff
For avoiding type3 fonts
parent
15774237
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
parse_results/parse_rtcm3_logs.ipynb
+107
-27
107 additions, 27 deletions
parse_results/parse_rtcm3_logs.ipynb
with
107 additions
and
27 deletions
parse_results/parse_rtcm3_logs.ipynb
+
107
−
27
View file @
f9e0c8d2
...
@@ -9,7 +9,11 @@
...
@@ -9,7 +9,11 @@
"# Parse the RTCM3 Logs\n",
"# Parse the RTCM3 Logs\n",
"import seaborn as sns\n",
"import seaborn as sns\n",
"import pandas\n",
"import pandas\n",
"import matplotlib.pyplot as plt"
"import matplotlib.pyplot as plt\n",
"import numpy\n",
"\n",
"# to avoid type 3 fonts. \n",
"plt.rc('pdf',fonttype = 42)"
]
]
},
},
{
{
...
@@ -31,37 +35,57 @@
...
@@ -31,37 +35,57 @@
"# Compute the latency in ms \n",
"# Compute the latency in ms \n",
"timestamps[\"Latency\"] = (timestamps[\"ts_client\"]-timestamps[\"ts_relay\"])*1000\n",
"timestamps[\"Latency\"] = (timestamps[\"ts_client\"]-timestamps[\"ts_relay\"])*1000\n",
"\n",
"\n",
"#
Inter-arrival ti
me
be
tween messages. The diff is in microsec
\n",
"#
Re
me
m
be
r the diff is still in seconds.
\n",
"timestamps['relay_iat'] = timestamps['ts_relay'].diff()\n",
"timestamps['relay_iat'] = timestamps['ts_relay'].diff()\n",
"timestamps['relay_iat'] = timestamps['relay_iat'].apply(lambda x : x if x > 0 else numpy.nan) # Dirty hack for jumps between experiments.\n",
"timestamps['relay_iat'] = timestamps['relay_iat'].apply(lambda x : x if x < 100 else numpy.nan) # Dirty hack for jumps between experiments.\n",
"\n",
"timestamps['client_iat'] = timestamps['ts_client'].diff()\n",
"timestamps['client_iat'] = timestamps['ts_client'].diff()\n",
"timestamps['iat_diff'] = (timestamps['relay_iat']-timestamps['client_iat'])*1000\n",
"timestamps['client_iat'] = timestamps['client_iat'].apply(lambda x : x if x > 0 else numpy.nan) # Dirty hack for jumps between experiments.\n",
"print(timestamps)\n",
"timestamps['client_iat'] = timestamps['client_iat'].apply(lambda x : x if x < 100 else numpy.nan) # Dirty hack for jumps between experiments.\n",
"\n",
"# Inter-arrival time between messages. The diff is in millisec. \n",
"timestamps['iat_diff'] = abs(timestamps['relay_iat']-timestamps['client_iat'])*1000\n",
"print(timestamps[\"iat_diff\"])\n",
"\n",
"\n",
"\n",
"\n",
"ping = pandas.read_csv(\"./ping.csv\")\n",
"ping = pandas.read_csv(\"./ping.csv\")\n",
"print(ping)\n",
"
#
print(ping)\n",
"ping['Latency'] = ping['rtt']/2.0\n",
"ping['Latency'] = ping['rtt']/2.0\n",
"\n"
"\n",
"print(timestamps[timestamps[\"Latency\"] == max(timestamps[\"Latency\"])])\n"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": null,
"execution_count": null,
"metadata": {},
"metadata": {
"scrolled": true
},
"outputs": [],
"outputs": [],
"source": [
"source": [
"fig, ax = plt.subplots(figsize=(1
0
,5))\n",
"fig, ax = plt.subplots(figsize=(1
7.5
,5))\n",
"sns.set_context(\"poster\")
,
\n",
"sns.set_context(\"poster\")\n",
"sns.set_style(\"white\")\n",
"sns.set_style(\"white\")\n",
"sns.color_palette(\"husl\", 8)\n",
"\n",
"\n",
"#plot_data = timestamps[timestamps[\"Technology\"].isin([\"Ethernet\", \"Wi-Fi(PE)\", \"Wi-Fi(PE)\", \"5G(BE)\", \"5G(BD)\"]) ]\n",
"plot_data = timestamps\n",
"\n",
"\n",
"sns.boxplot(data=
timestamps
, x=\"Location\", y=\"Latency\",hue=\"Technology\", whis=[5,95], showfliers=False)\n",
"sns.boxplot(data=
plot_data
, x=\"Location\", y=\"Latency\",hue=\"Technology\", whis=[5,95], showfliers=False)\n",
" \n",
" \n",
"#handles, labels = ax.get_legend_handles_labels() \n",
"handles, labels = ax.get_legend_handles_labels() \n",
"#ax.set_xticklabels(labels=['Ethernet', 'Wi-Fi', '5G'])\n",
"ax.set_yticklabels(labels=['0.1', '1', '10', '100'])\n",
"ax.set_ylim(0,50)\n",
"ax.set_ylim(0.1,300)\n",
"ax.set_xlabel(\"Location\")\n",
"ax.set_xlabel(\"Location\", weight=\"bold\")\n",
"ax.set_ylabel(\"Latency (ms)\")\n",
"ax.set_ylabel(\"Latency (ms)\", weight=\"bold\")\n",
"handles, labels = ax.get_legend_handles_labels()\n",
"ax.legend(ncol=5, title=\"Technology\", bbox_to_anchor=(-0.02, 1.35), loc=\"upper left\")\n",
"ax.set_yscale(\"log\")\n",
"ax.grid(True, which='major', axis='y')\n",
"ax.grid(True, which='major', axis='y')\n",
"ax.grid(True, which='minor', axis='y')\n",
"\n",
"plt.savefig(\"timestamps.pdf\", dpi=1200, bbox_inches='tight')"
"plt.savefig(\"timestamps.pdf\", dpi=1200, bbox_inches='tight')"
]
]
},
},
...
@@ -77,7 +101,30 @@
...
@@ -77,7 +101,30 @@
"execution_count": null,
"execution_count": null,
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": []
"source": [
"fig, ax = plt.subplots(figsize=(17.5,5))\n",
"sns.set_context(\"poster\"),\n",
"sns.set_style(\"white\")\n",
"sns.set_palette(\"colorblind\")\n",
"\n",
"sns.boxplot(data=ping, x=\"Location\", y=\"Latency\",hue=\"Technology\", whis=[5,95], showfliers=False)\n",
"\n",
"ax.set_ylim(0.1,300)\n",
"ax.set_xlabel(\"Location\", weight=\"bold\")\n",
"ax.set_ylabel(\"Latency (ms)\", weight=\"bold\")\n",
"ax.legend(ncol=5, title=\"Technology\", bbox_to_anchor=(-0.02, 1.35), loc=\"upper left\")\n",
"ax.set_yscale(\"log\")\n",
"ax.grid(True, which='major', axis='y')\n",
"ax.grid(True, which='minor', axis='y')\n",
"plt.savefig(\"ping.pdf\", dpi=1200, bbox_inches='tight')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot the difference in the inter-arrival time of the messages. "
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
...
@@ -85,22 +132,29 @@
...
@@ -85,22 +132,29 @@
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"fig, ax = plt.subplots(figsize=(1
0
,5))\n",
"fig, ax = plt.subplots(figsize=(1
7.5
,5))\n",
"sns.set_context(\"poster\"),\n",
"sns.set_context(\"poster\"),\n",
"sns.set_style(\"white\")\n",
"sns.set_style(\"white\")\n",
"sns.boxplot(data=ping, x=\"Location\", y=\"Latency\",hue=\"Technology\", whis=[5,95], showfliers=False)\n",
"sns.set_palette(\"colorblind\")\n",
"ax.set_xlabel(\"Location\")\n",
"\n",
"ax.set_ylabel(\"Latency (ms)\")\n",
"\n",
"ax.set_ylim(0,50)\n",
"sns.boxplot(data=timestamps, x=\"Location\", y=\"iat_diff\",hue=\"Technology\", whis=[5,95], showfliers=False)\n",
"ax.set_ylim(0.01,300)\n",
"ax.set_xlabel(\"Location\", weight=\"bold\")\n",
"ax.set_ylabel(\"Inter-arrival Time \\n Difference (ms)\", weight=\"bold\")\n",
"#ax.set_yscale(\"log\")\n",
"ax.legend(ncol=5, title=\"Technology\", bbox_to_anchor=(-0.02, 1.35), loc=\"upper left\")\n",
"ax.set_yscale(\"log\")\n",
"ax.grid(True, which='major', axis='y')\n",
"ax.grid(True, which='major', axis='y')\n",
"plt.savefig(\"ping.pdf\", dpi=1200, bbox_inches='tight')"
"ax.grid(True, which='minor', axis='y')\n",
"plt.savefig(\"iat.pdf\", dpi=1200, bbox_inches='tight')"
]
]
},
},
{
{
"cell_type": "markdown",
"cell_type": "markdown",
"metadata": {},
"metadata": {},
"source": [
"source": [
"# Plot the
difference in the inter-arrival time of the messages.
"
"# Plot the
CDF of the IAT
"
]
]
},
},
{
{
...
@@ -109,13 +163,39 @@
...
@@ -109,13 +163,39 @@
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"fig, ax = plt.subplots(figsize=(1
0
,5))\n",
"fig, ax = plt.subplots(figsize=(1
5
,5))\n",
"sns.set_context(\"poster\"),\n",
"sns.set_context(\"poster\"),\n",
"sns.set_style(\"white\")\n",
"sns.set_style(\"white\")\n",
"sns.set_palette(\"colorblind\")\n",
"\n",
"\n",
"sns.boxplot(data=timestamps, x=\"Location\", y=\"iat_diff\",hue=\"Technology\", whis=[5,95], showfliers=False)\n",
"\n",
"ax.set_xlabel(\"Location\")\n",
"def ecdf(x):\n",
"ax.set_ylabel(\"Inter-arrival Time \\n Difference (μs)\")"
" xs = numpy.sort(x)\n",
" ys = numpy.arange(1, len(xs)+1)/float(len(xs))\n",
" return xs, ys\n",
"\n",
"plot_data = timestamps[timestamps[\"relay_iat\"].notnull()]\n",
"#plot_data = plot_data[plot_data[\"relay_iat\"]>0]\n",
"\n",
"x = plot_data[\"relay_iat\"]*1000 # Convert to ms.\n",
"xs, ys = ecdf(x)\n",
"plt.plot(xs,ys)\n",
"ax.set_xscale(\"log\")\n",
"ax.grid(True, which='major')\n",
"ax.grid(True, which='minor')\n",
"ax.set_ylabel(\"ECDF\", weight=\"bold\")\n",
"ax.set_xlabel(\"Inter Arrival Time (ms)\", weight=\"bold\")\n",
"plt.savefig(\"ecdfiat.pdf\", dpi=1200, bbox_inches='tight')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for font in plt.rcParams['font.sans-serif']:\n",
" print(font)\n"
]
]
},
},
{
{
...
...
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
# Parse the RTCM3 Logs
# Parse the RTCM3 Logs
import
seaborn
as
sns
import
seaborn
as
sns
import
pandas
import
pandas
import
matplotlib.pyplot
as
plt
import
matplotlib.pyplot
as
plt
import
numpy
# to avoid type 3 fonts.
plt
.
rc
(
'
pdf
'
,
fonttype
=
42
)
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Read the files and pre process them for plotting.
# Read the files and pre process them for plotting.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
# Read the file
# Read the file
timestamps
=
pandas
.
read_csv
(
"
./timestamps.csv
"
)
timestamps
=
pandas
.
read_csv
(
"
./timestamps.csv
"
)
# Compute the latency in ms
# Compute the latency in ms
timestamps
[
"
Latency
"
]
=
(
timestamps
[
"
ts_client
"
]
-
timestamps
[
"
ts_relay
"
])
*
1000
timestamps
[
"
Latency
"
]
=
(
timestamps
[
"
ts_client
"
]
-
timestamps
[
"
ts_relay
"
])
*
1000
#
Inter-arrival time between messages. The diff is in microsec
#
Remember the diff is still in seconds.
timestamps
[
'
relay_iat
'
]
=
timestamps
[
'
ts_relay
'
].
diff
()
timestamps
[
'
relay_iat
'
]
=
timestamps
[
'
ts_relay
'
].
diff
()
timestamps
[
'
relay_iat
'
]
=
timestamps
[
'
relay_iat
'
].
apply
(
lambda
x
:
x
if
x
>
0
else
numpy
.
nan
)
# Dirty hack for jumps between experiments.
timestamps
[
'
relay_iat
'
]
=
timestamps
[
'
relay_iat
'
].
apply
(
lambda
x
:
x
if
x
<
100
else
numpy
.
nan
)
# Dirty hack for jumps between experiments.
timestamps
[
'
client_iat
'
]
=
timestamps
[
'
ts_client
'
].
diff
()
timestamps
[
'
client_iat
'
]
=
timestamps
[
'
ts_client
'
].
diff
()
timestamps
[
'
iat_diff
'
]
=
(
timestamps
[
'
relay_iat
'
]
-
timestamps
[
'
client_iat
'
])
*
1000
timestamps
[
'
client_iat
'
]
=
timestamps
[
'
client_iat
'
].
apply
(
lambda
x
:
x
if
x
>
0
else
numpy
.
nan
)
# Dirty hack for jumps between experiments.
print
(
timestamps
)
timestamps
[
'
client_iat
'
]
=
timestamps
[
'
client_iat
'
].
apply
(
lambda
x
:
x
if
x
<
100
else
numpy
.
nan
)
# Dirty hack for jumps between experiments.
# Inter-arrival time between messages. The diff is in millisec.
timestamps
[
'
iat_diff
'
]
=
abs
(
timestamps
[
'
relay_iat
'
]
-
timestamps
[
'
client_iat
'
])
*
1000
print
(
timestamps
[
"
iat_diff
"
])
ping
=
pandas
.
read_csv
(
"
./ping.csv
"
)
ping
=
pandas
.
read_csv
(
"
./ping.csv
"
)
print
(
ping
)
#
print(ping)
ping
[
'
Latency
'
]
=
ping
[
'
rtt
'
]
/
2.0
ping
[
'
Latency
'
]
=
ping
[
'
rtt
'
]
/
2.0
print
(
timestamps
[
timestamps
[
"
Latency
"
]
==
max
(
timestamps
[
"
Latency
"
])])
```
```
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
fig
,
ax
=
plt
.
subplots
(
figsize
=
(
1
0
,
5
))
fig
,
ax
=
plt
.
subplots
(
figsize
=
(
1
7.5
,
5
))
sns
.
set_context
(
"
poster
"
)
,
sns
.
set_context
(
"
poster
"
)
sns
.
set_style
(
"
white
"
)
sns
.
set_style
(
"
white
"
)
sns
.
color_palette
(
"
husl
"
,
8
)
sns
.
boxplot
(
data
=
timestamps
,
x
=
"
Location
"
,
y
=
"
Latency
"
,
hue
=
"
Technology
"
,
whis
=
[
5
,
95
],
showfliers
=
False
)
#plot_data = timestamps[timestamps["Technology"].isin(["Ethernet", "Wi-Fi(PE)", "Wi-Fi(PE)", "5G(BE)", "5G(BD)"]) ]
plot_data
=
timestamps
#handles, labels = ax.get_legend_handles_labels()
sns
.
boxplot
(
data
=
plot_data
,
x
=
"
Location
"
,
y
=
"
Latency
"
,
hue
=
"
Technology
"
,
whis
=
[
5
,
95
],
showfliers
=
False
)
#ax.set_xticklabels(labels=['Ethernet', 'Wi-Fi', '5G'])
ax
.
set_ylim
(
0
,
50
)
handles
,
labels
=
ax
.
get_legend_handles_labels
()
ax
.
set_xlabel
(
"
Location
"
)
ax
.
set_yticklabels
(
labels
=
[
'
0.1
'
,
'
1
'
,
'
10
'
,
'
100
'
])
ax
.
set_ylabel
(
"
Latency (ms)
"
)
ax
.
set_ylim
(
0.1
,
300
)
ax
.
set_xlabel
(
"
Location
"
,
weight
=
"
bold
"
)
ax
.
set_ylabel
(
"
Latency (ms)
"
,
weight
=
"
bold
"
)
handles
,
labels
=
ax
.
get_legend_handles_labels
()
ax
.
legend
(
ncol
=
5
,
title
=
"
Technology
"
,
bbox_to_anchor
=
(
-
0.02
,
1.35
),
loc
=
"
upper left
"
)
ax
.
set_yscale
(
"
log
"
)
ax
.
grid
(
True
,
which
=
'
major
'
,
axis
=
'
y
'
)
ax
.
grid
(
True
,
which
=
'
major
'
,
axis
=
'
y
'
)
ax
.
grid
(
True
,
which
=
'
minor
'
,
axis
=
'
y
'
)
plt
.
savefig
(
"
timestamps.pdf
"
,
dpi
=
1200
,
bbox_inches
=
'
tight
'
)
plt
.
savefig
(
"
timestamps.pdf
"
,
dpi
=
1200
,
bbox_inches
=
'
tight
'
)
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Plot the one way latency between the client and the relay
# Plot the one way latency between the client and the relay
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
fig
,
ax
=
plt
.
subplots
(
figsize
=
(
17.5
,
5
))
sns
.
set_context
(
"
poster
"
),
sns
.
set_style
(
"
white
"
)
sns
.
set_palette
(
"
colorblind
"
)
sns
.
boxplot
(
data
=
ping
,
x
=
"
Location
"
,
y
=
"
Latency
"
,
hue
=
"
Technology
"
,
whis
=
[
5
,
95
],
showfliers
=
False
)
ax
.
set_ylim
(
0.1
,
300
)
ax
.
set_xlabel
(
"
Location
"
,
weight
=
"
bold
"
)
ax
.
set_ylabel
(
"
Latency (ms)
"
,
weight
=
"
bold
"
)
ax
.
legend
(
ncol
=
5
,
title
=
"
Technology
"
,
bbox_to_anchor
=
(
-
0.02
,
1.35
),
loc
=
"
upper left
"
)
ax
.
set_yscale
(
"
log
"
)
ax
.
grid
(
True
,
which
=
'
major
'
,
axis
=
'
y
'
)
ax
.
grid
(
True
,
which
=
'
minor
'
,
axis
=
'
y
'
)
plt
.
savefig
(
"
ping.pdf
"
,
dpi
=
1200
,
bbox_inches
=
'
tight
'
)
```
```
%% Cell type:markdown id: tags:
# Plot the difference in the inter-arrival time of the messages.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
fig, ax = plt.subplots(figsize=(1
0
,5))
fig
,
ax
=
plt
.
subplots
(
figsize
=
(
1
7.5
,
5
))
sns
.
set_context
(
"
poster
"
),
sns
.
set_context
(
"
poster
"
),
sns
.
set_style
(
"
white
"
)
sns
.
set_style
(
"
white
"
)
sns.boxplot(data=ping, x="Location", y="Latency",hue="Technology", whis=[5,95], showfliers=False)
sns
.
set_palette
(
"
colorblind
"
)
ax.set_xlabel("Location")
ax.set_ylabel("Latency (ms)")
ax.set_ylim(0,50)
sns
.
boxplot
(
data
=
timestamps
,
x
=
"
Location
"
,
y
=
"
iat_diff
"
,
hue
=
"
Technology
"
,
whis
=
[
5
,
95
],
showfliers
=
False
)
ax
.
set_ylim
(
0.01
,
300
)
ax
.
set_xlabel
(
"
Location
"
,
weight
=
"
bold
"
)
ax
.
set_ylabel
(
"
Inter-arrival Time
\n
Difference (ms)
"
,
weight
=
"
bold
"
)
#ax.set_yscale("log")
ax
.
legend
(
ncol
=
5
,
title
=
"
Technology
"
,
bbox_to_anchor
=
(
-
0.02
,
1.35
),
loc
=
"
upper left
"
)
ax
.
set_yscale
(
"
log
"
)
ax
.
grid
(
True
,
which
=
'
major
'
,
axis
=
'
y
'
)
ax
.
grid
(
True
,
which
=
'
major
'
,
axis
=
'
y
'
)
plt.savefig("ping.pdf", dpi=1200, bbox_inches='tight')
ax
.
grid
(
True
,
which
=
'
minor
'
,
axis
=
'
y
'
)
plt
.
savefig
(
"
iat.pdf
"
,
dpi
=
1200
,
bbox_inches
=
'
tight
'
)
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Plot the
difference in the inter-arrival time of the messages.
# Plot the
CDF of the IAT
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
fig, ax = plt.subplots(figsize=(1
0
,5))
fig
,
ax
=
plt
.
subplots
(
figsize
=
(
1
5
,
5
))
sns
.
set_context
(
"
poster
"
),
sns
.
set_context
(
"
poster
"
),
sns
.
set_style
(
"
white
"
)
sns
.
set_style
(
"
white
"
)
sns
.
set_palette
(
"
colorblind
"
)
sns.boxplot(data=timestamps, x="Location", y="iat_diff",hue="Technology", whis=[5,95], showfliers=False)
ax.set_xlabel("Location")
def
ecdf
(
x
):
ax.set_ylabel("Inter-arrival Time
\n
Difference (μs)")
xs
=
numpy
.
sort
(
x
)
ys
=
numpy
.
arange
(
1
,
len
(
xs
)
+
1
)
/
float
(
len
(
xs
))
return
xs
,
ys
plot_data
=
timestamps
[
timestamps
[
"
relay_iat
"
].
notnull
()]
#plot_data = plot_data[plot_data["relay_iat"]>0]
x
=
plot_data
[
"
relay_iat
"
]
*
1000
# Convert to ms.
xs
,
ys
=
ecdf
(
x
)
plt
.
plot
(
xs
,
ys
)
ax
.
set_xscale
(
"
log
"
)
ax
.
grid
(
True
,
which
=
'
major
'
)
ax
.
grid
(
True
,
which
=
'
minor
'
)
ax
.
set_ylabel
(
"
ECDF
"
,
weight
=
"
bold
"
)
ax
.
set_xlabel
(
"
Inter Arrival Time (ms)
"
,
weight
=
"
bold
"
)
plt
.
savefig
(
"
ecdfiat.pdf
"
,
dpi
=
1200
,
bbox_inches
=
'
tight
'
)
```
%% Cell type:code id: tags:
```
python
for
font
in
plt
.
rcParams
[
'
font.sans-serif
'
]:
print
(
font
)
```
```
%% Cell type:code id: tags:
%% Cell type:code id: tags:
```
python
```
python
```
```
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment