【问题标题】:Can I plot 1D heatmap with gnuplot?我可以用 gnuplot 绘制一维热图吗?
【发布时间】:2021-12-05 13:44:35
【问题描述】:

我正在尝试使用 gnuplot 中的两列数据(x 值和 y 值)绘制一维热图。使用我的数据绘制的折线图是这样的:

折线图:

但经过一番尝试,我只能做到这一点:

我有什么:

而我想要得到的是这样的东西。 (仅举例)

我想要什么:

我使用的gnuplot脚本如下:

set view map
set size ratio 0.2
unset ytics
unset key
splot 'test.dat' u 1:(1):2 palette

有人可以帮忙吗?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    我会这样做:

    unset key
    set xrange noextend
    set offset 0,0,graph .05,graph .05
    set palette cubehelix negative
    
    plot 'foo.dat' using 0:3 with lines lc "black", \
         'foo.dat' using 0:(70):3 with lines lc palette lw 10
    

    【讨论】:

    • 非常感谢!这实际上是我想要的。
    • 很高兴这能解决您的问题。请将答案标记为“已接受”,以便下一个遇到类似问题的人更容易找到。
    • 对不起,我是 stackoverflow 的初学者,我接受你的回答。但是,我仍然没有投票权。对不起……
    【解决方案2】:

    所以您想使用 y 轴作为假维度来增加第二条线图的宽度? 当然,这是例如可能与 boxxyerror 有明确的 ymin 和 ymax 错误填充 yrange

    set xr [-10:10]
    set yr [0:1]
    xspacing = 0.1
    plot '+' u 1:(0.5):($1-xspacing):($1+xspacing):(0):(1):(sin($1)) w boxxyerror lc palette
    

    在您的情况下,将 sin(x) 替换为您的数据的相应列。使用特殊文件 '+' 时,x-width 无效,但在您的情况下,您可能需要使用适当的 xspacing 来避免点之间的空白。

    【讨论】:

    • 非常感谢,这个方法效果很好,我可以调整 xspacing 以获得更好的外观。
    • @ShanJ 很高兴听到它有帮助!在 SO 上,“谢谢”表示接受答案和/或支持。
    • 抱歉我的回复晚了。我是 stackoverflow 的初学者,仍然没有投票的权限。 (我稍后会回来做这个)。我发现另一个答案更适合我的需要。 (当然你的解决方案很有帮助)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多