|
From: Cottrell, A. <cot...@wf...> - 2026-03-23 21:02:35
|
On Mon, Mar 23, 2026 at 3:36 PM Juhász Péter <pet...@gm...> wrote:
>
> On Mon, 2026-03-23 at 11:57 -0400, Allin Cottrell via gnuplot-beta
> wrote:
> > I have a gnuplot routine that shows a correlation matrix as a heat
> > map. If the dimension of the matrix is not too great it prints the
> > value of the correlation coefficient in each "cell". Mostly this
> > works fine, but if the color of the cell is a relatively dark blue
> > (indicating a strong negative correlation) the default black text is
> > not very legible. So I'd like to make the textcolor conditional.
> >
> > At present I have this plot statement:
> >
> > plot $data matrix with image, $data matrix using \
> > 1:2:(sprintf("%.1f",$3)) with labels
> >
> > I'd like to append something like
> >
> > tc $3 < -0.6 ? rgbcolor "white" : rgbcolor "black"
> >
> > That doesn't work ("colorspec option not recognized", not very
> > surprisingly). But is there a way to do this?
> >
> > Thanks for any guidance.
>
> Hi,
>
> AFAIK the labels style supports variable color. So you should be able
> to do something like
>
> $d << EOD
> 1 2 foo 0.3
> 2 3 bar 0.7
> EOD
>
> plot $d u 1:2:3:($4 > 0.6 ? 0xe00000 : 0x00e000) w labels tc rgb var
>
> In this case you'd have to specify the colors as integers, which may be
> slightly inconvenient and unmaintainable.
Actually that suits me fine; I don't mind giving the colors as ints.
Thanks for the suggestion!
Allin Cottrell
|