|
From: Ethan A M. <me...@uw...> - 2026-03-23 21:39:40
|
Not exactly what you asked for, but one solution is to place the label in
an opaque box with neutral fillcolor:
set style textbox opaque fc "grey" noborder
plot $map1 matrix using 1:2:3 with image, \
$map1 matrix using 1:2:(sprintf("%g",$3)) with labels tc "black"
boxed
Here is a way to make it conditional on the matrix value using an extra
pass.
This requires gnuplot 6 for the "if" syntax
plot $map1 matrix using 1:2:3 with image, \
$map1 matrix using 1:2:(sprintf("%g",$3)) with labels tc "black" if
($3 > -0.6), \
$map1 matrix using 1:2:(sprintf("%g",$3)) with labels tc "white" if
($3 <= -0.6)
cheers,
Ethan
On Mon, Mar 23, 2026 at 10:02 AM Allin Cottrell via gnuplot-beta <
gnu...@li...> 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.
>
> --
> Allin Cottrell
> Professor Emeritus
> Wake Forest University
--
Ethan A Merritt
Department of Biochemistry
University of Washington, Seattle
|