2015-03-24 91 views
2

下面是從用戶手冊中的代碼:爲什麼這個圖表代碼不會產生預期的結果?

> stops = mkStops [(gray, 0, 1), (white, 0.5, 1), (purple, 1, 1)] 
> gradient = mkLinearGradient stops ((-0.5) ^& 0) (0.5 ^& 0) GradPad 
> sq1 = square 1 # fillTexture gradient 
> sq2 = square 1 # fillTexture (gradient & _LG . lGradSpreadMethod .~ GradRepeat 
>          & _LG . lGradStart .~ (-0.1) ^& 0 
>          & _LG . lGradEnd .~ 0.1 ^& 0) 
> sq3 = square 1 # fillTexture (gradient & _LG . lGradSpreadMethod .~ GradReflect 
>          & _LG . lGradStart .~ (-0.1) ^& 0 
>          & _LG . lGradEnd .~ 0.1 ^& 0) 
> 
> example = hcat' (with & sep .~ 0.25) [sq1, sq2, sq3] 

這裏是我的了:

enter image description here

這裏是什麼樣子的手冊:

enter image description here

他們不完全匹配。

ghc 7.8.3, OS X 10.10 
diagrams 1.2 
output: SVG 
+1

適用於我。你要輸出什麼格式?什麼Haskell編譯器,什麼版本,什麼版本的圖表,什麼操作系統? – 2015-03-25 00:21:16

+0

請參閱我的編輯。 – qed 2015-03-25 09:09:26

回答

1

它看起來像mac的svg渲染器不支持傳播方法。下面是屏幕截圖和Chrome(OS X 10.9.5,Chrome版本37)使用相同的SVG:

gradients

工具像ImageMagick的不使其在所有但這是在SVG後端的錯誤這應該在下一個版本中修復。

我實際上一直在爲另一個後端手動實現傳播方法,所以我們可能會在svg後端添加一個選項,以獲得更好的兼容性。

Rasterific和Cairo後端漸變應該(主要)工作。 (開羅的svg輸出仍然不適用於Safari,但它與imagemagick配合使用)

相關問題