1

有没有办法在 IDL 中创建一个带有颜色渐变的绘图?我正在寻找的是类似于这个 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。

4

2 回答 2

1

我曾经遇到过同样的问题,似乎没有(简单的)解决方案。虽然我投降了,但您可以尝试使用PLOT 函数提供的 RGB 向量和 VERT_COLORS 关键字:

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

这会使外观变得更加离散,但也许会对您有所帮助。

于 2018-02-14T07:30:01.627 回答
0

我有一个例程MG_PLOTS可以在直接图形中执行此操作:

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

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

多色线

于 2018-02-14T16:27:54.273 回答