haskell - 如何使用图表后端正确设置图表?
问题描述
我正在尝试通过此示例使用Diagrams 后端(均来自 Stackage)来测试Chart
import Graphics.Rendering.Chart.Easy
import Graphics.Rendering.Chart.Backend.Diagrams
signal :: [Double] -> [(Double,Double)]
signal xs = [ (x,(sin (x*3.14159/45) + 1) / 2 * (sin (x*3.14159/5))) | x <- xs ]
test :: IO ()
test = toFile def "example1_big.png" $ do
layout_title .= "Amplitude Modulation"
setColors [opaque blue, opaque red]
plot (line "am" [signal [0,(0.5)..400]])
plot (points "am points" (signal [0,7..400]))
来自wiki的example-1。
在Main.hs
文件中
main :: IO ()
main = test
该项目构建和运行没有任何错误,实际上example1_big.png
在项目目录中生成了一个文件。但我无法使用feh
或任何其他图像查看器打开它。
这feh
就是说的。
$ feh example1_big.png
feh WARNING: example1_big.png - No Imlib2 loader for that file format
feh: No loadable images specified.
See 'feh --help' or 'man feh' for detailed usage information
使用mediainfo
它表明它没有正确的格式信息。
$ mediainfo example1_big.png
General
Complete name : example1_big.png
File size : 149 KiB
环顾四周,我确实找到了这个线程。本质上,他们建议使用正确定义FileOptions
的而不是使用def
默认值。
所以这就是我所做的
svgFileOpt :: FileOptions
svgFileOpt = FileOptions (800, 600) SVG loadCommonFonts
signal :: [Double] -> [(Double, Double)]
signal xs =
[ (x, (sin (x * 3.14159 / 45) + 1) / 2 * (sin (x * 3.14159 / 5))) | x <- xs ]
plotDayVsDouble :: IO ()
plotDayVsDouble = toFile svgFileOpt "example1_big.png" $ do
layout_title .= "Amplitude Modulation"
setColors [opaque blue, opaque red]
plot (line "am" [signal [0, (0.5) .. 400]])
plot (points "am points" (signal [0, 7 .. 400]))
不幸的是,结果完全相同。我惊讶地发现mediainfo
甚至没有显示维度信息。
$ mediainfo example1_big.png
General
Complete name : example1_big.png
File size : 149 KiB
解决方案
基本上feh
,我尝试过的其他图像查看器不支持SVG Scalable Vector Graphics image
开箱即用。
使用feh --magick-timeout 1
orimagemagick
的display
工作!
推荐阅读
- python - Selenium 按钮选择器并单击
- charts - 在 Google 折线图上切换 X 和 Y 轴
- server - 如何使用 Putty 在服务器计算机的 Anaconda 所需环境中连接 jupyter notebook?
- jhipster - 可以在不破坏 Jhipster 生成器功能的情况下重命名默认 java 包吗?
- html - 如何在wijmo网格单元内的字符串中换行?
- c# - 可以在代码中简化 Path.Data 创建吗?
- node.js - Express 及其 json 解析器出现“结束后写入”错误
- azure - Azure 认知服务:缺少自定义视觉性能统计信息在哪里?
- animation - Instagram 在 nativescript 中的应用评论框动画
- vbscript - 循环遍历 .CSV 文件时的总计