2015-03-24 90 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配合使用)

相关问题