gnuplot:使用超文本标签时按列值为点着色的方法
解决gnuplot带超文本标签的颜色编码问题
你可以通过扩展using语句的字段,并结合颜色控制参数,实现按第四列值为标签设置颜色,具体有两种常用方式:
方式1:使用调色板映射列值
先定义调色板与第四列值的对应关系,再用lc variable关联列值到调色板索引:
set terminal qt # 定义第四列数值对应的颜色 set palette defined (1 "red", 2 "blue") label_text(str1) = sprintf("%s", stringcolumn(str1)) # using字段顺序:x坐标:y坐标:标签文本:第四列值,lc variable指定按第四列选颜色 plot "D:\gnuplot_data_color_with_hypertext.txt" using 1:2:(label_text(3)):4 with labels hypertext notitle lc variable pause -1
方式2:直接映射RGB颜色值
通过自定义函数将第四列值转换为RGB十六进制值,用lc rgb variable生效:
set terminal qt # 自定义第四列值到RGB颜色的映射逻辑 color_map(col) = (col == 1) ? 0xff0000 : 0x0000ff label_text(str1) = sprintf("%s", stringcolumn(str1)) # using字段最后传入转换后的RGB值,lc rgb variable指定按该值渲染颜色 plot "D:\gnuplot_data_color_with_hypertext.txt" using 1:2:(label_text(3)):(color_map(4)) with labels hypertext notitle lc rgb variable pause -1
原理说明
with labels的using支持多字段输入,顺序为x:y:标签文本:颜色参数,通过lc variable(调色板索引)或lc rgb variable(RGB数值),就能把第四列的值关联到颜色渲染上,完全不影响超文本标签的功能。
内容的提问来源于stack exchange,提问作者user2150989
相关产品推荐
相关产品推荐

