Which Spice?
PyLTSpice is for LTSpice and since you thanked without further comments, I'm assuming it may be what you are using.
If so, there's a simple way of exporting simulation data as text files from LTSpice, which avoids having to deal with the raw binary format.
You need to select the waveform viewer window after having launched a simulation and go to the "File/Export data as text" menu.
You can then select the waveforms you want to export.
It generates a CSV-like file, but with a 'tab' character as the column separator.
Looks like this:
time V(3v3)
0.000000000000000e+00 0.000000e+00
1.020806909594422e-09 3.765935e-05
1.062420785347130e-09 3.894078e-05
...
Very easy to deal with in various plotting software.
If you do it one time, then it is easy. But do it with a few iterations, then it becomes tedious. Now add some other values after you did a dozen, and you can start all over. It did it this way, and with a little bit of figuring out, and fiddeling with the circuit, it took many hours.
Why does this software, that so many people use has such limitations? There is no opensource version of it, is there?
If you mean that LTSpice's waveform viewer is limited, yes, definitely. It's quite horrific. At least, in LTSpice 24, they have at least added the possibility of adding plot panes either below or above. You can change the scales by clicking on the axes. But it's not ideal.
That said, the only way of getting exactly what you want in terms of graphic output is that, going from an export and using your own tools for plotting.
I don't see how tedious it is to use the Export menu though.
You can write a Gnuplot file that will take this CSV format and plot with the exact appearance you want.
For something free with a GUI, I've also used SciDavis quite often. But I would favor the Gnuplot approach, as once you've written a Gnuplot file, it can be automated.
Gnuplot has a rather powerful data import feature (from text) which is not completely trivial to figure out.
Here is an example of plotting a Bode plot from the exported text data of an LTSpice AC analysis:
(set your plot options/axis as needed before)
plot 'xxx.txt' skip 1 using 1:(10**($2/20)) "%lf\t(%lfdB,%lf°)" axes x1y1 title "Gain" with lines linestyle 1, \
'' skip 1 using 1:3 "%lf\t(%lfdB,%lf°)" axes x2y2 title "Phase" with lines linestyle 2
Where xxx.txt is the filename of the exported file from LTSpice. From that, you should be able to make the changes for plotting transient simulations.