|
From: Ethan A M. <me...@uw...> - 2020-02-06 07:19:49
|
On Wednesday, 5 February 2020 19:49:06 PST Dima Kogan wrote:
> Ethan A Merritt <me...@uw...> writes:
> > On Thursday, 30 January 2020 21:32:02 PST Dima Kogan wrote:
> >> Hi. I just stumbled upon another bug-looking behavior.
> >>
> >> The different point types aren't the same across terminals. There's no
> >> specific reason for that, right?
> >
> > gnuplot> help pointttype
> >
> > [...]
> >
> > The first 8 point types are shared by all terminals. Individual terminals
> > may provide a much larger number of distinct point types. Use the `test`
> > command to show what is provided by the current terminal settings.
>
> Aha. Thanks for the note. I'd like to normalize this at least somewhat.
> The usual workflow for me (and probably for others) is:
>
> 1. Do work, mess around with the data, look at it with an interactive
> terminal (x11 in my case) as I go. Make plots lots of times
>
> 2. Eventually I'm happy with what I have, I make a PDF and send it out
> in an email
>
> The expectation is that the PDF is the same thing I was seeing on the
> screen, and the inconsistent point types break that. I want to say that
> of the common terminals I looked at, the x11 terminal is the odd one
> out. If that's the case, any objections if I patch that?
It is not correct that the x11 terminal is the odd one out.
There is a lot of variation. For example the postscript terminal
supports about 70 point types, which so far as I know are inherited
by other terminals that depend on it like epslatex.
The fig terminal supports about 60.
The png terminal (and jpeg/gif/sixel) are limited to 13, like x11.
The tikz terminal, which would be another way to generate pdf output,
supports 15 but they are not the same ones as qt/wxt.
Some of the older terminals were even more limited, which was why
we only promised 8 distinct types, but those may be obsolete.
Furthermore the reason that x11 currently doesn't support
pentagon shapes to match qt and wxt pointtype 14/15
is that they come out indistinguisable from ugly circles
so they are not very useful.
Possible approaches that might help your use case:
1)
We could revisit an old idea that was discussed years ago but never
fully worked out. There could be a command
set pointtype cycle N
that replaces any arbitrary pt M with pt (1 + M%N).
This command would work similarly to the current command
set linetype cycle N
I.e. it forces a cycle of N point types even if the current terminal
can support more than N types.
Unfortunately the patches that circulated at that time don't work any more
because version 5 changed the way linetypes and associated properties are
handled. It's not clear to me exactly how best to adapt them to version 5.
2)
You could approximate this idea by explicitly assigning point types
for as many linetypes as you are likely to use:
max_pt = 8
set for [i=1:100] linetype i pointtype (1 + (i-1) % max_pt)
3)
Use character point types instead of the default geometric shapes.
So long as you choose characters that are common to the fonts used
for the terminals you are switching between, this should make the
default sequence irrelevant.
Ethan
|