有没有办法在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
如果这有所不同,我正在使用IDL 8.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
当然,它只是您手动操作的包装器。