matelot 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
matelot-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Olivier Hecart
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
matelot-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,110 @@
1
+ Metadata-Version: 2.4
2
+ Name: matelot
3
+ Version: 0.1.0
4
+ Summary: Seaborn extension with brightness grouping and interactive annotations
5
+ Project-URL: Homepage, https://github.com/OlivierHecart/matelot
6
+ Author: Olivier Hecart
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Keywords: matplotlib,plot,seaborn,visualization
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Topic :: Scientific/Engineering :: Visualization
14
+ Requires-Python: >=3.10
15
+ Requires-Dist: matplotlib>=3.5
16
+ Requires-Dist: pandas>=1.5
17
+ Requires-Dist: seaborn>=0.13
18
+ Provides-Extra: dev
19
+ Requires-Dist: pytest>=7; extra == 'dev'
20
+ Description-Content-Type: text/markdown
21
+
22
+ # Matelot: a [seaborn](https://seaborn.pydata.org/index.html) extension
23
+
24
+ ## Brightness grouping
25
+
26
+ Matelot provides `lineplot` and `boxplot` functions that behave as seaborn `lineplot` and `boxplot` functions with an extra `brightness` argument:
27
+
28
+ **brightness** : *vector or key in `data`*
29
+
30
+ - Grouping variable that will produce lines with different brightness.
31
+
32
+ Example:
33
+ ```
34
+ matelot.lineplot(
35
+ data=df,
36
+ x="payload",
37
+ y="msg/s",
38
+ estimator="median",
39
+ hue="branch",
40
+ brightness="binary",
41
+ )
42
+ ```
43
+
44
+ <img src="https://github.com/OlivierHecart/matelot/blob/main/lineplot1.svg?raw=true">
45
+
46
+ ## Annotations
47
+
48
+ Matelot `lineplot` function accepts an extra `annotate` argument:
49
+
50
+ **annotate** : *bool or literal*
51
+ - Automatic annotation of lineplot points with their `y` value.
52
+
53
+ Example:
54
+ ```
55
+ matelot.lineplot(
56
+ data=df,
57
+ x="payload",
58
+ y="msg/s",
59
+ estimator="median",
60
+ annotate=True,
61
+ )
62
+ ```
63
+
64
+ <img src="https://github.com/OlivierHecart/matelot/blob/main/lineplot2.svg?raw=true">
65
+
66
+ ## Interactive annotations
67
+
68
+ Matelot `lineplot` function `annotate` argument accepts literal value `"interactive"` that makes annotations only appear on mouseover events.
69
+
70
+ When using the interactive annotation the matplotlib figure needs to be either:
71
+ - turned to an interactive figure through the matelot `interactive` function.
72
+ - saved through the matelot `savefig` function.
73
+
74
+ Interactive annotations only work with `svg` output format.
75
+
76
+ Example:
77
+ ```
78
+ fig, ax = plt.subplots()
79
+
80
+ matelot.lineplot(
81
+ data=df,
82
+ x="payload",
83
+ y="msg/s",
84
+ marker="o",
85
+ estimator="median",
86
+ annotate=True,
87
+ ax=ax,
88
+ )
89
+
90
+ fig = matelot.interactive(fig)
91
+ fig.savefig("lineplot.svg")
92
+ ```
93
+
94
+ Example using implicit interface:
95
+ ```
96
+ matelot.lineplot(
97
+ data=df,
98
+ x="payload",
99
+ y="msg/s",
100
+ estimator="median",
101
+ annotate=True,
102
+ )
103
+
104
+ matelot.savefig("lineplot.svg")
105
+ ```
106
+
107
+ Note: to include the svg image in a web page, use an iframe:
108
+ ```
109
+ <iframe src="lineplot.svg" style="border:none; width:100%; height:100vh;"></iframe>
110
+ ```
@@ -0,0 +1,89 @@
1
+ # Matelot: a [seaborn](https://seaborn.pydata.org/index.html) extension
2
+
3
+ ## Brightness grouping
4
+
5
+ Matelot provides `lineplot` and `boxplot` functions that behave as seaborn `lineplot` and `boxplot` functions with an extra `brightness` argument:
6
+
7
+ **brightness** : *vector or key in `data`*
8
+
9
+ - Grouping variable that will produce lines with different brightness.
10
+
11
+ Example:
12
+ ```
13
+ matelot.lineplot(
14
+ data=df,
15
+ x="payload",
16
+ y="msg/s",
17
+ estimator="median",
18
+ hue="branch",
19
+ brightness="binary",
20
+ )
21
+ ```
22
+
23
+ <img src="https://github.com/OlivierHecart/matelot/blob/main/lineplot1.svg?raw=true">
24
+
25
+ ## Annotations
26
+
27
+ Matelot `lineplot` function accepts an extra `annotate` argument:
28
+
29
+ **annotate** : *bool or literal*
30
+ - Automatic annotation of lineplot points with their `y` value.
31
+
32
+ Example:
33
+ ```
34
+ matelot.lineplot(
35
+ data=df,
36
+ x="payload",
37
+ y="msg/s",
38
+ estimator="median",
39
+ annotate=True,
40
+ )
41
+ ```
42
+
43
+ <img src="https://github.com/OlivierHecart/matelot/blob/main/lineplot2.svg?raw=true">
44
+
45
+ ## Interactive annotations
46
+
47
+ Matelot `lineplot` function `annotate` argument accepts literal value `"interactive"` that makes annotations only appear on mouseover events.
48
+
49
+ When using the interactive annotation the matplotlib figure needs to be either:
50
+ - turned to an interactive figure through the matelot `interactive` function.
51
+ - saved through the matelot `savefig` function.
52
+
53
+ Interactive annotations only work with `svg` output format.
54
+
55
+ Example:
56
+ ```
57
+ fig, ax = plt.subplots()
58
+
59
+ matelot.lineplot(
60
+ data=df,
61
+ x="payload",
62
+ y="msg/s",
63
+ marker="o",
64
+ estimator="median",
65
+ annotate=True,
66
+ ax=ax,
67
+ )
68
+
69
+ fig = matelot.interactive(fig)
70
+ fig.savefig("lineplot.svg")
71
+ ```
72
+
73
+ Example using implicit interface:
74
+ ```
75
+ matelot.lineplot(
76
+ data=df,
77
+ x="payload",
78
+ y="msg/s",
79
+ estimator="median",
80
+ annotate=True,
81
+ )
82
+
83
+ matelot.savefig("lineplot.svg")
84
+ ```
85
+
86
+ Note: to include the svg image in a web page, use an iframe:
87
+ ```
88
+ <iframe src="lineplot.svg" style="border:none; width:100%; height:100vh;"></iframe>
89
+ ```
@@ -0,0 +1,32 @@
1
+ import matplotlib.pyplot as plt
2
+ import pandas as pd
3
+ import seaborn as sns
4
+ import matelot
5
+
6
+ df = pd.read_csv("data")
7
+
8
+ df["norm_msg/s"] = df.groupby(["run", "branch", "payload", "binary"])["msg/s"].transform(lambda x: x - x.median())
9
+
10
+ sns.set_style("whitegrid")
11
+
12
+ matelot.boxplot(
13
+ data=df,
14
+ x="payload",
15
+ y="norm_msg/s",
16
+ hue="branch",
17
+ hue_order=["1.0", "main", "dev"],
18
+ brightness="binary",
19
+ gap=0.1,
20
+ linewidth=0.8,
21
+ fliersize=1.0,
22
+ fill=False,
23
+ )
24
+
25
+ plt.legend(loc="lower right", title="median msg/s")
26
+ plt.xlabel("payload size (bytes)")
27
+ plt.ylabel("median-centered (msg/s)")
28
+ plt.grid(which="major", color="grey", linestyle="-", linewidth=0.2)
29
+ plt.grid(which="minor", color="grey", linestyle=":", linewidth=0.1, axis="y")
30
+ plt.title("Throughput (msg/s)")
31
+
32
+ plt.savefig("boxplot.svg")
@@ -0,0 +1,421 @@
1
+ msg/s,run,branch,payload,binary
2
+ 7329714.776,3,dev,8,sub
3
+ 7591692.941,3,dev,8,sub
4
+ 7493412.887,3,dev,8,sub
5
+ 7522650.582,3,dev,8,sub
6
+ 7306771.345,3,dev,8,sub
7
+ 7319752.021,3,dev,8,sub
8
+ 7234269.887,3,dev,8,sub
9
+ 7534537.218,3,dev,8,sub
10
+ 7404624.584,3,dev,8,sub
11
+ 7570980.250,3,dev,8,sub
12
+ 7986536.462,3,dev,8,pub
13
+ 8001329.375,3,dev,8,pub
14
+ 8003018.370,3,dev,8,pub
15
+ 8010353.063,3,dev,8,pub
16
+ 8002518.338,3,dev,8,pub
17
+ 7990335.605,3,dev,8,pub
18
+ 7988417.529,3,dev,8,pub
19
+ 7966301.567,3,dev,8,pub
20
+ 7972947.043,3,dev,8,pub
21
+ 7982411.081,3,dev,8,pub
22
+ 6559700.281,3,dev,32,sub
23
+ 6462414.750,3,dev,32,sub
24
+ 6631525.647,3,dev,32,sub
25
+ 6568118.481,3,dev,32,sub
26
+ 6400247.474,3,dev,32,sub
27
+ 6449532.443,3,dev,32,sub
28
+ 6569692.551,3,dev,32,sub
29
+ 6436562.730,3,dev,32,sub
30
+ 6367453.887,3,dev,32,sub
31
+ 6647507.111,3,dev,32,sub
32
+ 6986408.019,3,dev,32,pub
33
+ 6989156.398,3,dev,32,pub
34
+ 6987787.206,3,dev,32,pub
35
+ 6985808.373,3,dev,32,pub
36
+ 6977423.320,3,dev,32,pub
37
+ 6990654.766,3,dev,32,pub
38
+ 6997241.324,3,dev,32,pub
39
+ 6991035.827,3,dev,32,pub
40
+ 7000499.665,3,dev,32,pub
41
+ 6999920.042,3,dev,32,pub
42
+ 5861205.511,3,dev,128,sub
43
+ 5891828.286,3,dev,128,sub
44
+ 5991073.325,3,dev,128,sub
45
+ 6063469.243,3,dev,128,sub
46
+ 5810030.202,3,dev,128,sub
47
+ 6016965.975,3,dev,128,sub
48
+ 6089816.643,3,dev,128,sub
49
+ 6090622.492,3,dev,128,sub
50
+ 5842298.016,3,dev,128,sub
51
+ 5782629.109,3,dev,128,sub
52
+ 6446364.327,3,dev,128,pub
53
+ 6443275.064,3,dev,128,pub
54
+ 6437492.504,3,dev,128,pub
55
+ 6420731.220,3,dev,128,pub
56
+ 6436003.278,3,dev,128,pub
57
+ 6441084.473,3,dev,128,pub
58
+ 6446800.644,3,dev,128,pub
59
+ 6443439.412,3,dev,128,pub
60
+ 6442698.808,3,dev,128,pub
61
+ 6436719.804,3,dev,128,pub
62
+ 4766912.414,3,dev,512,sub
63
+ 4789132.740,3,dev,512,sub
64
+ 4826840.996,3,dev,512,sub
65
+ 4678758.274,3,dev,512,sub
66
+ 4839358.970,3,dev,512,sub
67
+ 4793014.327,3,dev,512,sub
68
+ 4734943.813,3,dev,512,sub
69
+ 4779324.481,3,dev,512,sub
70
+ 4714126.948,3,dev,512,sub
71
+ 4761599.307,3,dev,512,sub
72
+ 5205173.310,3,dev,512,pub
73
+ 5239715.348,3,dev,512,pub
74
+ 5241119.795,3,dev,512,pub
75
+ 5227244.106,3,dev,512,pub
76
+ 5197057.530,3,dev,512,pub
77
+ 5212449.526,3,dev,512,pub
78
+ 5180496.142,3,dev,512,pub
79
+ 5213092.799,3,dev,512,pub
80
+ 5208537.390,3,dev,512,pub
81
+ 5200101.945,3,dev,512,pub
82
+ 2927956.043,3,dev,2048,sub
83
+ 3103715.945,3,dev,2048,sub
84
+ 3300873.323,3,dev,2048,sub
85
+ 3223031.436,3,dev,2048,sub
86
+ 3175724.583,3,dev,2048,sub
87
+ 3419858.615,3,dev,2048,sub
88
+ 3526701.112,3,dev,2048,sub
89
+ 3470668.134,3,dev,2048,sub
90
+ 3214608.702,3,dev,2048,sub
91
+ 3074320.310,3,dev,2048,sub
92
+ 3352453.773,3,dev,2048,pub
93
+ 3197925.100,3,dev,2048,pub
94
+ 3291613.780,3,dev,2048,pub
95
+ 3533387.972,3,dev,2048,pub
96
+ 3465868.431,3,dev,2048,pub
97
+ 3353691.933,3,dev,2048,pub
98
+ 3624218.016,3,dev,2048,pub
99
+ 3720355.415,3,dev,2048,pub
100
+ 3723799.148,3,dev,2048,pub
101
+ 3518800.976,3,dev,2048,pub
102
+ 1500744.731,3,dev,8192,sub
103
+ 1503254.461,3,dev,8192,sub
104
+ 1511982.521,3,dev,8192,sub
105
+ 1450972.433,3,dev,8192,sub
106
+ 1487581.498,3,dev,8192,sub
107
+ 1475805.483,3,dev,8192,sub
108
+ 1519924.894,3,dev,8192,sub
109
+ 1463050.264,3,dev,8192,sub
110
+ 1520238.773,3,dev,8192,sub
111
+ 1498702.248,3,dev,8192,sub
112
+ 1612142.108,3,dev,8192,pub
113
+ 1605785.950,3,dev,8192,pub
114
+ 1607630.735,3,dev,8192,pub
115
+ 1610394.931,3,dev,8192,pub
116
+ 1610960.656,3,dev,8192,pub
117
+ 1606729.558,3,dev,8192,pub
118
+ 1608998.061,3,dev,8192,pub
119
+ 1607798.853,3,dev,8192,pub
120
+ 1604616.999,3,dev,8192,pub
121
+ 1609429.965,3,dev,8192,pub
122
+ 710154.055,3,dev,32768,sub
123
+ 723596.340,3,dev,32768,sub
124
+ 721192.531,3,dev,32768,sub
125
+ 720529.274,3,dev,32768,sub
126
+ 714667.105,3,dev,32768,sub
127
+ 713155.015,3,dev,32768,sub
128
+ 734146.033,3,dev,32768,sub
129
+ 749755.509,3,dev,32768,sub
130
+ 733760.316,3,dev,32768,sub
131
+ 736273.895,3,dev,32768,sub
132
+ 789088.111,3,dev,32768,pub
133
+ 784573.564,3,dev,32768,pub
134
+ 785033.279,3,dev,32768,pub
135
+ 784013.911,3,dev,32768,pub
136
+ 787211.929,3,dev,32768,pub
137
+ 785333.826,3,dev,32768,pub
138
+ 781494.214,3,dev,32768,pub
139
+ 788566.289,3,dev,32768,pub
140
+ 786585.122,3,dev,32768,pub
141
+ 787858.799,3,dev,32768,pub
142
+ 2686464.245,3,1.0,8,sub
143
+ 2433279.582,3,1.0,8,sub
144
+ 2395417.626,3,1.0,8,sub
145
+ 2536654.793,3,1.0,8,sub
146
+ 2579582.488,3,1.0,8,sub
147
+ 2465125.256,3,1.0,8,sub
148
+ 2504163.198,3,1.0,8,sub
149
+ 2636721.372,3,1.0,8,sub
150
+ 2621784.038,3,1.0,8,sub
151
+ 2473098.654,3,1.0,8,sub
152
+ 2753085.679,3,1.0,8,pub
153
+ 2655033.530,3,1.0,8,pub
154
+ 2791083.261,3,1.0,8,pub
155
+ 2739719.183,3,1.0,8,pub
156
+ 2763479.547,3,1.0,8,pub
157
+ 2710760.651,3,1.0,8,pub
158
+ 2617585.624,3,1.0,8,pub
159
+ 2731748.269,3,1.0,8,pub
160
+ 2656426.758,3,1.0,8,pub
161
+ 2601005.407,3,1.0,8,pub
162
+ 2634245.600,3,1.0,32,sub
163
+ 2565686.103,3,1.0,32,sub
164
+ 2484673.694,3,1.0,32,sub
165
+ 2445567.996,3,1.0,32,sub
166
+ 2394246.648,3,1.0,32,sub
167
+ 2487111.421,3,1.0,32,sub
168
+ 2382073.400,3,1.0,32,sub
169
+ 2160764.310,3,1.0,32,sub
170
+ 2380589.979,3,1.0,32,sub
171
+ 1987698.944,3,1.0,32,sub
172
+ 2817178.834,3,1.0,32,pub
173
+ 2821526.008,3,1.0,32,pub
174
+ 2577330.508,3,1.0,32,pub
175
+ 2834905.660,3,1.0,32,pub
176
+ 2805232.703,3,1.0,32,pub
177
+ 2418512.152,3,1.0,32,pub
178
+ 2575881.436,3,1.0,32,pub
179
+ 2661456.668,3,1.0,32,pub
180
+ 2222588.640,3,1.0,32,pub
181
+ 2534026.862,3,1.0,32,pub
182
+ 2279726.394,3,1.0,128,sub
183
+ 2254406.987,3,1.0,128,sub
184
+ 2269502.848,3,1.0,128,sub
185
+ 2276587.957,3,1.0,128,sub
186
+ 2324131.711,3,1.0,128,sub
187
+ 2265758.258,3,1.0,128,sub
188
+ 2164639.830,3,1.0,128,sub
189
+ 2283759.730,3,1.0,128,sub
190
+ 2163348.070,3,1.0,128,sub
191
+ 2229474.648,3,1.0,128,sub
192
+ 2448933.087,3,1.0,128,pub
193
+ 2422767.478,3,1.0,128,pub
194
+ 2503518.100,3,1.0,128,pub
195
+ 2422281.968,3,1.0,128,pub
196
+ 2513422.752,3,1.0,128,pub
197
+ 2406010.754,3,1.0,128,pub
198
+ 2405421.073,3,1.0,128,pub
199
+ 2471745.258,3,1.0,128,pub
200
+ 2445540.399,3,1.0,128,pub
201
+ 2439311.268,3,1.0,128,pub
202
+ 1659294.151,3,1.0,512,sub
203
+ 1637915.613,3,1.0,512,sub
204
+ 1601905.256,3,1.0,512,sub
205
+ 1608309.030,3,1.0,512,sub
206
+ 1615649.730,3,1.0,512,sub
207
+ 1626689.135,3,1.0,512,sub
208
+ 1684414.218,3,1.0,512,sub
209
+ 1655628.171,3,1.0,512,sub
210
+ 1677407.697,3,1.0,512,sub
211
+ 1593718.263,3,1.0,512,sub
212
+ 1755462.050,3,1.0,512,pub
213
+ 1796699.782,3,1.0,512,pub
214
+ 1731494.993,3,1.0,512,pub
215
+ 1738905.769,3,1.0,512,pub
216
+ 1717852.360,3,1.0,512,pub
217
+ 1779401.329,3,1.0,512,pub
218
+ 1805095.249,3,1.0,512,pub
219
+ 1771503.388,3,1.0,512,pub
220
+ 1805664.941,3,1.0,512,pub
221
+ 1760729.206,3,1.0,512,pub
222
+ 1558131.762,3,1.0,2048,sub
223
+ 1602814.331,3,1.0,2048,sub
224
+ 1512884.963,3,1.0,2048,sub
225
+ 1559977.337,3,1.0,2048,sub
226
+ 1523943.891,3,1.0,2048,sub
227
+ 1502652.169,3,1.0,2048,sub
228
+ 1582482.417,3,1.0,2048,sub
229
+ 1558520.362,3,1.0,2048,sub
230
+ 1612172.137,3,1.0,2048,sub
231
+ 1583994.766,3,1.0,2048,sub
232
+ 1724218.922,3,1.0,2048,pub
233
+ 1710893.227,3,1.0,2048,pub
234
+ 1636197.368,3,1.0,2048,pub
235
+ 1655096.248,3,1.0,2048,pub
236
+ 1686059.528,3,1.0,2048,pub
237
+ 1656753.110,3,1.0,2048,pub
238
+ 1691600.368,3,1.0,2048,pub
239
+ 1696897.017,3,1.0,2048,pub
240
+ 1754777.707,3,1.0,2048,pub
241
+ 1679748.948,3,1.0,2048,pub
242
+ 1183015.134,3,1.0,8192,sub
243
+ 1194746.255,3,1.0,8192,sub
244
+ 1185063.955,3,1.0,8192,sub
245
+ 1207098.989,3,1.0,8192,sub
246
+ 1242558.763,3,1.0,8192,sub
247
+ 1220707.313,3,1.0,8192,sub
248
+ 1248806.484,3,1.0,8192,sub
249
+ 1177069.980,3,1.0,8192,sub
250
+ 1184609.720,3,1.0,8192,sub
251
+ 1184777.692,3,1.0,8192,sub
252
+ 1293948.933,3,1.0,8192,pub
253
+ 1291498.016,3,1.0,8192,pub
254
+ 1303939.794,3,1.0,8192,pub
255
+ 1307721.522,3,1.0,8192,pub
256
+ 1306685.189,3,1.0,8192,pub
257
+ 1310552.985,3,1.0,8192,pub
258
+ 1307827.617,3,1.0,8192,pub
259
+ 1306701.314,3,1.0,8192,pub
260
+ 1309562.836,3,1.0,8192,pub
261
+ 1307513.942,3,1.0,8192,pub
262
+ 666191.731,3,1.0,32768,sub
263
+ 671161.719,3,1.0,32768,sub
264
+ 645171.328,3,1.0,32768,sub
265
+ 642567.277,3,1.0,32768,sub
266
+ 673006.578,3,1.0,32768,sub
267
+ 658621.680,3,1.0,32768,sub
268
+ 673369.831,3,1.0,32768,sub
269
+ 653653.005,3,1.0,32768,sub
270
+ 647761.551,3,1.0,32768,sub
271
+ 671292.931,3,1.0,32768,sub
272
+ 711628.604,3,1.0,32768,pub
273
+ 709365.662,3,1.0,32768,pub
274
+ 709890.857,3,1.0,32768,pub
275
+ 711718.555,3,1.0,32768,pub
276
+ 712632.305,3,1.0,32768,pub
277
+ 713221.992,3,1.0,32768,pub
278
+ 710643.869,3,1.0,32768,pub
279
+ 713146.455,3,1.0,32768,pub
280
+ 711569.984,3,1.0,32768,pub
281
+ 713564.776,3,1.0,32768,pub
282
+ 4672020.020,10,main,8,sub
283
+ 4701183.356,10,main,8,sub
284
+ 4705884.441,10,main,8,sub
285
+ 4560452.998,10,main,8,sub
286
+ 4676724.420,10,main,8,sub
287
+ 4624899.353,10,main,8,sub
288
+ 4696299.830,10,main,8,sub
289
+ 4582654.189,10,main,8,sub
290
+ 4731379.011,10,main,8,sub
291
+ 4684202.780,10,main,8,sub
292
+ 4540142.703,10,main,8,pub
293
+ 5358007.295,10,main,8,pub
294
+ 5191601.627,10,main,8,pub
295
+ 4718845.562,10,main,8,pub
296
+ 4556792.517,10,main,8,pub
297
+ 5352281.017,10,main,8,pub
298
+ 5449362.408,10,main,8,pub
299
+ 4627088.663,10,main,8,pub
300
+ 4826469.324,10,main,8,pub
301
+ 5617037.437,10,main,8,pub
302
+ 3902256.695,10,main,32,sub
303
+ 4031040.162,10,main,32,sub
304
+ 3991679.554,10,main,32,sub
305
+ 3941624.595,10,main,32,sub
306
+ 4013024.960,10,main,32,sub
307
+ 4054220.019,10,main,32,sub
308
+ 3868092.337,10,main,32,sub
309
+ 3933889.436,10,main,32,sub
310
+ 3921597.812,10,main,32,sub
311
+ 3919674.769,10,main,32,sub
312
+ 4511189.070,10,main,32,pub
313
+ 4384372.439,10,main,32,pub
314
+ 4478626.755,10,main,32,pub
315
+ 4244680.319,10,main,32,pub
316
+ 4112619.186,10,main,32,pub
317
+ 4249297.872,10,main,32,pub
318
+ 4253305.748,10,main,32,pub
319
+ 4333113.450,10,main,32,pub
320
+ 4192867.780,10,main,32,pub
321
+ 4346762.748,10,main,32,pub
322
+ 3541441.087,10,main,128,sub
323
+ 3501163.626,10,main,128,sub
324
+ 3537639.107,10,main,128,sub
325
+ 3381554.290,10,main,128,sub
326
+ 3371162.842,10,main,128,sub
327
+ 3527444.134,10,main,128,sub
328
+ 3439311.580,10,main,128,sub
329
+ 3587206.581,10,main,128,sub
330
+ 3549513.997,10,main,128,sub
331
+ 3612342.541,10,main,128,sub
332
+ 3716297.244,10,main,128,pub
333
+ 3800059.961,10,main,128,pub
334
+ 3804774.944,10,main,128,pub
335
+ 3760530.866,10,main,128,pub
336
+ 3770544.557,10,main,128,pub
337
+ 3712239.779,10,main,128,pub
338
+ 3716357.349,10,main,128,pub
339
+ 3670811.054,10,main,128,pub
340
+ 3891908.369,10,main,128,pub
341
+ 3797019.609,10,main,128,pub
342
+ 3147300.776,10,main,512,sub
343
+ 3149954.734,10,main,512,sub
344
+ 3258029.356,10,main,512,sub
345
+ 3186631.265,10,main,512,sub
346
+ 3182369.939,10,main,512,sub
347
+ 3315696.607,10,main,512,sub
348
+ 3334451.155,10,main,512,sub
349
+ 3251440.307,10,main,512,sub
350
+ 3289621.416,10,main,512,sub
351
+ 3218280.810,10,main,512,sub
352
+ 3491384.652,10,main,512,pub
353
+ 3409498.871,10,main,512,pub
354
+ 3533267.368,10,main,512,pub
355
+ 3493778.298,10,main,512,pub
356
+ 3479995.202,10,main,512,pub
357
+ 3546390.413,10,main,512,pub
358
+ 3540273.655,10,main,512,pub
359
+ 3494507.911,10,main,512,pub
360
+ 3541202.339,10,main,512,pub
361
+ 3462718.947,10,main,512,pub
362
+ 2415663.515,10,main,2048,sub
363
+ 2431681.668,10,main,2048,sub
364
+ 2395790.718,10,main,2048,sub
365
+ 2548042.772,10,main,2048,sub
366
+ 2462961.660,10,main,2048,sub
367
+ 2483653.827,10,main,2048,sub
368
+ 2409182.723,10,main,2048,sub
369
+ 2499214.002,10,main,2048,sub
370
+ 2495608.003,10,main,2048,sub
371
+ 2436831.362,10,main,2048,sub
372
+ 2660080.158,10,main,2048,pub
373
+ 2643216.231,10,main,2048,pub
374
+ 2651748.056,10,main,2048,pub
375
+ 2660516.716,10,main,2048,pub
376
+ 2701694.068,10,main,2048,pub
377
+ 2643641.743,10,main,2048,pub
378
+ 2664187.980,10,main,2048,pub
379
+ 2657664.861,10,main,2048,pub
380
+ 2661556.144,10,main,2048,pub
381
+ 2652787.495,10,main,2048,pub
382
+ 1474445.143,10,main,8192,sub
383
+ 1473873.194,10,main,8192,sub
384
+ 1476267.850,10,main,8192,sub
385
+ 1417126.374,10,main,8192,sub
386
+ 1468348.304,10,main,8192,sub
387
+ 1426038.175,10,main,8192,sub
388
+ 1465661.362,10,main,8192,sub
389
+ 1494475.722,10,main,8192,sub
390
+ 1433647.657,10,main,8192,sub
391
+ 1426041.199,10,main,8192,sub
392
+ 1581560.142,10,main,8192,pub
393
+ 1579457.093,10,main,8192,pub
394
+ 1569649.728,10,main,8192,pub
395
+ 1573460.900,10,main,8192,pub
396
+ 1577764.453,10,main,8192,pub
397
+ 1578953.680,10,main,8192,pub
398
+ 1575829.952,10,main,8192,pub
399
+ 1580986.549,10,main,8192,pub
400
+ 1584350.172,10,main,8192,pub
401
+ 1583594.827,10,main,8192,pub
402
+ 711964.508,10,main,32768,sub
403
+ 712861.963,10,main,32768,sub
404
+ 716823.493,10,main,32768,sub
405
+ 739696.599,10,main,32768,sub
406
+ 724786.272,10,main,32768,sub
407
+ 738958.110,10,main,32768,sub
408
+ 727317.419,10,main,32768,sub
409
+ 742653.097,10,main,32768,sub
410
+ 734873.036,10,main,32768,sub
411
+ 711539.787,10,main,32768,sub
412
+ 789739.336,10,main,32768,pub
413
+ 787394.572,10,main,32768,pub
414
+ 789710.380,10,main,32768,pub
415
+ 787404.565,10,main,32768,pub
416
+ 783598.497,10,main,32768,pub
417
+ 783199.240,10,main,32768,pub
418
+ 784781.913,10,main,32768,pub
419
+ 785421.581,10,main,32768,pub
420
+ 787454.774,10,main,32768,pub
421
+ 789566.782,10,main,32768,pub
@@ -0,0 +1,35 @@
1
+ import matplotlib.pyplot as plt
2
+ import pandas as pd
3
+ import seaborn as sns
4
+ import matelot
5
+
6
+
7
+ df = pd.read_csv("data")
8
+
9
+ df = df.astype({"payload": "str"})
10
+
11
+ sns.set_style("whitegrid")
12
+
13
+ matelot.lineplot(
14
+ data=df,
15
+ x="payload",
16
+ y="msg/s",
17
+ marker="o",
18
+ estimator="median",
19
+ hue="branch",
20
+ hue_order=["1.0", "main", "dev"],
21
+ brightness="binary",
22
+ annotate=True,
23
+ )
24
+
25
+ plt.legend(loc="lower left", title="median msg/s")
26
+ plt.xlabel("payload size (bytes)")
27
+
28
+ plt.ylabel("median (msg/s)")
29
+ plt.yscale("log")
30
+
31
+ plt.grid(which="major", color="grey", linestyle="-", linewidth=0.2)
32
+ plt.grid(which="minor", color="grey", linestyle=":", linewidth=0.1, axis="y")
33
+ plt.title("Throughput (msg/s)")
34
+
35
+ matelot.savefig("lineplot.svg")