线图与颜色渐变

时间:2018-02-13 13:36:14

标签: idl-programming-language line-plot

有没有办法在IDL中创建一个带有颜色渐变的图?我正在寻找的是this Matlab question。我所知道的最好的方法是在for循环中绘制该行的每个段,但这看起来相当麻烦:

x = float(indgen(11) - 5)
y = x ^ 2

loadct, 2, /silent
!p.background = 255
plot, x, y
for i = 0, 9 do begin
   oplot, x(i:i+1), y(i:i+1), color = i * 20, thick = 4
endfor

enter image description here

如果这有所不同,我正在使用IDL 8.2。

2 个答案:

答案 0 :(得分:1)

我曾经遇到过同样的问题,似乎没有(简单)解决方案。虽然我放弃了,但您可以尝试使用由PLOT function提供的RGB-vector和VERT_COLORS关键字:

  

每个顶点颜色的颜色表中的索引向量   (情节数据点)。或者,包含顶点的3xN字节数组   颜色值。如果提供的值不是byte类型,则它们是   使用BYTSCL缩放到字节范围。如果提供指数但没有   RGB_TABLE属性提供颜色,默认灰度   使用斜坡。如果提供3xN颜色数组,则颜色为   直接使用,RGB_TABLE提供的颜色值是   忽略。如果指定的索引或颜色数小于   顶点数量,颜色循环重复。

这会改变外观更加分散,但也许会对你有所帮助。

答案 1 :(得分:0)

我有一个例程MG_PLOTS,它可以直接显示:

IDL> plot, x, y, /nodata, color=0, background=255
IDL> mg_plots, x, y, color=indgen(10) * 20, thick=4

当然,它只是您手动操作的包装器。

Multi-color line