簡體   English   中英

如何刪除CharDirector ContourLayer中生成的黑色邊框?

[英]How to remove black border generated in CharDirector ContourLayer?

我有一段生成圖像的代碼。 我將適當的預期數據傳遞給此方法,並且它按預期生成圖像(除了1件事之外)。

ContourLayer layer = c.addContourLayer(dataX, dataY, zData);

double[] myColorScale = {-2,0x000000,0.0,0x00ffff,minval, 0xFFD700, maxval}; //this line creates the issue 

        // set the color scale, with underflow color 0x0000ff and overflow color 0xff0000
        layer.colorAxis().setColorScale(myColorScale, 0x00ffff, 0xFF6347);

出現問題的圖片-需要去除外面的黑色邊框

預期的輸出圖像為: 期望的輸出圖像是這個

在您的代碼中,黑色表示-2 <x <0。(請注意零值不是黑色。)青色表示0 <= x <minval,並且x <-2(下溢顏色)。

黑環可能是因為此時的摘要值降到了0以下(例如-0.0000000001)。 我不知道您的數據是什么,但是我可以想到兩種可能性:

(a)中心附近的數據大於0(例如x = 10),而圖表邊界處的數據是較大的負值(例如x = -99)。 這兩個值均為青色。 但是,從x = 10到x = -99,必須存在-2 <x <0的區域,以便該區域為黑色。 這會導致黑圈。 要檢查是否是問題的原因,請使用其他下溢顏色(例如0x0000ff),這樣我們就可以查看邊界處的青色是否是由於下溢引起的。 如果這實際上是問題的原因,並且您只想用青色人工填充外部區域,則可以使用0 <= x <minval之間的值,也可以將繪圖區域的背景色設置為青色。

(b)在您的配色方案中,零值為青色。 如果使用樣條曲線插值,則樣條曲線可能會下沖。 因此,即使最小數據點為0,某些插值區域也可能降至0以下(例如-0.00001),並且在您的着色方案中它們將變為黑色。 我已附上一張圖片,以解釋樣條線為什么會超調或下沖。 要測試是否是問題的原因,請嘗試將插值方法設置為雙線性,以查看是否存在任何差異:

layer.setSmoothInterpolation(false);

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM